Comment pourriez-vous expliquer l'orienté objet ?
Steve Jobs a essayé d'expliquer ce concept

Le , par Olivier Famien

205PARTAGES

9  1 
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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de EyZox
Membre confirmé https://www.developpez.com
Le 27/10/2015 à 14:19
J'ai du mal a voir ce qu'il y a d'actuel dans cette actualité.
Sans être pro ou anti S.Jobs,
C'est très simple de trouver des analogies au monde objet et personne n'a attendu Steve Jobs pour en faire.
Etait-il le premier a vulgariser ce qu'est le langage objet ?
Je ne comprend pas cette actualité. C'est ... banal ??? Mais parce que Steve Jobs l'a dit il y a des années, ça en fait une actualité ?
J'ai l'impression qu'on en fait quelque chose d'extraordinaire ... "À l’instar de Steve Jobs, comment pourriez-vous simplement expliquer les objets ou la POO ?"
13  7 
Avatar de Haseo86
Membre éclairé https://www.developpez.com
Le 27/10/2015 à 13:47
Je ne sais pas à quel point il est vrai que Steve Jobs n'a jamais codé.

Cependant, il n'a pas besoin d'être développeur pour comprendre le concept et savoir l'expliquer. Son exemple est d'ailleurs très clair je pense.
10  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 27/10/2015 à 14:24
Citation Envoyé par EyZox Voir le message
J'ai du mal a voir ce qu'il y a d'actuel dans cette actualité.
Sans être pro ou anti S.Jobs,
C'est très simple de trouver des analogies au monde objet et personne n'a attendu Steve Jobs pour en faire.
Etait-il le premier a vulgariser ce qu'est le langage objet ?
Je ne comprend pas cette actualité. C'est ... banal ??? Mais parce que Steve Jobs l'a dit il y a des années, ça en fait une actualité ?
J'ai l'impression qu'on en fait quelque chose d'extraordinaire ... "À l’instar de Steve Jobs, comment pourriez-vous simplement expliquer les objets ou la POO ?"
Il y à une icone débat, c'est certes pas une actualité , c'est un débat tout simplement, ou un troll si tu préfères .
10  0 
Avatar de vinmar
Membre confirmé https://www.developpez.com
Le 27/10/2015 à 16:40
Les gars, vous êtes un petit peu psycho rigide. En gros la news vous demande comment vous expliqueriez la programmation orienté objet. Après, Steve Jobs n'est qu'un exemple.

Vous avez deux heures...
10  2 
Avatar de AoCannaille
Membre émérite https://www.developpez.com
Le 27/10/2015 à 14:24
Citation Envoyé par sazearte Voir le message
Steve Jobs le type qui n'as jamais codé 1 seule ligne de code de toute sa vie ?
Tu racontes n'importe quoi, Steve Jobs était meilleur codeur que toi ou moi, c'est en électronique qu'il se reposait massivement sur Wozniak (qui était aussi très bon en logiciel)
L'exemple le plus simple de sa vie qui illustre mon propos est l'histoire du jeux Casse brique sur atari
La borne d'arcade dessinée par Nolan Bushnell a été conçue à la base par Steve Jobs et Steve Wozniak, les fondateurs ultérieurs d'Apple. Jobs, alors employé par Atari, charge son ami Wozniak de réaliser le circuit électronique, tandis qu'il s'occupe de la partie logicielle. Le tout est réalisé en 4 jours et 4 nuits par les deux amis.
Steve jobs est un connard mysanthrope perfectionniste mais il est quand même compétant à l'origine.
9  4 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 27/10/2015 à 22:35
La vraie question est : à qui ça s'adresse? A ma fille de 8 ans qui n'a jamais touché un PC? alors oui, c'est une bonne définition. Au vétéran qui a 20 ans de COBOL derrière lui, et qu'on force à passer au Java - et donc à un langage objet? Alors ça ne marchera pas du tout. Pour lui, la bonne définition, c'est : "une classe, c'est une structure de données. A laquelle on rajoute tout le code qui s'applique dessus. Ça évite d'avoir à recoder les mêmes choses dans chaque module qui utilise la même donnée de la même manière. L'objet, ce sont les données elles-mêmes".

Et il y a surement plein d'autres publics. Qui demandent plein d'autres définitions.
9  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 27/10/2015 à 16:56
Citation Envoyé par sazearte Voir le message

Pourquoi posez cette news aujourd'hui et maintenant, alors que le type à dit cela il y'a 20 ans ! L'inductire de l'it serais t'elle en manque d'innovation ?, Depuis quand on passe des news/débats digne d'un magazine people ?
Parce que quand quelqu'un poste une news sérieuse il y à pas de débat et dès qu'on parles d'un people ça fait débat, donc on à de quoi troller ?

Pourquoi tu participes à ce débat, pour dire qu'on ne devrais pas en débatre, tu trouve pas ça idiot ?

Pourquoi posez cette news aujourd'hui et maintenant, alors que le type à dit cela il y'a 20 ans ! L'inductire de l'it serais t'elle en manque d'innovation ?, Depuis quand on passe des news/débats digne d'un magazine people ?
Et de quel droit tu nous interdit le droit et le plaisir de troller sur les "people" ?

Prochain débat Bill Gates 640 Ko de mémoire devraient suffire à tout le monde ! qu'en pensez vous ?
Ensuite Steve Ballmer définie Linux: "Linux est un cancer qui s'accroche à la propriété intellectuelle de tout ce qu'il touche", qu'en pensez vous ?
Très bonnes idées de débats, lance les, le vendredi de préférence

Tu es peut etre sur developpez pour te former sérieusement, c'est tout à ton honneur mais certains autres lisent les débat pour se détendre et se marrer, pourquoi nous priver de ce petit plaisir entre deux réunions à la con (ou entre des compilations, ...) ?
8  0 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 27/10/2015 à 13:32
Une réponse de Steve Jobs permet de comprendre ce concept avec des exemples simples
Steve Jobs le type qui n'as jamais codé 1 seule ligne de code de toute sa vie ? Comment il pouvait savoir ce qu'était la prog objet en ne sachant pas codé ?

Par contre l'explication est plutôt bonne, je dois le reconnaitre.
7  10 
Avatar de CodeurPlusPlus
En attente de confirmation mail https://www.developpez.com
Le 27/10/2015 à 18:00
Steve Jobs vulgarise deux aspects de la programmation qui sont l'abstraction et l'encapsulation.

Deux aspects pas du tout spécifiques à la programmation objet. On fait la même chose en procédural pur ou en fonctionnel (et le fonctionnel peut par ailleurs lui-même être objet en plus).

Donc en fait il n'a pas du tout définit la programmation objet...
7  2 
Avatar de mrqs2crbs
Membre averti https://www.developpez.com
Le 27/10/2015 à 14:38
On peut retirer Ocaml de la liste,
c'est quand même avant tout un langage destiné à la programmation fonctionnelle.

Et puisque l'on est dans le discours illustré, je rajoute une petite citation de Joe Armstrong à propos des langages OO :
Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them.
You wanted a banana but what you got was a gorilla holding the banana and the entire jungle
6  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web