XXIe siècle : ces créateurs de langages qui nous ont quitté
Rédigé par Frédéric Dumas
Aucun commentaire

--------------------
Thomas Kurtz au département d’informatique de l’université de Dartmouth (New Hampshire, États-Unis) dans les années 1960.
Photo: Adrian Bouchard - Rauner Special Collections Library
Ce premier quart du XXIè siècle aura vu disparaitre tous les créateurs de langages de programmation qui ont illuminé les décennies 80 et 90 de la micro-informatique: Basic, Pascal, et C
Il existe une foule d'autres langages de programmation conçus dans les dernières décennies du XXème siècle, mais aucun d'eux ne fut utilisé comme Basic, Pascal et C, par des autodidactes s'appropriant la micro-informatique, motivés par leur curiosité et leur enthousiasme. Le but de ce billet est de rendre un hommage particulier à ces créateurs qui mirent leur talent au service du plus grand nombre, et qui nous ont quitté en ce début de XXIème siècle.
Bien qu'ils furent popularisés par l'explosion de la micro-informatique de loisir, ces trois langages prennent racine dans les décennies précédentes, 1960 pour le Basic et 1970 pour le Pascal et le C. Ces décennies sont encore dominées par l'architecture mainframe: les utilisateurs d'un ordinateur central interagissent avec lui au moyen de télétypes (une combinaison de clavier et d'imprimante (en)), puis avec des terminaux à tube cathodique (en) (sans l'unité centrale du PC), qui en sont l'évolution. Compte tenu du progrès très rapide des technologies silicium de l'époque, chaque évolution de matériel est marquée par une forte incompatibilité avec la génération précédente, y compris chez un même fabricant. C'est pourquoi les créateurs de tout langage de programmation partageaient à cette époque de fait trois mêmes objectifs prioritaires:
- s'affranchir du code machine et offrir à l'utilisateur un moyen plus à sa portée de programmer l'ordinateur avec des instructions de plus haut niveau, beaucoup plus rapides à maîtriser;
- gagner en indépendance par rapport au processeur, facilitant la réutilisation du code d'une génération de machine à la suivante, au prix d'une adaptation partielle du code source, beaucoup plus acceptable qu'un portage total du code machine; bien entendu, la re-écriture de l'interpréteur ou du compilateur du langage pouvait rester, elle, nécessaire d'une machine à la suivante;
- être un outil d'utilisation de la machine adapté à son accès simultané par plusieurs utilisateurs à la fois, depuis plusieurs terminaux utilisés en parallèle; cet objectif répond à l'architecture mainframe des milieux universitaires où sont développés ces langages, mais ne sera évidemment plus d'actualité lorsqu'ils serviront sur des micro-ordinateurs personnels.
= Basic =
Les deux créateurs du langage Basic sont pour l'un américain, Thomas Kurtz (en), pour l'autre hongrois émigré aux États-Unis, János Kemény (en).
Le premier nous a quitté presque centenaire à la fin de l'année
dernière, le 12 novembre 2024, tandis que le second décédait dans sa
soixantaine, bien avant de voir notre siècle, en 1992. Les deux hommes
étaient pourtant sensiblement du même âge, nés entre les deux guerres
mondiales. C'est dans une université de la côte Est des États-Unis, le
Dartmouth College, qu'ils collaborèrent pour définir et implémenter le
langage Basic (en), au service d'abord de leurs étudiants des filières non-scientifiques.
Basic
a connu dans les années 80 une présence quasi monopolistique sur la
micro-informatique 8bits, étant à l'époque livré d'office dans la
mémoire ROM de ces ordinateurs personnels; même le BIOS des premiers IBM
PC était conçu pour basculer sur le Basic, en cas d'absence de système
d'exploitation dans le lecteur de disquettes. Il fut encore utilisé sous
diverses implémentations de plus en plus sophistiquées, lui ajoutant
dans les années 90 des compilateurs pour produire des exécutables
binaires et l'accompagnant d'éditeurs visuels pour générer des
applications avec l'interface graphique à fenêtres de l'époque. Il est
depuis considéré comme obsolète. Remercions pourtant ses deux créateurs
pour l'outil opérationnel qu'ils donnèrent non seulement à leurs
étudiants, mais à des centaines de millions d'utilisateurs à travers le
monde, lorsque la micro-informatique fut mise entre leurs mains.
= Pascal =
Avec le langage Pascal,
on entre au début des années 70 dans la cour des plus grands, dans la
catégorie des langages conçus dans les règles de l'art, destinés à
servir à des "usages sérieux". Il faut dire que le créateur du Pascal, le Suisse Niklaus Wirth,
lui aussi décédé l'année passée - le 1er janvier 2024,
n'en était pas à son coup d'essai: il était une dizaine d'années plus
jeune que les deux créateurs de Basic, et ses études en Amérique du
nord, d'abord à l'université de Laval au Québec, puis à Berkeley en
Californie, suivi d'une charge d'enseignant en travaux pratiques à Standford au sud de San
Francisco, le font participer au développement de plusieurs langages de
programmation sur la période. Lorsqu'il revient à Zurich, le langage Pascal est
une sorte de maturation personnelle de ces travaux antérieurs réalisés aux États-Unis.
Avec
Pascal, Niklaus Wirth a mis en œuvre des choix techniques qui seront stables dans le temps: par exemple, la déclaration des variables et
l'appel récursifs aux fonctions, reprises en C, ou la génération de
p-code indépendant du code machine par le compilateur Pascal (développé
dans la seconde partie des années 1970), similaire au byte-code existant aujourd'hui
en Java.
Là où les autres fabricants ont choisi de fournir leurs
machines avec une version du Basic, Pascal est adopté pour ce micro-ordinateur
différent des autres, l'Apple II. Surtout, ses qualités procédurales le font devenir le langage de
programmation de référence pour l'enseignement de la programmation, un
peu comme Python tient ce rôle de nos jours. C'est à ce titre que Pascal
a marqué l'époque de la micro-informatique naissante: contrairement au
Basic, le langage des autodidactes, Pascal lui est enseigné, il devient
l'outil d'un effort académique d'éducation de la population à
l'informatique. Pascal est aussi utilisé pour écrire des
applications professionnelles.
Un signal
faible annonce pourtant rétrospectivement le désamour à venir des
développeurs pour Pascal: au tournant des années 80, l'Américain Brian Kernighan (en) co-écrit presque coup sur coup deux "bibles", l'une pour le
langage C "The C Programming Language", l'autre pour le Pascal "Software Tools in Pascal". Dans les deux cas, le but de Brian
Kernighan est d'attirer l'attention et de fournir des
exemples sur les bonnes pratiques de programmation, qui sont en train d'être découvertes et formalisées. Pourtant à la même
période, il détaille dans ce qu'on appellerait aujourd'hui un billet de blog "Pourquoi Pascal n'est pas mon langage préféré", et dans ce texte, il pointe les raideurs qui déplaisent aux programmeurs, à force de vouloir
les contraindre aux bonnes pratiques; il fera ensuite la promotion du
langage C, de son collègue et ami Dennis Ritchie. Une opinion de programmeur parmi 1000 autres ? L'avenir lui donnera raison, et comme le Basic, le
langage Pascal ne survivra pas aux années 90.
= C =
Le langage de programmation C est une troisième de ces inventions logicielles brillantes, qui ont donné sa puissance entre autres à la micro-informatique. Il a pourtant son origine dans l'informatique mainframe, et est indissociable de cette préoccupation un peu utopique des années 60-70, à l'origine de la conception d'Unix: pour lutter contre la fragmentation des plateformes matérielles, l'informatique a un besoin crucial d'un système d'exploitation. Nous sommes alors avant l'incroyable extension de Microsoft.
Au tournant des années 80, le langage C est donc l’œuvre de l'Américain Dennis Ritchie, qui nous a quitté il y a une douzaine d'années, le 12 octobre 2011, suivant Steve Jobs dans la tombe à une semaine d'intervalle. Ensemble avec Brian
Kernighan (déjà cité) et Kenneth Thompson (en), ils conçoivent, développent et implémentent ce qui deviendra Unix. Ils travaillent pour et répondent au grand besoin de l'opérateur de télécommunications historique américain de l'époque, AT&T. Et le langage C est cet outil que Dennis Ritchie conçoit pour écrire le système d'exploitation Unix, ses pilotes, ses utilitaires et ses applications. Une série documentaire (en) retrace cette épopée. Cette fois-ci, fini les autodidactes, fini les étudiants, on est chez les pros qui ont besoin que des infrastructures informatiques critiques tournent avec la plus grande fiabilité. Incidemment, Kenneth Thompson est aussi connu pour être, une trentaine d'années plus tard, l'un des trois concepteurs du langage Go, développé chez et promu par Google.
Grâce à son enracinement dans ce patient travail de conception et d'écriture d'un système d'exploitation nouveau, construit pour résister au temps, le langage C fait lui aussi la démonstration d'une grande longévité. Lui, puis son évolution avec C++ au tournant des années 90, furent omniprésents en micro-informatique, pour l'écriture des applications utilisées sur ces machines, souvent par des professionnels, parfois par des programmeurs du dimanche. Conçu à la fin des années 70, il reste un langage de prédilection pour les applications proches du système d'exploitation et aussi très généralement pour l'électronique embarquée, où des performances doivent être atteintes, malgré les spécifications techniques matérielles beaucoup plus limitées que sur un ordinateur classique. Surtout, C reste toujours un langage majeur de développement de Windows, de Linux et d'une part importante des applications qui peuvent former une distribution.
Même si les travaux sur ces premiers langages de programmation très populaires ont évidemment impliqué beaucoup d'autres contributeurs, il est remarquable que la totalité de leurs créateurs soient originaires du monde occidental, et même plus, de l'une ou de l'autre des deux côtes des États-Unis. C'est dire la puissance d'innovation, grâce à ses universités et ses financements, de l'informatique des débuts par l'Amérique. Peut-être peut-on y voir un écho de ce que les États-Unis cherchent à reproduire de nouveau maintenant, dans cette panacée contemporaine du progrès technique qu'on appelle l'Intelligence Artificielle.