En octobre 2011, les médias du monde entier consacraient leurs unes à la disparition de Steve Jobs, le mythique cofondateur d'Apple. Pourtant, une semaine plus tard, le 12 octobre 2011, s'éteignait dans une solitude et une discrétion quasi totales un homme dont l'empreinte technologique était mille fois plus vaste : Dennis MacAlistair Ritchie.
Comme l'a alors justement souligné l'ingénieur Rob Pike :
« Steve Jobs a rendu les ordinateurs désirables et élégants. Mais Dennis Ritchie a créé les outils qui ont rendu ces ordinateurs possibles. »
Sans le langage C et sans le système d'exploitation Unix, tous deux inventés par Dennis Ritchie aux mythiques laboratoires Bell au début des années 1970, il n'y aurait aujourd'hui ni Linux, ni macOS, ni iOS, ni Android, ni Windows, ni serveurs Web, ni Internet.
Retour sur le parcours du géant le plus humble de l'histoire informatique.
1. De Harvard aux laboratoires Bell : L'ADN de l'ingénierie#
Dennis Ritchie naît le 9 septembre 1941 à Bronxville, dans l'État de New York. L'informatique et les télécommunications coulent dans ses veines dès le berceau : son père, Alistair E. Ritchie, est un brillant ingénieur de recherche chez AT&T Bell Labs, coauteur d'un ouvrage de référence sur la conception des circuits de commutation téléphonique.
Après de brillantes études secondaires, Dennis entre à l'université Harvard. Il y décroche en 1963 un diplôme de premier cycle en physique, puis s'oriente vers les mathématiques appliquées. En 1968, il rédige une thèse de doctorat d'une remarquable profondeur sur la théorie des fonctions sous-récursives sous la direction de Patrick C. Fischer. Fait révélateur de sa modestie et de son dédain pour les honneurs formels : Ritchie n'a jamais pris la peine de déposer officiellement la version reliée de son manuscrit à la bibliothèque de Harvard pour récupérer son diplôme physique de docteur !
Dès 1967, il intègre le Computing Sciences Research Center des Bell Labs à Murray Hill, dans le New Jersey. Ce sanctuaire de la recherche fondamentale industrielle — d'où sont déjà sortis le transistor, le laser et la théorie de l'information de Claude Shannon — va devenir son atelier de création pour les quarante années suivantes.
2. L'échec de Multics et la naissance clandestine d'Unix (1969)#
À la fin des années 1960, Bell Labs participe avec le MIT et General Electric à un projet titanesque : Multics (Multiplexed Information and Computing Service). L'ambition était de concevoir un système d'exploitation centralisé capable d'alimenter des milliers d'utilisateurs simultanés comme on distribue l'eau ou l'électricité.
Mais le projet s'enlise. Multics est trop complexe, trop lent et hors de prix. En mars 1969, la direction de Bell Labs jette l'éponge et ordonne le retrait immédiat.
Se retrouvant privés d'environnement informatique moderne, Dennis Ritchie et son complice Ken Thompson refusent de baisser les bras. Dans un coin du laboratoire, ils dénichent un mini-ordinateur obsolète et abandonné : un DEC PDP-7 doté d'une mémoire minuscule de 8 kilo-mots (environ 16 Ko de RAM).
[ Multics (1965-1969) ] [ PDP-7 Abandonné ]
(Usine à gaz centralisée) │
│ ▼
(Abandon) Ken Thompson & Dennis Ritchie (1969)
│
▼
[ Projet UNIX (1970) ]
« Simple, modulaire, portable »
Thompson commence par réécrire un système de fichiers novateur et un jeu d'exploration spatiale (Space Travel). Ensemble, Ritchie et Thompson façonnent un système d'exploitation léger, multitâche et multi-utilisateur.
Par dérision envers le gigantisme de Multics, le système est d'abord surnommé UNICS (Uniplexed Information and Computing Service), avant de prendre son nom définitif : UNIX.
La philosophie Unix : La beauté de la simplicité#
Ritchie et Thompson forgent une doctrine de conception qui guide encore le développement logiciel contemporain :
1. Faire une seule chose, et la faire bien : Chaque utilitaire (cat, grep, ls, sort) est un outil spécialisé.
2. Le texte universel : Les programmes échangent des données sous forme de flux de texte brut.
3. Les tubes (Pipes) : Inventés par leur collègue Doug McIlroy, le symbole | permet de chaîner les commandes à l'infini (cat file.txt | grep error | wc -l).
4. « Tout est fichier » : Qu'il s'agisse d'un disque dur, d'un clavier, d'un écran ou d'une imprimante, l'accès se fait via les mêmes primitives d'entrée/sortie (open, read, write, close).
3. L'invention du langage C : L'outil parfait (1971-1973)#
À l'époque, Unix était entièrement écrit en langage assembleur propre au processeur PDP-7, puis PDP-11. Écrire en assembleur garantissait des performances maximales, mais posait un inconvénient majeur : le système était prisonnier de la machine physique. Si l'on changeait de processeur, il fallait réécrire l'intégralité du code à la main.
Ken Thompson avait bien développé un langage intermédiaire plus concis, le langage B (inspiré du BCPL de Martin Richards). Mais le langage B était « sans type » (typeless) et peinait à manipuler les structures complexes ou les adresses mémoire du nouveau PDP-11.
Dennis Ritchie prend alors les commandes. Entre 1971 et 1973, il enrichit le langage B, lui ajoute des types de données stricts, un système de compilation efficace, et le baptise logiquement C.
BCPL (Martin Richards, 1967)
│
▼
Langage B (Ken Thompson, 1969)
│
▼
Langage C (Dennis Ritchie, 1972-1973) ──► La référence absolue des systèmes
Le génie du C : La puissance de l'assembleur, l'élégance du haut niveau#
Dennis Ritchie parvient à équilibrer deux exigences jugées inconciliables :
* Un langage de haut niveau lisible : Des blocs d'instructions structurés (if, while, for), des fonctions modulaires, des types composés (struct).
* Un contrôle absolu du matériel : L'accès direct à la mémoire physique grâce aux pointeurs (*p, &var), permettant d'écrire des pilotes de périphériques et des gestionnaires d'interruption sans surcoût logiciel.
Le tour de force de 1973 : Réécrire Unix en C#
À l'été 1973, Ritchie et Thompson accomplissent un acte révolutionnaire pour l'époque : ils réécrivent la quasi-totalité du noyau d'Unix en langage C.
Pour la première fois dans l'histoire des technologies, un système d'exploitation n'était plus dépendant du matériel. Il suffisait d'écrire un compilateur C pour une nouvelle machine pour qu'Unix puisse y être transposé en quelques jours.
Le concept de portabilité logicielle venait d'entrer dans l'ère moderne.
4. Le livre culte « K&R » et la légende du « Hello, World! »#
En 1978, Dennis Ritchie publie avec Brian Kernighan un manuel devenu mythique : The C Programming Language, universellement désigné par les développeurs sous l'acronyme « K&R ».
D'une concision exemplaire (à peine 228 pages), sans fioritures et rédigé avec une clarté cristalline, l'ouvrage initie la plus célèbre tradition de l'apprentissage informatique planétaire en présentant le premier programme que tout apprenti développeur doit écrire :
Ce petit programme de quatre lignes est devenu le rite initiatique obligatoire de millions d'étudiants à travers la planète, décliné depuis dans tous les langages de programmation existants.
5. L'empreinte omniprésente de Dennis Ritchie#
Il est difficile d'exagérer l'impact des créations de Dennis Ritchie sur le monde moderne. Son héritage se déploie à deux niveaux fondamentaux :
1. La descendance des langages#
Le langage C a fixé la grammaire, la syntaxe et la logique de la quasi-totalité des langages modernes :
* C++ (Bjarne Stroustrup) et Objective-C ont directement étendu le C avec la programmation orientée objet.
* Java, C#, JavaScript, PHP reprennent fidèlement sa syntaxe d'accolades {} et ses opérateurs logiques.
* Les interpréteurs et compilateurs des langages stars d'aujourd'hui — à commencer par CPython (le moteur officiel de Python) ou le moteur V8 de JavaScript — sont eux-mêmes programmés en C ou en C++ !
2. La galaxie des systèmes d'exploitation#
Tous les systèmes d'exploitation majeurs de la planète dérivent directement d'Unix ou de ses principes : * Linux : Créé en 1991 par Linus Torvalds en langage C, Linux fait tourner 100 % des 500 supercalculateurs les plus puissants du monde, l'immense majorité des serveurs du Cloud et tous les smartphones Android. * macOS et iOS : Le système d'Apple (Darwin) repose sur un noyau hybride fondé sur BSD, un descendant direct d'Unix. * Windows : Le noyau de Windows NT a été conçu en C et C++ en intégrant les mécanismes de mémoire virtuelle et de fichiers popularisés par les travaux de Bell Labs.
L'Arbre Généalogique d'Unix
┌───────────┐
│ UNIX 1970 │
└─────┬─────┘
┌────────────────────┴────────────────────┐
▼ ▼
┌───────────┐ ┌───────────┐
│ BSD │ │ System V │
└─────┬─────┘ └───────────┘
┌───────────┴───────────┐
▼ ▼
┌─────────┐ ┌─────────┐
│ macOS │ │ Linux │ (1991, Linus Torvalds)
│ & iOS │ └────┬────┘
└─────────┘ ▼
┌───────────┐
│ Android │
│ & Serveurs│
└───────────┘
6. Distinctions et départ discret#
Reconnu par ses pairs comme l'un des plus grands esprits scientifiques de son siècle, Dennis Ritchie a accumulé les distinctions les plus prestigieuses :
- 1983 : Le Prix Turing, décerné conjointement avec Ken Thompson pour leur développement de la théorie des systèmes d'exploitation et l'implémentation d'Unix.
- 1990 : La médaille Richard Hamming de l'IEEE.
- 1998 : La National Medal of Technology, remise en mains propres à la Maison-Blanche par le président Bill Clinton.
- 2011 : Le Prix du Japon, pour ses contributions pionnières aux technologies de l'information.
Ritchie a passé l'ensemble de sa carrière professionnelle chez Bell Labs / Lucent Technologies jusqu'à sa retraite en 2007. Connu sous son pseudonyme UNIX légendaire dmr, il était réputé pour sa disponibilité chaleureuse, répondant patiemment aux courriels d'étudiants du monde entier qui lui demandaient conseil.
Il s'est éteint paisiblement chez lui à Berkeley Heights, dans le New Jersey, le 12 octobre 2011, à l'âge de 70 ans.
Ce qu'il faut retenir#
- L'architecte de notre infrastructure numérique : Dennis Ritchie a conçu le langage C et codirigé la création du système Unix. Sans lui, le socle de l'informatique moderne n'existerait pas.
- Le père de la portabilité : En réécrivant le noyau d'Unix en langage C en 1973, il a dissocié pour toujours le logiciel du matériel informatique.
- La philosophie de la sobriété : Ritchie a prouvé qu'un système élégant n'est pas un système où l'on ne peut plus rien ajouter, mais un système où l'on ne peut plus rien enlever.
- Une humilité proverbiale : Travaillant dans l'ombre sans jamais rechercher la notoriété médiatique, il a laissé derrière lui une maxime devenue culte :
« Unix is simple. It just takes a genius to understand its simplicity. »
(« Unix est simple. Il faut simplement être un génie pour en comprendre la simplicité. »)
Dans le prochain épisode de notre série de portraits, nous explorerons le destin de Guido van Rossum, le créateur visionnaire du langage Python.
Commentaires