La programmation orientée-objet est-elle dépassée ?
Une école en sciences informatiques l'élimine de son programme d'introduction

Le , par Idelways, Expert éminent sénior
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


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de jack-ft jack-ft - Membre expert http://www.developpez.com
le 18/04/2011 à 16:28
Citation Envoyé par air-dex  Voir le message
Je ne râle pas contre le fait qu'il faille tout faire au clavier, d'ailleurs c'est ce que je fais avec gedit. Ce qui me dérange, c'est le fait que ce logiciel ne prenne pas les raccourcis claviers conventionnels, contrairement à gedit, par exemple.

En ce qui me concerne, j'utilise (entre autres) Acquamacs Emacs.

Et il se trouve que, sans la moindre reconfiguration, on peut utiliser aussi bien les raccourcis traditionnels d'emacs (cut = ctrl-w copy=meta-w etc.) que les raccourcis "conventionnels" (cut = cmd-x copy=cmd-c)...

La seule contrainte est qu'il faille deux modifieurs différents (ctrl et cmd)... et il se trouve que c'est effectivement le cas sur tous les ordinateurs personnels que j'ai eus à la maison (sauf la machine de ma compagne (mais elle l'a rapidement abandonnée...))

Voir: http://fr.wikipedia.org/wiki/Fichier:ClavierMac.jpg

Et je confirme effectivement ce que dit Camille: les raccourcis emacs sont antérieurs aux raccourcis dits "conventionnels".

Je crois me souvenir, mais je me trompe peut-être, que le trio "cut, copy, paste" avec les 3 raccourcis "consécutifs" sur le clavier (X C V) est apparu avec les machines smalltalk Xerox 8010 ou avec le macintosh (à vérifier), et que les PCs ont petit à petit privilégié ceux-ci aux anciens C-insert S-insert (qui les utilise encore???).

