On the notion of object

✒ Enzo SandrĂ© · 📆 19/11/2025 · 🔣 Science des Langages

📩 Le concept d’objet dans les langages orientĂ©s-objet est difficile Ă  dĂ©finir. Les divergences entre les diffĂ©rentes “saveurs” d’orientĂ©-objet et le drama entre auteurs explique en partie le problĂšme. Les amĂ©ricains tendent Ă  y voir seulement un mĂ©canisme de modĂ©lisation efficace, tandis que les europĂ©ens tendent Ă  rechercher une certaine esthĂ©tique philosophique dĂ©passant la stricte nĂ©cessitĂ© technique.

đŸș Pour comprendre ce qu’est un objet, il faut Ă©tudier la notion sous plusieurs angles, n’ayant pas tous un rapport direct Ă  l’informatique, nous serions mĂȘme parfois plus proches des mathĂ©matiques, de la psychologie et de la philosophie.

đŸ˜¶â€đŸŒ«ïž Un objet peut ĂȘtre vu comme une substance attachĂ©e Ă  une identitĂ© permettant de le distinguer des autres. Toujours dans la mĂȘme veine ontologique, un objet peut aussi ĂȘtre dĂ©fini comme l’inverse d’une valeur. Cette derniĂšre est Ă©ternelle, immuable, universelle et sans identitĂ©. HĂ©las la plupart des langages ne l’entendent pas ainsi et la moindre valeur, mĂȘme une primitive, est alors un objet comme un autre. En informatique, “Objet” est un terme Ă©quivoque, zut.

đŸ›Ąïž L’objet peut aussi ĂȘtre dĂ©fini comme l’inverse des fonctions. La fonction n’a aucune mĂ©moire, elle est pure et sans effet de bord. L’objet stocke un Ă©tat. Mais ce serait insuffisant car les objets exposent des opĂ©rations qui protĂšgent l’état qu’ils contiennent contre l’écriture de valeurs invalides. Parce qu’il n’est pas rĂ©fĂ©rentiellement transparent, l’objet est une abstraction, masquant une partie de la complexitĂ© qu’il contient derriĂšre une façade : son interface. HĂ©las encore une fois, le concepte d’abstraction de donnĂ©es et celui d’objet ne sont pas identiques et ne se recouvrent pas complĂštement. Caramba, encore ratĂ© !

🔱 Essayons alors la dĂ©finition purement technique : un objet est un dictionnaire de propriĂ©tĂ©s, chacune Ă©tant un tableau d’octets que l’on regarde Ă  travers des lunettes qui permettent de l’interprĂ©ter. Ce point de vue est probablement le plus exact, mais aussi le plus insatisfaisant, sauf peut-ĂȘtre pour un dĂ©veloppeur Javascript.

➗ Essayons alors les mathĂ©matiques. Un objet est alors une machine Ă  Ă©tats finis, possĂ©dant des fonctions transformant un Ă©tat en un autre. L’objet peut ĂȘtre dĂ©crit comme un tuple Ă  4 Ă©lĂ©ments : son identitĂ©, son type, son Ă©tat actuel et l’ensemble des identifiants y faisant rĂ©fĂ©rence. L’identitĂ© est immuable, le type l’est souvent, l’état peut varier selon les rĂšgles qu’impose le type. Le type peut parfaitement imposer Ă  l’état d’un objet une totale immutabilitĂ©, ce qui le rend rĂ©fĂ©rentiellement transparent. Les identifiants quant Ă  eux sont un tableau associant des noms Ă  un objet donnĂ©.

đŸ§‘â€đŸ« Pris isolĂ©ment, aucun de ces points de vue n’a la moindre utilitĂ© pratique au dĂ©veloppeur. Tous ces points de vue sont complĂ©mentaires et offrent un Ă©clairage complet sur un phĂ©nomĂšne bien plus complexe qu’il n’y paraĂźt. L’auteur cite Marvin Minsky : nous ne comprenons rien tant que nous ne l’avons pas appris de plusieurs maniĂšres.

SOURCE

Antero Taivalsaari. 1993. On the notion of object. J. Syst. Softw. 21, 1 (April 1993), 3–16. DOI:10.1016/0164-1212(93)90013-N

Enzo Sandré


DOIs: 10.1016/0164-1212(93)90013-N