|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Développeur Ruby on Rails / iOS et journaliste Inscription : juin 2010 Messages : 1 101 ![]() |
La programmation orientée-objet est-elle dépassée ?
Une école américaine des sciences informatiques l'élimine de son programme d'introduction Enseigner la programmation aux étudiants de premier cycle sans parler d'orientée-objet : hérésie ? Bêtise inadmissible ? Pourtant, une prestigieuse école américaine l'a fait. Il s'agit de l'école des Sciences Informatiques de l'Université Carnegie Mellon à Pittsburgh (Pennsylvanie). Jugée antimodulaire et antiparallèle par essence, et même inappropriée pour un enseignement moderne des sciences informatiques, la programmation orientée-objet a tout bonnement été éliminée du programme d'introduction de cette école. Robert Harper, enseignant et instigateur de cette « révolution », explique sur son blog qu'il dispensera désormais des cours de programmation fonctionnelle aux étudiants de première année. Ce cours fera partie du nouveau programme d'introduction qui comportera un autre nouveau cours qui traite de la programmation impérative. Ces deux cours seront obligatoires pour les promotions « Data Structures » et présenteront, toujours d'après Robert Harper la programmation parallèle comme le cas général plutôt que comme l'exception. Très facultatif, un cours de méthodologie de conception orientée-objet peut cependant être suivi par les « sophomores » (étudiants de deuxièmes années) qui souhaitent étudier ce sujet. Et vous ? Que pensez-vous de cette démarche ? La programmation orientée-objet est-elle d'après vous dépassée ? Enseigner la programmation fonctionnelle et impérative avant la programmation-objet a-t-il du sens ?Source : blog de Robert Harper |
|
|
63
|
|
|
#2 |
|
Membre Expert
![]() |
Un jour les élèves de cet établissement seront bien obligé de s'y mettre et ça va faire beaucoup à apprendre en une fois.
|
|
|
193
|
|
|
#3 | |
|
Membre Expert
![]() Développeur java, access, sql server Inscription : octobre 2005 Messages : 851 ![]() |
Cela fait penser aux mecs qui rêvent de remplacer d'un seul coup tous les SGBD actuels par du "NoSQL"
Citation:
un nostalgique du GOTO peut-être
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser. First, make it work. Then, make it fast. Finally, make it user-friendly. Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich. |
|
|
|
65
|
|
|
#4 |
|
Membre émérite
![]() |
je suis surpris de voir à quelle point l'homme est proche de la machine. C'est à dire binaire: c'est noir ou blanc, pour ou contre, objet ou fonctionnel.
Je trouve qu'il est utile d'apprendre différente façon concevoir une application et de choisir celle qui sera la plus adaptée pour répondre à une question donnée. Au delà de ça, je trouve aussi que c'est très prétentieux. Si certains concepteurs en sont venus à créer la programmation object c'est qu'il y avait un besoin et que cette manière de procéder permettait d'y répondre mieux que les solutions existantes à cette époque. C'est sain d'avoir l'esprit critique mais il ne faut pas non plus se croire toujours plus malin que les autres. |
|
|
131
|
|
|
#5 |
![]() ![]() Yoann MoreauIngénieur en laboratoire de recherche Inscription : septembre 2005 Messages : 723 ![]() |
Je ne vois pas en quoi c'est une révolution, on apprend toujours la programmation fonctionnelle avant la POO, il faut bien démarrer par quelque chose. Cette école ne fait que retarder l'apprentissage de la POO au second cycle ou l'annuler, ce qui va juste créer des lacunes pour les étudiants en développement ou en tout cas les mettre en retard.
Ça revient au même que certains diplômes qu'on donne alors que les étudiants n'ont rien compris à la POO (ou même à la prog en général), des gens qui auront du mal à trouver du travail dans ce domaine. |
|
113
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : décembre 2003 Messages : 1 335 ![]() |
Anti-modulaire, l'OO ? Je ne comprends pas.
Personnellement, les trucs qu'on nous expliquait quand j'étais étudiant, que l'OO permettait une compréhension plus intuitive de la programmation parce que ça suivait mieux la logique humaine, j'ai toujours trouvé ça fumeux. Mais l'OO a un certain nombre d'avantages difficiles à contester : la facilité de séparation des préoccupations, qui est la base de la modularisation, une factorisation du code plus efficace (types génériques, héritage, polymorphisme), une meilleure maintenabilité (hériter d'un type plutôt que de le modifier permet d'éviter beaucoup de régression)... Surtout, de fait, l'OO est très utilisé actuellement. Ces étudiants seront donc moins bien préparés à la réalité qu'ils rencontreront en entreprise.
__________________
Traroth |
|
|
83
|
|
|
#7 | |
|
Membre expérimenté
![]() ![]() Inscription : septembre 2004 Messages : 369 ![]() |
Citation:
Le cours a simplement été supprimé de la classe préparatoire, la classe d'initiation à la programmation. Il ne s'agit nullement de ne pas apprendre la POO aux élèves durant leur cursus scolaire, il s'agit de pas la leur inculquer durant le cours de première année **uniquement**. Maintenant personnellement je suis 100% d'accord avec ce choix s'il est fait pour permettre aux élèves de garder un esprit "ouvert" en leur apprenant juste le nécessaire pour être prédisposer à apprendre toutes forme d'expression algorithmique dans le future, qu'elle soit appliquées sur de la POO ou pas. Actuellement et dans un futur très proche, on parle plus de programmer sur architectures parallèles. Or la POO donne un très mauvais plis pour les élèves qui seront censés plus programmer sur des architectures parallèles. PS. A ne pas confondre, il n'est pas dis que la POO ne s'applique pas à la programmation concurrente (concurrency), il s'agit de parallelisme (parallelism)!!!
__________________
http://www.neaticons.com png glyphs and icons for website and application developpers. http://www.pocketmt.com GLCD Font Creator home site. |
|
|
|
170
|
|
|
#8 | ||
|
Membre expérimenté
![]() ![]() Inscription : septembre 2004 Messages : 369 ![]() |
Citation:
Quand on fait de la programmation concurrente (sur architecture parallèles), ce genre de phrases n'a aucun sens, la POO est même un handicap dans certains cas. En programmation concurrente, on ne sépare pas les tâches en les encapsulant chacune dans une classe à laquelle on affecte une responsabilité, on les sépares en définissant les responsabilité via des contrats (protocoles) et on affect chaque tâche (bout de code) à un process (fut il un thread or vrai process ou ...) à part pour qu'il soit executé. La POO et son encapsulation devient un vrai handicap dans certains cas. C'est encore pire dans le cas des architectures ou l'on a besoin de faire du traitement parallèle et où ce traitement est piloté pas évènements!!! Pour vous faire un idée à quel point on subit une "déformation professionnelles/intellectuelle" on n'apprenant que le modèle de programmation OO en language impératif, essayez de chercher sur le web la CSP et le langage OCCAM (pas OCALM, je parle bien de OCCAM). Toujours dans le même post (original en anglais) l'auteur donne une réponse à un commentaire pour expliquer (d'une manière très élégante je trouve) pourquoi la POO pose pb: Citation:
__________________
http://www.neaticons.com png glyphs and icons for website and application developpers. http://www.pocketmt.com GLCD Font Creator home site. |
||
|
|
130
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : novembre 2003 Messages : 65 ![]() |
octal est effectivement un membre éclairé :
il a dit en termes simples et précis ce que je ne parvenais pas à expliquer ( ).merci.
|
|
|
40
|
|
|
#10 |
|
Membre expérimenté
![]() Jean-Baptiste BourgoinWebmaster Inscription : septembre 2006 Messages : 200 ![]() |
Tout à fait d'accord avec octal. Il y a, au moins en France, une sorte d'obsession pour l'OO qui rend ce paradigme intouchable. Ne pas apprendre l'OO en première année d'un cursus ne me semble pas absurde, et il faut bien reconnaître que ce paradigme ne répond pas à certains problèmes actuels. Ce qui ne signifie pas qu'il va disparaitre, qu'il ne faut plus l'apprendre.
Et puis après ? Si la progra fonctionnelle prend la place de l'OO dans 10 ans, quoi ? Le but de l'info n'est-il pas d'automatiser et de résoudre des problèmes ? |
|
40
|
|
|
#11 |
|
Membre confirmé
![]() ![]() |
C'est quoi le problème ? C'est comme ça au Québec. Sincèrement j'ai vu des code objet pas trop objet dans ma vie, peut de personnes que je connais peuvent se targuer de maîtriser le paradigme objet. Même moi n'a pas la prétention de la maîtriser, mais je crois m'en approcher vraiment.
Comme mon professeur Web me disait tout le temps : "Nous allons faire du procédurale avec PHP parce qu'ici il n'y a personne qui fait de l'objet : pour faire de l'objet, il faut penser objet." Un homme de génie !
__________________
______________ Never underestimated the browser Ne jamais sous-estimé le navigateur Vic Gundotra, Google IO 2009 |
|
|
21
|
|
|
#12 |
|
Membre émérite
![]() |
Il est nettement moins absurde d'apprendre l'OO en deuxième année aprés avoir appris un langage impératif, que d'apprendre à des élèves à faire des class avant même d'avoir appris les concepts de base (variable, fonctions, pointeurs, réferences ) comme ça se voit en France.
|
|
|
92
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : avril 2009 Messages : 5 ![]() |
Bah en même temps, c'est déjà comme ça dans les universités françaises depuis un bon moment.
Chez nous en Bretagne on fait ses armes avec de la programmation fonctionnelle et plein de parenthèse .... haaaaa le scheme Perso, j'ai pas eu d'enseignement de la POO avant BAC +3, donc c'est pas franchement une révolution de l'enseignement. Mais bon ça vient des States c'est mieux....... |
|
|
50
|
|
|
#14 |
![]() ![]() Développeur informatique Inscription : avril 2010 Messages : 1 037 ![]() |
j'aimerais comprendre de quoi il s'agit vraiment. J'ai fait l'iut informatique de Grenoble et en première année, je n'ai jamais entendu parler d'objet. nous n'avons fait que de l'iteratif en Ada et en C. En deuxième année par contre, beaucoup de C++ et de java. Si c'est de cette approche qu'il s'agit dans la news, rien de révolutionnaire. S'il s'agit par contre de complètement faire disparaître l'objet du cursus, c'est vraiment stupide car les étudiants y seront confrontés en entreprise, et apprendre l'objet sur le tas et pour moi une grosse bêtise.
__________________
"Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla Je soutiens Diaspora*, le réseau social libre. Veillez à porter une attention toute particulière à l'orthographe... Blog collaboratif avec des amis : http://geexxx.fr |
|
50
|
|
|
#15 | |||||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2011 Messages : 2 ![]() |
Citation:
La plupart des cours ne se base pas sur l'objet puisqu'on a des cours d'objet à coté. Moi ce que j'ai remarqué c'est que n'ayant commencé de mon coté que par l'objet je comprenait autant l'objet que le reste contrairement à tous ceux qui ont commencé par exemple avec le c qui ne pige rien à l'objet et qui donc ne font pas d'objet juste parce que il n'ont pas l'habitude. Citation:
Et puis il n'y a pas que l’impératif et l'objet. Citation:
Citation:
Le problème des écoles est simplement qu'elle n'apprennent pas aux élèves à "apprendre", on leur balance un programme qui de toutes façon ne parcourra qu'une infime partie de ce qui existe. Avec l’avènement d'internet et des moyen de communication elles ferai mieux d'apprendrent à chercher des ressources plutôt qu'a ce contenter de ce qu'il apprendront dans un temps bien trop cours pour en savoir suffisamment. Il n'y a pas de paradigme meilleur ou non qu'un autre. Il n'ont juste pas la même utilité. Apprendre l'impératif en occultant le reste n'est pas mieux que l'inverse. Les base en programmation sont avant tous a mon avis, d'apprendre a chercher des info dans la doc technique d'un langage ou d'une librairie, d’analyser les erreurs renvoyer par le compilo ou le débugger, d'apprendre a lire un code source. De plus avoir un aperçu même bref de ce qui existe a l'avantage de montrer que ça existe libre après de s'y intéresser plus en avant ou non selon ses ambition ses motivation et ses objectifs. Arrivé en deuxième année et ne même pas savoir que la poo existe ou n'en avoir que des idée reçu (du genre poo = garbage colector,......), c'est pas forcément un bien. Je trouve pas que l'idée de n'introduire qu'un seul concept soit une marque d'ouverture d'esprit. La seule vrai réponse à tout restera "ça dépend" (du contexte de l'individu des objectifs de celui-ci,...) Citation:
La c'est la technique de l’entonnoir inversé on se concentre sur un point spécifique et lorsque l'ont a tous les réflexes bien encrés, on dois les casser pour apprendre autre chose ou on se contente de ce cas spécifique. Citation:
Citation:
Par contre en web on a fait que du php/js ce qui ne ma pas empêcher de voir RoR ou django par moi même. Chaque vision et paradigme à ses avantage et ses inconvénient qui changent en fonction de ses besoins et de ses habitudes. Moi j'ai décide de me concentrer sur l'objet parce que ça m’intéresse et que ça me sert mes objectif.( ce qui ne m’empêche pas de voir le reste mais je ne peux le faire si je ne connait pas ce reste). Ce contenter de ce qu'on apprend à l'école c'est ça qui est au final le plus absurde tant les "Sciences de l'informatique" sont vastes. |
|||||||
|
|
60
|
|
|
#16 | |
|
Membre Expert
![]() Artisan du code Inscription : août 2010 Messages : 604 ![]() |
L'impératif/procédural est plus utile en début de cycle car plus proche de notre "solfège" de programmeur (algorithmique) que la POO. La POO justement doit venir après que ces bases là soient bien cimentées. C'est ce que mon école fait (je suis encore étudiant). La première est quasiment consacrée au C (on a aussi des vieilleries comme le Scheme) car 3/4 des étudiants n'ont encore jamais tapé une ligne de code (Maple & co ça compte pas) et qu'il faut bien consolider les bases de l'algorithmique. La POO n'est littéralement lâchée qu'en seconde année avec C++, Java, voire C# pour certains. Il faut dire aussi qu'ils en profitent pour éliminer bon nombre de matières annexes (la fameuse "culture de l'Ingénieur", qu'ils disent), sinon on aurait sûrement un chouïa de POO en 1ère année.
Ceci dit, il faut quand même garder la POO dans les programmes. Les écoles sont là pour nous donner des bases sur ce qu'on rencontrera dans notre vie professionnel, tout du moins au début. Ignorer la POO dans les programmes, c'est ignorer une part non négligeable des offres de travail que l'on peut avoir en sortant de l'école. On peut toujours dire que "ceux que ça passionne peuvent aller voir plus loin", mais il y a des limites aux délires de certains qui refusent d'enseigner certaines bases pour flatter leurs pensées et leur ego. C'est ce que fait hélas mon école avec le Web, où HTML/CSS/JS voire pHp = "trucs de gamins qu'on peut apprendre facilement, il y a pleins de tutos dessus" (pas faux mais j'aimerai bien connaître le pourcentage de futurs informaticiens des promos qui ne sauront pas taper une page Web). Citation:
(A (moi (aussi (le (Scheme (me (rappelle (certains (souvenirs))))))))).
__________________
"Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain Mon client Twitter Qt cross-platform Windows, Linux et Symbian^3 (en cours de développement). |
|
|
|
21
|
|
|
#17 | |
|
Membre confirmé
![]() ![]() |
Citation:
J'ai une question pour toi Oneiros, est-ce que toutes les classes que tu fais on une responsabilité ? Si c'est le cas, félicitation, pour ma part j'ai encore beaucoup de difficulté à suivre cette simple règle.
__________________
______________ Never underestimated the browser Ne jamais sous-estimé le navigateur Vic Gundotra, Google IO 2009 |
|
|
|
11
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Baptiste Le Bail Inscription : juin 2010 Messages : 7 ![]() |
J'ai appris l'impératif et le fonctionnel en première année et l'oo à partir de la deuxième année, ça me semble un ordre d'apprentissage plus logique.
C'est pas une mauvaise chose de réserver l'oo pour plus tard dans le cursus, sans le mettre de côté évidemment. |
|
|
20
|
|
|
#19 |
|
Membre actif
![]() Inscription : décembre 2008 Messages : 70 ![]() |
Ne pas enseigner l'OO dès le début n'est pas une idée plus stupide que ne pas enseigner le fonctionnel dès le début. (et je rappelle à tout hasard qu'on peut faire de l'OO en fonctionnel)
J'espère juste que sur developpez.com, dans dix ans, on ne trouvera pas un nombre anormalement élevé de "pros" ne jurant que par le fonctionnel comme on trouve aujourd'hui beaucoup trop de "pros" qui ont érigé l'OO en religion. |
|
|
10
|
|
|
#20 | |
|
Membre expérimenté
![]() Inscription : mars 2010 Messages : 529 ![]() |
Citation:
tout dépend des cécep et des universités au cécep j'ai eu qu'un cours de c++ et que du c..... mais quand j'ai été par la suite à l'université.... j'étais le seul qui es pas eu plus de cours d'objets... les autres avaient eu la majorité de leur cours en java, alors que moi c'était du c.... |
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com