Il est (peut-être) dommage que les concepteurs de l'époque n'aient pas suivi les raccourcis traditionnels d'emacs!

)jack(
Avatar de SurferIX SurferIX - Membre expérimenté http://www.developpez.com
le 18/04/2011 à 16:55
<méga HS>

Citation Envoyé par jack-ft  Voir le message
... et que les PCs ont petit à petit privilégié ceux-ci aux anciens C-insert S-insert (qui les utilise encore???)

Euh moi. Tous les jours. Et c'est bien plus rapide, à mon sens, de faire un C-suppr - C-insert (main gauche reste sur Control et main droite appuie sur suppr puis tache la touche juste au dessus pour le insert donc on ne peut pas se tromper, et on a les touche de déplacement juste en dessous), que de faire les C-x C-v. Surtout quand, une fois qu'on a copié / ou / coupé, on veut se déplacer avec les flèches du curseur.

</méga HS>
Avatar de air-dex air-dex - Membre émérite http://www.developpez.com
le 21/04/2011 à 22:13
Citation Envoyé par jack-ft  Voir le message
En ce qui me concerne, j'utilise (entre autres) Acquamacs Emacs.

Et il se trouve que, sans la moindre reconfiguration, on peut utiliser aussi bien les raccourcis traditionnels d'emacs (cut = ctrl-w copy=meta-w etc.) que les raccourcis "conventionnels" (cut = cmd-x copy=cmd-c)...

[...]

Et je confirme effectivement ce que dit Camille: les raccourcis emacs sont antérieurs aux raccourcis dits "conventionnels".

Je crois me souvenir, mais je me trompe peut-être, que le trio "cut, copy, paste" avec les 3 raccourcis "consécutifs" sur le clavier (X C V) est apparu avec les machines smalltalk Xerox 8010 ou avec le macintosh (à vérifier), et que les PCs ont petit à petit privilégié ceux-ci aux anciens C-insert S-insert (qui les utilise encore???).

Il est (peut-être) dommage que les concepteurs de l'époque n'aient pas suivi les raccourcis traditionnels d'emacs!

)jack(

Il est aussi dommage que les concepteurs actuels ne suivent pas les raccourcis conventionnels. Aquamacs le fait et c'est bien le seul Emacs à le faire. On peut d'ailleurs le féliciter pour ça !

En attendant, merci de m'avoir fait découvrir le C-suppr !
Avatar de id6tems id6tems - Candidat au Club http://www.developpez.com
le 23/05/2011 à 23:17
je trouve la reponse de
Julien.63
Membre émérite
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.

assez logique...
Avatar de psykokarl psykokarl - Membre averti http://www.developpez.com
le 24/05/2011 à 8:37
Cette réponse est surtout naïve.

La POO est apparut en tant que jouet universitaire comme la plupart de ce qui se fait en informatique. Il s'agit avant tout d'une manière de représenter le code. Les données sont mis en avant avec des méthodes associées. Représentation élégante dans certains cas de figure, capillo-tractée dans d'autres.

Pour faire du code fiable, il existe les méthodes formelles. Méthodes utilisables indifféremment avec un langage objet, langage fonctionnel ou impératif...

Pour l'optimisation et le refactoring il y a l'algorithmique. Méthodes utilisables indépendamment du paradigme également ...

Alors non la POO n'est pas dépassée mais il y a cet a priori que beaucoup de développeurs/ingénieurs ont:
Non, développer en objet ne garantit en rien la fiabilité et la maintenabilité du code. L'avantage de la POO sur l'impératif ne se situe pas la.

Enfin, les "concepteurs" ne sont pas à l'origine de la POO. Au mieux ils ont jugé la POO plus à même de répondre aux problèmes qu'ils rencontraient au pire ils ont ressorti texto ce qu'on leur à vendu.
Ces outils sont tiré de concepts nés dans le milieu universitaire par des gens qui n'ont pas les contraintes de temps et les contraintes de résultat que l'on peut avoir dans l'industrie. Dans ce milieu il n'est pas vain de réinventer la roue pour peu que l'on a la connaissance de l'état de l'art et que l'on soit en mesure d'arriver au même résultat par un moyen original.
Pas étonnant qu'on y invente quasiment tout avant tout le monde.

Il est de mon point de vue salutaire d'avoir une formation qui embrasse une vision la plus large possible de ce qui se fait avant de se spécialiser ou non dans une branche.
Je sais que c'est important de trouver du boulot et que la connaissance en programmation objet est très demandé. En revanche, si ça ne gène pas tout le monde de n'être qu'un développeur jetable créé sur mesure pour le marché à un instant t, moi ça me gêne.
Même si ça me rend moins efficace, je veux garder ma versatilité, ne pas être obligé de suivre un stage de formation pour passer sur une nouvelle techno. Je ne peux voir cette volonté de sortir du tout objet, du moins pour ce qui est des formations universitaires, que d'un bon oeil.
Avatar de LEKHEBASSENE LEKHEBASSENE - Membre du Club http://www.developpez.com
le 12/09/2011 à 12:00
La POO est certainement un acquis majeur en développement informatique, et vouloir s'en affranchir est peut être équivalent à vouloir s'affranchir de la roue. C'est une façon naturelle et bien pensante de réaliser de nombreux types de projets de développement. Elle se fonde sur des principes qui régissent la réalité universelle des choses : entité - propriété - comportement - interaction.

Ïl me semble que tout ce qui est concevable, pas uniquement ce qui a une réalité physique, peut être décrit sous ces angles. Ce n'est pas par pur hasard ou coup de tête que les méthodes/langages de modélisation tels que UML sont souvent utilisés en avant-plan de langages objets.

Donc je ne jouerai pas au clergé pour envoyer au bucher les hérétiques contre la POO mais je dirai que c'est une bêtise et que la bêtise est contagieuse.
Avatar de Tommy31 Tommy31 - Membre chevronné http://www.developpez.com
le 12/09/2011 à 14:10
J'appelle Souviron34 à la barre !
Avatar de LEKHEBASSENE LEKHEBASSENE - Membre du Club http://www.developpez.com
le 12/09/2011 à 15:28
Citation Envoyé par YoniBlond  Voir le message
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.

C'est peut être le titre de l'article et quelque uns de ses passages qui sont mal formulés et ne doivent pas refléter l'idée dans laquelle s'est produit ce changement de programme. Titre peut être agitateur ...
Avatar de satenske satenske - Membre confirmé http://www.developpez.com
le 12/09/2011 à 21:05
Comme cela à été dit, il faut bien commencer par le procedural avant l'OO.
à l'iut de Toulouse, on nous apprend l'OO qu'en deuxième année, ce que je trouve pas mal, il faut quand même un peu d’expérience avant de voir le concept d'objet, le principe est bon.
Après, en pratique, je trouve un peu idiot qu'on nous apprennent le concept de classe en S3, et que tout au long du S2 on nous fasse utiliser la STL de C++, on utilise uneStack.pop() alors qu'on n'est pas censé savoir ce que c'est qu'une classe ou un objet, pas mal de gens dans mon groupe de TD ne comprenait pas ce que venait faire ce point ici, ni les parentheses, pour eux stack(par exemple) était un type de variable.

Cependant apprendre l'OO après un an de pratique de procedural, là je suis d'accord.

Je ne pense pas que l'objet est dépassé, et surtout, quand bien même ce serai de moins en moins utilisé, un developpeur se doit de connaître ce que c'est, et de savoir coder en OO, un développeur doit avoir un échantillon large de connaissance en programmation.
une fois sortit des bancs de l'école, si l'entreprise utilise une technologie objet, il faudra bien savoir ce que c'est.
Avatar de JTABLE JTABLE - Membre régulier http://www.developpez.com
le 17/10/2011 à 12:55
salut
ignorer la programmation orienté objet totalement se serait une erreur .
mais je pense quand doit choisir la façon la mieux adapté à notre cas ou notre sujet traité.
Avatar de shenron666 shenron666 - Expert confirmé http://www.developpez.com
le 17/10/2011 à 14:02
Citation Envoyé par JTABLE  Voir le message
mais je pense quand doit choisir la façon la mieux adapté à notre cas ou notre sujet traité.

quelque soit le cas
quelque soit le sujet
quelque soit le contexte
on peut toujours faire avec ou sans la programmation objet
ça dépend surtout du développeur, il y en a qui préfèrent, d'autres qui détestent
Offres d'emploi IT
Développeur web drupal
Agence Aristote - Midi Pyrénées - Toulouse (31000)
Developpeur java
BSPP - Rhône Alpes - Montélimar (26200)
Responsable d'équipe backend & api h/f
MAC_ERCI INTERNATIONAL - Ile de France - Ile de France

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil