Smalltalk-80
À la fin des années 1970, le Xerox PARC abritait déjà plusieurs versions de Smalltalk, mais ces créations demeuraient prisonnières des murs du laboratoire. Elles ne fonctionnaient que sur le matériel spécialisé de Xerox : l’Alto et le Dorado, machines coûteuses et inaccessibles au commun des informaticiens. Cette situation frustrante pousse Adele Goldberg à prendre les rênes d’un projet ambitieux : faire sortir Smalltalk de sa bulle dorée pour qu’il puisse s’épanouir sur d’autres architectures.
L’entreprise s’annonce délicate. Il faut d’abord formaliser avec une précision chirurgicale le fonctionnement d’une « machine virtuelle » Smalltalk qui servirait de socle universel, tout comme celle de Java bien des années plus tard. Cette abstraction technique cache un nouveau concept : tout est objet dans ce nouvel univers. Les nombres, les caractères et les classes se comportent comme des entités autonomes capables de recevoir et d’envoyer des messages. Cette uniformité radicale bouscule les habitudes des programmeurs habitués à séparer soigneusement données et procédures.
Dans ce monde unifié, l’héritage tisse des liens invisibles entre les classes. Une hiérarchie se dessine naturellement, où chaque descendant enrichit ou spécialise les comportements de ses ancêtres. Les méthodes de classe orchestrent les comportements partagés tandis que les méthodes d’instance donnent à chaque objet sa personnalité propre. Cette architecture favorise une forme de réutilisation du code inconnue jusqu’alors.
L’environnement de développement rompt avec le cycle traditionnel qui imposait d’éditer, compiler puis exécuter. Smalltalk-80 propose une expérience continue où le programmeur modifie son code pendant que le programme s’exécute. Cette fluidité transforme l’acte de programmer en une conversation directe avec la machine. Le navigateur de classes et le débogueur, eux-mêmes écrits en Smalltalk, sont des outils vivants que l’utilisateur façonne selon ses besoins.
L’interface graphique introduit des concepts innovants pour l’époque : les fenêtres se superposent, les menus apparaissent au clic droit, les objets se manipulent directement à l’écran. Ces innovations établissent un langage visuel qui influence encore nos interactions quotidiennes avec les ordinateurs. Steve Jobs ne s’y trompe pas lorsqu’il visite le PARC en 1979 ; il comprend immédiatement le potentiel de ces idées pour le grand public.
Sous le capot, la gestion de la mémoire automatique libère enfin les programmeurs d’une corvée technique fastidieuse. Le ramasse-miettes traque les objets abandonnés pour recycler leur mémoire. Peter Deutsch et Allan Schiffman peaufinent ces mécanismes jusqu’à obtenir des performances acceptables sur du matériel standard, prouvant que l’élégance conceptuelle peut cohabiter avec l’efficacité pratique.
L’implémentation sur différentes plateformes exige des prouesses d’ingénierie. L’équipe du PARC dessine une machine virtuelle avec son propre jeu d’instructions, laissant aux intégrateurs le soin de traduire ces commandes abstraites en code natif. Cette stratégie garantit la portabilité tout en préservant la possibilité d’optimisations spécifiques. Les caches de méthodes accélèrent la recherche dans la hiérarchie des classes : quand un objet reçoit un message, le système mémorise l’association entre le sélecteur et la méthode correspondante pour les appels ultérieurs.
La gestion des contextes d’exécution révèle une autre facette de l’approche objet. Ces contextes, objets manipulables par le programme, permettront à des mécanismes sophistiqués comme la gestion d’exceptions et la réflexion de voir le jour. Cette uniformité conceptuelle pousse la logique objet jusque dans les rouages les plus intimes du système.
Avec la publication de Smalltalk-80 dans un numéro spécial du magazine Byte en 1980, les livres d’Adele Goldberg et David Robson diffusent ces idées bien au-delà des cercles académiques. Objective-C, Ruby, Python et tant d’autres puisent directement dans cette source. L’influence dépasse le domaine des langages : les environnements de développement modernes gardent la trace de cette vision où tout est accessible et modifiable en temps réel.
L’interface de Smalltalk-80 essaime dans le monde commercial grâce à la perspicacité de Jobs. Le Lisa et le Macintosh popularisent ces concepts auprès du grand public, créant un standard de facto qui perdure. Les techniques d’optimisation mises au point pour Smalltalk-80 sont désormais des pratiques courantes dans l’intégration des langages orientés objet.
La documentation exhaustive du système, incluant les spécifications de la machine virtuelle et les détails d’implémentation, constitue un cadeau inestimable à la communauté informatique. D’autres équipes vont ainsi réinventer le système selon leurs besoins, accélérant la propagation de ces idées pionnières.