La programmation orientée objet est un concept assez répandu dans l’environnement de programmation informatique. Plusieurs langages tels que Java, C#, VB.Net, Objective C, Python, Ruby, C++, PHP, Eiffel, Ada, Smaltalk, Ocaml, JavaScript, Perl, Self, ActionScript, Lua... pour ne citer que ceux-là en sont dérivés.
Ce style de programmation trouve son aboutissement dans les travaux d’Alan Kay, un passionné du langage Simula. Dans les années 1970, Alan Kay qui était fortement influencé par le langage Simula a commencé à réfléchir sur la mise en œuvre d’un modèle de programmation facilitant le développement des applications.
Pendant les travaux de recherche avec une équipe de chercheurs de Xerox pour la mise en œuvre de Dynabook, l’un des premiers prototypes d’ordinateur portable, Alan Kay développe Smaltalk, le langage orienté objet et basé sur Simula afin de faciliter la conception d’applications sur cet ordinateur. C’est à partir de ce nouveau langage que la programmation orientée objet se formalise et prend tout son sens.
Dans les années 80 Bjorn Stroustrup intègre la programmation orientée objet dans le langage C. Cela donne naissance au langage C++ et devient par ailleurs le premier langage orienté objet à être largement utilisé.
Dans les années 90, une équipe de Sun développe une version simplifiée du C++ baptisée Java. Dans cette même période, plusieurs autres langages prennent naissance à partir de ce paradigme et facilitent le développement des applications orientées objet. Aussi, vu l’effervescence que connait cette approche dans ces années 90, dans une interview accordée à Steve Jobs, il lui est demandé d’expliquer en des termes simples ce qu’est un logiciel orienté objet.
Sans faire preuve de langage technique, Steve Jobs explique que « les objets sont comme les gens. Ce sont des choses qui vivent, respirent, ont des connaissances intrinsèques sur comment faire les choses et ont une mémoire à l’intérieur d’eux qui leur permet de se souvenir des choses. Et plutôt que d’interagir avec eux à un très bas niveau, on interagit avec eux à très haut niveau d’abstraction comme nous le faisons présentement ».
« Voici un exemple : si je suis votre objet de blanchisserie, vous pouvez me donner vos vêtements sales et m’envoyer un message qui dit ‟Pouvez-vous faire laver mes vêtements, s’il vous plait ?”. Je sais où se trouve la meilleure blanchisserie. Je parle anglais et j’ai des dollars dans mes poches. Donc, je sors et j’appelle un taxi et dis au chauffeur de me conduire à cet endroit à San Francisco. Je vais faire laver vos vêtements, je saute à nouveau dans un taxi et je reviens ici. Je vous donne vos vêtements propres, ‟Voici vos vêtements propres” ».
« Vous n’avez aucune idée de comment je l’ai fait. Vous n’avez aucune connaissance de l’endroit où se trouve la blanchisserie. Peut-être que vous parlez français, et vous n’êtes même pas en mesure d’appeler un taxi. Pourtant, je savais comment faire tout cela. Et vous n’avez pas besoin de savoir tout ça. Toute cette complexité était cachée à l’intérieur de moi et nous avons pu interagir à un niveau d’abstraction très élevé. C’est ce que sont les objets. Ils encapsulent la complexité et les interfaces pour cette complexité sont de haut niveau ».
Ainsi défini, il serait aisé, même pour les non-techniciens de se représenter l’image des logiciels orientés objet.
Source : Rolling Stones
Et vous ?
Comment trouvez-vous l’explication de la programmation orientée objet de Steve Jobs ?
À l’instar de Steve Jobs, comment pourriez-vous simplement expliquer les objets ou la POO ?
Voir aussi
Forum langages de programmation
Comment pourriez-vous expliquer l'orienté objet ?
Steve Jobs a essayé d'expliquer ce concept
Comment pourriez-vous expliquer l'orienté objet ?
Steve Jobs a essayé d'expliquer ce concept
Le , par Olivier Famien
Une erreur dans cette actualité ? Signalez-nous-la !