Ken Thompson : L'architecte silencieux de tout
Lorsque les Laboratoires Bell se sont retirés du projet Multics en 1969, Ken Thompson s'est retrouvé avec un mini-ordinateur PDP-7 obsolète dans un coin et sans mandat officiel. Il l'a utilisé pour construire un système d'exploitation quand même. Unix tourne maintenant, sous une forme descendante, sur presque chaque serveur, téléphone et appareil embarqué de la planète. Dennis Ritchie, le plus proche collaborateur de Thompson et une figure importante en soi, a dit de cette première version que « la plupart des idées, et la majeure partie du travail d'ailleurs, étaient les siennes ».
Arithmétique en binaire
Kenneth Lane Thompson est né le 4 février 1943 à La Nouvelle-Orléans, en Louisiane. Son récit de sa propre enfance est caractéristiquement sobre : « J'ai toujours été fasciné par la logique et même à l'école primaire, je travaillais sur des problèmes d'arithmétique en binaire, des trucs comme ça. Juste parce que ça me fascinait. » Cette dernière proposition définit l'homme dans sa globalité : un appétit intellectuel sans aucun but instrumental associé.
Il a obtenu une licence en 1965 et un master en 1966, tous deux en génie électrique et en informatique, de l'Université de Californie à Berkeley, où son directeur de thèse était le théoricien du codage Elwyn Berlekamp. Les Laboratoires Bell l'ont embauché en 1966 au Centre de recherche en sciences informatiques de Murray Hill, dans le New Jersey.
Unix
Entre 1967 et 1969, Thompson a travaillé sur Multics, l'ambitieux projet conjoint de temps partagé entre les Laboratoires Bell, le MIT et General Electric. Multics était énorme, lent et en retard ; les Laboratoires Bell se sont retirés. Ce que Thompson en a retiré était la conviction que les idées étaient bonnes mais que l'exécution était mauvaise.
L'histoire de l'origine est bien attestée et légèrement absurde. Il voulait continuer à jouer à Space Travel, un jeu qu'il avait écrit, et il voulait un environnement décent pour travailler. Sur un PDP-7 mis au rebut, avec des ressources minimales et aucun soutien institutionnel, il a construit le cœur d'un système d'exploitation : un système de fichiers hiérarchique, des processus, des fichiers de périphériques traités comme des fichiers ordinaires, un interpréteur de ligne de commande séparé du noyau et des tubes (pipes) pour enchaîner les programmes. Chacun de ces éléments est désormais si standard qu'il faut faire un effort pour les considérer comme des choix.
La philosophie de conception était la compression. Plutôt qu'un système qui anticipait chaque besoin, Unix offrait un petit nombre de primitives composables et laissait les utilisateurs assembler ce qu'ils voulaient. En 1973, plus de vingt installations existaient. Pour écrire plus facilement les parties hors noyau, Thompson a créé le langage de programmation B, dérivé du BCPL, que Ritchie a ensuite développé en C — le langage dans lequel la majeure partie des logiciels d'infrastructure du monde est encore écrite.
Vingt questions, huit minutes au chronomètre et un centile mesuré face à tous ceux qui l’ont passé. Sans inscription.
Passer le test de QI →Petits outils, racines profondes
L'autre travail de Thompson porte la même signature : une idée compacte qui s'avère porteuse. Il a implémenté les expressions régulières dans les éditeurs QED et ed, et a conçu la construction de Thompson, l'algorithme pour convertir une expression régulière en un automate fini. Presque tous les moteurs d'expressions régulières utilisés aujourd'hui sont des descendants de cette notation.
Il a construit un programme d'échecs en 1971, puis avec Joseph Condon a construit Belle, une machine à échecs spécialisée qui a dominé l'échec informatique à son époque, et a ensuite généré les bases de données de finales complètes pour les fins de partie de quatre, cinq et six pièces — des solutions exhaustives à des classes entières de positions d'échecs, un corpus de travail qui a durablement changé la théorie de la finale.
En 1992, avec Rob Pike, il a conçu UTF-8, l'encodage de caractères qui permet à un flux d'octets de transporter n'importe quelle écriture sur Terre tout en restant compatible avec ASCII. Il représente désormais plus de 90 pour cent du Web. Il a également joué un rôle central dans Plan 9, le système d'exploitation distribué que les Laboratoires Bell ont construit au milieu des années 1980 pour pousser les idées d'Unix plus loin que ce qu'Unix lui-même pouvait faire.
Sa conférence Turing de 1983, « Réflexions sur la confiance », décrivait un compilateur qui insère une porte dérobée dans les programmes qu'il compile, ainsi que dans ses propres versions futures, de sorte que le code malveillant n'apparaisse nulle part dans aucune source que quiconque peut lire. Le hack de Thompson est un document fondamental de la sécurité informatique ; le code source a été annoté et publié en 2023.
Google et Go
Thompson a pris sa retraite des Laboratoires Bell fin 2000 et a rejoint Google en 2006, où, avec Rob Pike et Robert Griesemer, il a conçu le langage de programmation Go. Son récit de la motivation est direct : « Nous nous sommes réunis tous les trois et avons décidé que nous détestions le C++ », un langage qu'il a qualifié de « tas d'ordures d'idées mutuellement exclusives ». Go a été construit sur la règle selon laquelle les trois concepteurs devaient être convaincus de chaque fonctionnalité, ce qui est une discipline pour garder un langage petit.
Les honneurs se sont accumulés régulièrement : élection à la National Academy of Engineering en 1980, prix IEEE Emanuel R. Piore en 1982, prix ACM Turing avec Ritchie en 1983, National Academy of Sciences en 1985, médaille IEEE Richard W. Hamming en 1990, prix Computer Pioneer en 1994, bourse du Computer History Museum en 1997, National Medal of Technology en 1998, prix inaugural Tsutomu Kanai en 1999 et prix du Japon pour l'information et les communications en 2011.
Pourquoi Ken est qualifié de génie
La citation du prix Turing de l'ACM fait une affirmation inhabituellement précise, et il vaut la peine de la citer car elle localise la qualité avec exactitude : « Le succès du système UNIX provient de sa sélection de bon goût de quelques idées clés et de leur élégante implémentation... Le génie du système Unix est son cadre, qui permet aux programmeurs de s'appuyer sur le travail des autres. »
Le goût est le mot opératoire. Le talent de Thompson est soustractif : une capacité à identifier le plus petit ensemble de concepts qui générera le plus grand espace de comportement utile, puis à refuser tout le reste. Les tubes (pipes) en sont l'exemple canonique : un mécanisme trivial pour connecter la sortie d'un programme à l'entrée d'un autre, ce qui transforme une collection de petits outils en un système combinatoire. Les expressions régulières, UTF-8 et Go montrent tous le même modèle de conception minimale suffisante. Il est régulièrement cité parmi les plus grands programmeurs ayant jamais vécu, et le jugement provient de personnes qui écrivent du code pour gagner leur vie plutôt que de comités de prix.
La contre-argumentation est plus mince que pour la plupart des personnes sur cette liste, mais elle existe. Unix était collaboratif — Ritchie, Brian Kernighan, Douglas McIlroy, qui a proposé les tubes, et d'autres l'ont façonné profondément, et le prix Turing a été partagé. De nombreuses idées d'Unix ont été adaptées de Multics plutôt qu'inventées de toutes pièces. Thompson n'a produit aucun résultat théorique en informatique, et son influence réside entièrement dans les artefacts et le jugement de conception. Si cela constitue du génie ou un métier extraordinairement bien développé est une question juste. La réponse la plus honnête est que dans le logiciel, les deux sont difficiles à séparer, et le métier de Thompson s'est avéré plus conséquent que les théories de la plupart des gens.
Héritage
Linux, macOS, Android, iOS et les logiciels faisant tourner pratiquement tous les serveurs Internet descendent des décisions que Thompson a prises seul sur une machine mise au rebut en 1969. Son encodage de caractères transporte presque tout le texte écrit en ligne. Son algorithme d'expressions régulières se trouve à l'intérieur de chaque éditeur de texte. Il a enregistré une longue histoire orale pour le Computer History Museum en 2024, et a passé ses dernières années, après avoir abandonné les produits Apple, à faire tourner Raspberry Pi OS.
.jpg)