Publié le 24 janvier 2025. La quête du plus ancien code informatique encore en fonctionnement révèle une dépendance insoupçonnée à des vestiges numériques parfois enfouis au cœur de nos infrastructures modernes, de l’aviation civile aux systèmes bancaires.
- La renaissance du chatbot Eliza, créé dans les années 1960, a relancé l’intérêt pour l’histoire des premiers programmes informatiques.
- Identifier le plus vieux code opérationnel s’avère complexe, car les programmes pionniers n’ont pas toujours été exécutés sur du matériel existant.
- Des programmes datant des années 1960 pourraient encore être utilisés aujourd’hui, notamment dans des secteurs critiques comme l’aérien et la finance, mais les entreprises restent discrètes à ce sujet.
Alors que le chatbot Eliza refait surface grâce à la découverte de son code source original, une question se pose : quel est le plus ancien programme informatique encore en service ? Jeffrey Shrager, de l’université de Stanford, souligne que, dans le passé, la publication du code n’était pas une pratique courante. Il est possible que Joseph Weizenbaum, le créateur d’Eliza, n’ait même pas imaginé que son travail susciterait un jour un tel intérêt.
L’enthousiasme suscité par Eliza a conduit Jeffrey Shrager et ses collègues à lancer le projet « Archéologie d’Eliza », une plongée dans l’histoire de ce chatbot précurseur. Leurs efforts ont été récompensés par la découverte du code manquant dans de vieux papiers de Weizenbaum conservés au MIT, permettant ainsi la récente résurrection d’Eliza.
Cette redécouverte soulève une interrogation : le code d’Eliza est-il le plus ancien encore en fonctionnement, ou existe-t-il des fragments de code plus anciens qui continuent d’accomplir des tâches importantes ? Le journaliste Matthew Sparkes, dans un article publié dans New Scientist, s’est lancé dans une enquête qui l’a mené au cœur des systèmes d’exploitation modernes, et même, par extension, au-delà des limites de notre système solaire.
Il est relativement facile de déterminer l’exemplaire le plus ancien d’une technologie donnée. Une recherche en ligne révèle par exemple que le biplan Blériot XI, restauré au Royaume-Uni, est le plus ancien avion encore capable de voler, plus de 115 ans après sa construction. De même, la « Century Light », une ampoule à incandescence située à Livermore, en Californie, brille depuis 124 ans. Cependant, trouver le plus ancien code informatique opérationnel est une tâche bien plus ardue.
Les notes d’Ada Lovelace, datant de 1840, sont souvent citées comme le premier programme informatique. Toutefois, la machine analytique de Charles Babbage, pour laquelle Lovelace avait conçu ce programme, n’a jamais été construite, et son code n’a donc jamais été exécuté. Un prétendant plus sérieux est l’Electronic Delay Storage Automatic Calculator (EDSAC), l’un des premiers ordinateurs à usage général, développé à l’université de Cambridge. Des bénévoles du National Computer Museum à Bletchley Park (Royaume-Uni) construisent actuellement une réplique fonctionnelle de l’EDSAC, qui permettra de faire tourner les programmes développés dans les années 1950 et 1960. Ce code pourrait donc être l’un des plus anciens encore existants, mais il ne pourra être véritablement testé qu’une fois la réplique de l’EDSAC achevée.
Matthew Sparkes a alors émis l’hypothèse que les logiciels modernes pourraient receler des vestiges de code ancien. Cette idée n’est pas aussi farfelue qu’il y paraît. Au même moment où l’EDSAC était utilisé, les informaticiens commençaient à développer des langages de programmation de « haut niveau », plus intuitifs et plus proches du langage humain. Au fil des ans, de nombreux langages de haut niveau ont été créés, notamment le Fortran d’IBM (1957), le COBOL (1959) et JavaScript (1995). L’important est qu’un langage tombé en désuétude n’est jamais complètement oublié : les applications actuelles peuvent contenir du code écrit dans plusieurs langages, ce qui signifie que des fragments de code anciens, datant de plusieurs décennies, peuvent subsister au cœur des programmes que nous utilisons aujourd’hui.
Fort de cette information, Matthew Sparkes a poursuivi ses recherches et a rapidement trouvé une piste intéressante. Le Guinness World Records affirme que le système mondial de distribution Sabre, créé par American Airlines dans les années 1960, est encore utilisé par de nombreux sites web de réservation de vols. « J’ai réalisé que certaines versions actuelles de logiciels pourraient être plus anciennes qu’Eliza », explique-t-il. Il a contacté Sabre pour en savoir plus, mais n’a reçu aucune réponse. Il a ensuite sollicité American Airlines Group, United Airlines Holdings, Lufthansa et British Airways, ainsi que Delta Airlines, mais ses demandes sont restées sans suite.
Il a élargi son enquête aux entreprises technologiques et aux banques, contactant Apple, Microsoft, HP, Texas Instruments, HSBC Holdings, Lloyds Banking Group, NatWest Group, Barclays, Lloyd’s of London et PayPal. Là encore, il n’a reçu aucune réponse. « Qu’est-ce qui peut expliquer cette réticence à discuter du code ancien ? », se demande le journaliste.
« Ils sont probablement mal à l’aise avec ça », estime Vincent Bodsworth, administrateur de la LEO Computers Society, une association qui œuvre à la préservation de l’histoire de la marque d’ordinateurs britannique LEO. Il suppose que les entreprises pourraient ne pas vouloir attirer l’attention sur la présence de code ancien dans leurs produits, par crainte de ne pas savoir comment il fonctionne ou comment le maintenir en état de marche.
Vincent Bodsworth raconte une anecdote entendue au début de sa carrière concernant une banque londonienne confrontée à un problème lors du passage de la livre sterling à la décimale en 1971. La banque disposait d’un programme informatique qui effectuait des calculs financiers en utilisant la livre sterling pré-décimale. Or, le code source original avait été perdu, ce qui rendait impossible la modification du programme pour qu’il puisse effectuer des calculs dans la nouvelle devise décimale. Au lieu de réécrire le programme à grands frais, la banque a créé un code qui convertissait les montants en livres et pence décimaux en leurs équivalents en livres, shillings et pence pré-décimaux. Ces montants convertis étaient ensuite chargés dans l’ancien programme pour effectuer les calculs financiers, puis un autre code convertissait les résultats de la devise pré-décimale en valeurs décimales. « J’ai entendu des histoires comme celle-ci », raconte Vincent Bodsworth, qui ajoute que ce type de solution de fortune pourrait être resté caché dans les systèmes de modernisation.
La disparition des ingénieurs logiciels à la retraite pose également un problème. Le langage COBOL, très utilisé dans les années 1960 et 1970, est encore présent dans certains logiciels. Bill Hinshaw, cofondateur de COBOL Cowboys, a écrit le premier logiciel pour un distributeur automatique en 1970 en utilisant COBOL. Aujourd’hui, il estime qu’il existe encore 800 milliards de lignes de code COBOL, mais que peu de programmeurs actuels maîtrisent ce langage, et que ceux qui le maîtrisent sont sur le point de prendre leur retraite. Il s’adresse donc, avec son équipe, aux experts du code ancien comme lui. Le plus jeune membre de son équipe a 40 ans, la plupart ayant entre 60 et 70 ans, et Bill Hinshaw lui-même a 82 ans. « Pour l’instant, nous ne voyons pas de problèmes avec COBOL. Peut-être dans dix ans », dit-il.
Bien que le code ne se détériore pas avec le temps, les mises à jour logicielles peuvent entraîner des incompatibilités entre les anciennes et les nouvelles parties du code, comme des pièces de puzzle qui ne s’emboîtent plus. En juillet 2024, une erreur dans une mise à jour du logiciel de l’entreprise de cybersécurité CrowdStrike a perturbé des millions d’ordinateurs dans les aéroports, les hôpitaux et les banques du monde entier. L’erreur a été rapidement identifiée et corrigée, mais si elle avait été liée à une incompatibilité de code ancien, sa résolution aurait pu être beaucoup plus difficile.
Cette inquiétude pourrait expliquer la réticence des entreprises technologiques à discuter du code ancien, et les tentatives occasionnelles de le supprimer des logiciels modernes. L’opération la plus célèbre de ce type a eu lieu il y a environ 25 ans, lorsque de nombreux informaticiens ont craint que les logiciels ne confondent 2000 et 1900, ce qui pourrait entraîner des problèmes informatiques à l’échelle mondiale. Vincent Bodsworth raconte qu’une opération désespérée a alors été lancée pour supprimer et remplacer le code ancien afin d’éviter le problème Y2K.
Malgré ces efforts, certains codes anciens sont encore utilisés dans des logiciels essentiels. Stuart Mackintosh, président de la Perl Foundation, qui supervise le développement du langage de programmation Perl, affirme que la dernière version de Perl, sortie en 2024, contient sans aucun doute des fragments de code de la première version, publiée en 1987. Bien que le nom Perl soit inconnu du grand public, il est utilisé quotidiennement par de nombreux internautes : il prend en charge Amazon Web Services, utilisé par des sites web tels que Booking.com et Apple iCloud. Perl est également utilisé par des organisations importantes telles que la NASA et la CIA aux États-Unis, ainsi que par le MI5 et le MI6 au Royaume-Uni. Lorsque nous utilisons Amazon Web Services, nous utilisons donc un code vieux de près de 40 ans, observe Matthew Sparkes.
Mike McGrath, de Red Hat, une entreprise de logiciels qui distribue la distribution Linux du système d’exploitation open source, affirme que la commande « indent », incluse dans de nombreuses versions de Linux, utilise un code datant de 1976. « Il est incroyable de penser qu’à l’ère de l’intelligence artificielle et de l’informatique en nuage, nous continuons à créer et à utiliser un langage développé il y a près de 50 ans », dit-il.
Selon Stuart Mackintosh, il y a une raison simple à la longévité de ce code ancien : « Il fonctionne tout simplement ». Le risque potentiel d’incompatibilité avec les nouveaux codes est compensé par le fait que de nombreux codes anciens n’ont pas posé de problèmes depuis des décennies. Cela crée un paradoxe : les ingénieurs logiciels s’inquiètent de plus en plus des problèmes que pourrait causer le code ancien, tout en étant de plus en plus convaincus de sa fiabilité et de sa précision.
La preuve en est dans l’industrie aérospatiale. James Eggleston, qui travaille dans le domaine des systèmes informatiques à l’Agence spatiale européenne (ESA), explique que la conception, le développement et le lancement de missions spatiales sont coûteux, il est donc logique d’utiliser un code ancien fiable plutôt que de prendre le risque d’utiliser un code entièrement nouveau qui pourrait poser des problèmes. « Il s’agit de satellites qui coûtent des milliards de dollars, et les personnes qui les contrôlent ne veulent certainement pas faire quoi que ce soit qui ne soit pas absolument garanti de fonctionner », dit-il. « Si vous vous trompez, votre vaisseau spatial sera détruit. Fin de mission. »
Certains des codes les plus anciens encore utilisés pourraient donc ne plus être sur notre planète, mais dans l’espace. Les sondes Voyager, situées à plus de 20 milliards de kilomètres de la Terre, utilisent peut-être encore aujourd’hui le même logiciel qu’en 1977, lors de leur lancement. Un représentant anonyme de l’industrie spatiale a déclaré que la NASA fait parfois appel à des programmeurs plus âgés pour entretenir ou modifier le code écrit pour les anciennes missions, comme le font Bill Hinshaw avec les entreprises d’assurance et les banques.
Cependant, l’industrie spatiale semble réticente à parler de sa dépendance au code ancien. La NASA n’a pas répondu à la demande de Matthew Sparkes de discuter de ce sujet, et même James Eggleston admet que la direction de l’ESA a examiné avec prudence son idée de parler à New Scientist, craignant que cela ne donne l’impression que les missions de l’ESA sont moins dignes de financement en raison de l’utilisation de code ancien.
En conclusion, l’attitude des entreprises et des organisations à l’égard du code ancien est très variable, écrit Matthew Sparkes. Certains ne lui font pas confiance, d’autres lui font confiance, et la plupart ne veulent pas en parler. Quant à savoir quel est le plus ancien code encore en fonctionnement, il n’y a qu’à spéculer, mais Vincent Bodsworth soupçonne qu’il pourrait fonctionner silencieusement sur un ordinateur ancien, effectuant la même tâche année après année. Il pourrait s’agir d’un ordinateur situé dans une agence gouvernementale, effectuant des calculs fiscaux importants de manière fiable et efficace, et dont personne ne voudrait perturber le fonctionnement. Et bien que ce code ancien puisse éventuellement provoquer une panne logicielle, il est impossible de prévoir combien de temps il pourra fonctionner sans problème.
« Nous sommes au tout début du scintillement de la première révolution numérique », dit Stuart Mackintosh. « En regardant l’avenir, dans 500 ans, nous construirons la même infrastructure. » En d’autres termes, l’avenir de certains codes anciens pourrait être étonnamment prometteur, conclut le journaliste de New Scientist, Matthew Sparkes.
À lire aussi
