Bjarne Stroustrup : Allier élégance et vitesse
Bjarne Stroustrup voulait quelque chose qui, sur le papier, ressemblait à une contradiction : un langage où il pourrait écrire des programmes « aussi élégants que les programmes Simula, mais aussi efficaces que les programmes C ». Simula était lent et académique ; C était rapide et impitoyable. Stroustrup a passé les quatre décennies suivantes à prouver que la contradiction n'était qu'apparente et, ce faisant, a construit le langage qui fait encore fonctionner les systèmes d'exploitation, les navigateurs, les moteurs de jeu et les salles de marché du monde entier.
Des débuts modestes à Aarhus
Stroustrup est né le 30 décembre 1950 à Aarhus, au Danemark, dans une famille de la classe ouvrière, et a étudié les mathématiques avec une spécialisation en informatique à l'Université d'Aarhus de 1969 à 1975. Il s'est ensuite rendu à l'Université de Cambridge pour un doctorat en informatique, terminé en 1979 sous la direction de David Wheeler et axé sur l'informatique distribuée. C'est à Cambridge, et sous l'influence de Kristen Nygaard — l'un des deux inventeurs de Simula et de la programmation orientée objet elle-même — que Stroustrup a absorbé les idées sur les classes, l'héritage et l'abstraction qui allaient définir l'œuvre de sa vie. Il a déclaré que son exposition à la puissance expressive de Simula, combinée à la frustration face à sa lenteur d'exécution peu pratique, a posé le problème spécifique que C++ a été conçu pour résoudre.
Bell Labs et la naissance de « C with Classes »
En 1979, Stroustrup a rejoint le Computer Science Research Center des AT&T Bell Labs à Murray Hill, dans le New Jersey — la même culture de recherche qui avait produit Unix et le langage C lui-même. Là, il a commencé à étendre C avec des classes de style Simula, appelant initialement le résultat « C with Classes ». Le manuel de référence interne de ce qui serait renommé C++ est apparu en 1984, et le langage a atteint sa version commerciale en 1985, l'année même où Stroustrup a publié la première édition de « The C++ Programming Language », un livre qui connaîtra quatre éditions et sera traduit en vingt et une langues. Il a délibérément construit C++ comme une extension de C plutôt que comme un langage partant de zéro, une décision qui lui a coûté une certaine pureté théorique mais lui a permis une compatibilité immédiate avec une énorme base de code et une chaîne d'outils existantes — un compromis pragmatique qui a plus que tout déterminé la rapidité avec laquelle le langage s'est répandu. Il a ensuite dirigé le département de recherche sur la programmation à grande échelle des AT&T Bell Labs depuis sa création jusqu'à fin 2002, et a été nommé Bell Labs Fellow en 1993 et AT&T Fellow en 1996.
Ce que C++ a réellement ajouté
C++ a ajouté à C un système de typage statique qui traitait les types définis par l'utilisateur avec le même sérieux que les types intégrés, une programmation orientée objet basée sur les classes et l'héritage de Simula, et — dans une démarche ultérieure et sans doute plus influente — une programmation générique via des modèles, permettant au code d'être écrit une fois et spécialisé pour de nombreux types sans sacrifier la vitesse. Son idiome de gestion des ressources, RAII (l'acquisition de ressources est l'initialisation), liait la durée de vie d'une ressource à la durée de vie d'un objet via des constructeurs et des destructeurs, un modèle qui a résolu une classe de bogues de mémoire et de fuites de ressources qui avaient tourmenté les programmeurs C pendant des années et qui a plus tard influencé les conceptions de gestion des ressources des langages à ramasse-miettes. Surtout, rien de tout cela ne s'est fait au détriment de l'accès direct de C au matériel et aux ressources du système d'exploitation — la moitié « efficacité » de l'ambition originale de Stroustrup n'a jamais été compromise pour la moitié « élégance ».
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 →Guider un langage à travers la normalisation
Stroustrup n'a pas simplement inventé C++ pour ensuite s'en désintéresser. Il a été membre fondateur de l'effort de normalisation ANSI en 1989 et du comité ISO ultérieur en 1991, et il a présidé le groupe de travail sur l'évolution du comité — l'organisme qui examine chaque ajout proposé au langage — pendant vingt-quatre ans. C'est un mandat de gestion exceptionnellement long pour le créateur de n'importe quel langage de programmation, et cela signifiait que Stroustrup a personnellement façonné la façon dont C++ a absorbé des décennies de nouvelles demandes, du support de la concurrence à la métaprogrammation à la compilation, sans casser l'énorme corps de code C++ existant déjà en production.
Carrière académique et industrielle après Bell Labs
Après Bell Labs, Stroustrup a rejoint l'Université Texas A&M en 2002 en tant que professeur titulaire de la faculté d'ingénierie, devenant professeur distingué de l'université en 2011. En 2014, il a rejoint Morgan Stanley en tant que membre technique et directeur général tout en occupant simultanément un poste de professeur invité à l'Université Columbia, et depuis 2022, il est professeur titulaire d'informatique à Columbia — un parcours de fin de carrière inhabituel qui a placé l'inventeur d'un langage système au centre de la technologie d'une société de trading de Wall Street.
Prix et reconnaissance
Les honneurs de Stroustrup reflètent son influence démesurée plutôt qu'une seule percée célèbre : le prix ACM Grace Murray Hopper en 1993, l'élection en tant qu'ACM Fellow et IEEE Fellow en 1994, le prix William Procter pour la réalisation scientifique en 2005 (le premier informaticien à le recevoir), la médaille IET Faraday en 2017 et le prix Charles Stark Draper en 2018 « pour la conceptualisation et le développement du langage de programmation C++ ». Le Computer History Museum l'a reconnu comme Fellow en 2015, le créditant d'avoir « amené la programmation orientée objet et la programmation générique dans le courant dominant ». Il n'a pas reçu le prix ACM Turing.
Pourquoi Bjarne est qualifié de génie
L'argument pour qualifier Stroustrup de génie ne repose pas sur un seul coup d'originalité théorique — l'orientation objet vient de Nygaard et Dahl, la programmation générique avait des précédents, et C existait déjà. Il repose plutôt sur un type de jugement d'ingénierie plus rare : la capacité de fusionner des idées que le domaine supposait être en tension, sans en briser aucune, et de continuer à faire ce compromis correctement pendant un quart de siècle de décisions de normalisation alors que l'informatique elle-même changeait sous le langage. La citation du prix Draper le crédite pour avoir « conceptualisé et développé » C++, un langage qui reconnaît la synthèse plutôt que l'invention pure. Le contre-argument honnête est substantiel : C++ est largement critiqué, y compris au sein du domaine, pour sa complexité accumulée, son exposition des programmeurs aux pièges de la sécurité mémoire que des langages plus récents comme Rust ont été explicitement conçus pour éliminer, et pour des compromis de conception qui découlent directement de la décision fondatrice de Stroustrup de rester rétrocompatible avec C. Son génie, si le mot s'applique, est plus proche de l'artisanat et de la gestion — construire quelque chose d'énormément utile et imparfait, puis le maintenir ensemble pendant quarante ans — que d'un éclair de pure intuition abstraite.
Héritage
C++ reste fondamental pour les systèmes d'exploitation, les navigateurs, les moteurs de jeu et les systèmes de trading financier, et son influence se retrouve visiblement dans Java, C# et Rust. L'évaluation par Stroustrup lui-même de l'œuvre de sa vie a toujours été caractérisée par un manque de sentimentalité : il a construit un outil destiné à être utilisé, et à cette mesure — une ubiquité pure et décennale — C++ a réussi au-delà de presque tout autre langage de programmation de l'histoire.

