Values and objects in programming languages

✒ Enzo SandrĂ© · 📆 18/02/2025 · 🔣 Science des Langages

đŸ—ƒïž Les familiers de DDD connaissent la distinction EntitĂ©/Objet-Valeur. Peu savent qu’Evans n’a rien inventĂ© : en 1982, Bruce McLennan plaidait pour que les langages orientĂ©s-objet n’utilisent pas le mĂȘme mĂ©canisme pour reprĂ©senter les valeurs et les objets. Les premiĂšres sont des abstractions intemporelles et immuables que la programmation partage avec les mathĂ©matiques. Les seconds sont des instances partageant une forme commune (leur classe), mais diffĂ©rent en substance (leur identitĂ© et leurs accidents).

🧼 En rĂ©alitĂ©, McLennan non plus n’a rien inventĂ©, il poursuit simplement la longue tradition d’Aristote, de Saint Thomas d’Aquin et des scolastiques. L’orientĂ©-objet n’a rien de neutre, ce paradigme est l’hĂ©ritier d’une longue tradition philosophique rĂ©aliste. Pour McLennan, les mathĂ©mathiques sont trop abstraites et incommodes pour reprĂ©senter les cas particuliers. A l’inverse, un style de programmation qui ignore la distinction valeur/objet se prive d’outils puissants pour reprĂ©senter l’abstrait, l’immuable, le calculable et donc la simplicitĂ©.

đŸ›ïž Ce papier est Ă  ranger parmi les grands classiques de la programmation. “Programmer, c’est faire des mathĂ©mathiques orientĂ©es-objet. MathĂ©matiser, c’est faire de la programmation orientĂ©e-valeur” rĂ©sume d’auteur.

SOURCE

MacLennan, Bruce J.. “Values and objects in programming languages.” ACM SIGPLAN Notices 17 (1982): 70-79. DOI:10.1145/988164.988172

Enzo Sandré


📄 Lien public DOIs: 10.1145/988164.988172