Speaker #1Bienvenue dans Ligne de code, le podcast qui explore les coulisses du développement et de l'innovation tech. Une ligne de code à la fois, jamais plus de 5 minutes. Imaginez, nous sommes le 4 juin 1996 en Guyane française, le ciel est dégagé, le compte à rebours s'affiche sur les écrans et une foule d'ingénieurs retient son souffle. Aujourd'hui, c'est le grand jour, celui du vol inaugural d'Ariane 5, le fleuron de la conquête spatiale européenne, fruit de plus d'une décennie de travail, des milliards d'euros d'investis et surtout de l'espoir d'un leadership européen dans l'industrie du lancement spatial. La fusée décolle, majestueuse, tout semble aller parfaitement pendant exactement 37 secondes. Et puis, soudain, à un peu plus de 3700 mètres d'altitude, Ariane 5 dévie de sa trajectoire, elle commence à vaciller, à tourner sur elle-même avant de se désintégrer dans les airs, dans un spectacle aussi rapide que coûteux, plus de 370 millions de dollars partis en fumée. Alors que s'est-il passé ? Un défaut de fabrication ? Une erreur humaine ? Un sabotage ? Rien de tout cela. ce qui est causer la perte de cette fusée, c'est un bug logiciel et pas n'importe quel bug, l'un des plus célèbres et les mieux documentés de toute l'histoire de l'informatique. Pour comprendre cette catastrophe, il faut plonger dans le cerveau d'Ariane 5. Au cœur de la fusée, un petit ordinateur indique où elle est, à quelle vitesse elle va et dans quelle direction elle penche. Sans lui, impossible de voler droit. Dans cet ordinateur, une ligne de code calcule le biais horizontal, la vitesse latérale de la fusée. Cette variable venait d'Ariane 4. Problème ? Ariane 5 n'en avait plus besoin, mais personne ne l'a retiré. On avait réutilisé le logiciel d'Ariane 4 tel quel. Et voici ce qui s'est passé. Au décollage, Ariane 5 accélère beaucoup plus vite qu'Ariane 4. La valeur du biais horizontal explose. Elle dépasse ce que l'ordinateur peut gérer. Imaginez verser un litre d'eau dans un petit verre. Ça déborde. C'est exactement ça, un dépassement de capacité. Le système a essayé de ranger un nombre gigantesque. dans une case trop petite, sans filet de sécurité, tout a planté. L'ordinateur principal s'est effondré, le système de secours devait prendre le relais, mais il utilisait le même logiciel défaillant. Il crache, instantanément. En quelques millisecondes, la fusée devient aveugle. On pourrait croire que ce bug tient à une simple ligne de code. C'est vrai, d'un certain point de vue. Mais ça serait trop simpliste, car ce qui s'est produit, c'est le résultat d'une accumulation d'erreurs de conception. Premièrement, la conversion n'était pas protégée, aucune gestion d'erreur n'avait été prévue pour ce cas extrême. Deuxièmement, le code hérité d'Ariane 4 n'avait pas été correctement désactivé malgré le changement radical de profil de vol entre les deux fusées. Et troisièmement, pour limiter la charge de calcul à 80% de l'ordinateur de bord, seules 4 variables critiques sur 7 avaient été protégées contre le dépassement. Et le fameux biais horizontal n'en faisait pas partie. En d'autres termes, un code inutiles, mal isolées, exécutées dans un contexte inadapté, sans filet de sécurité, et cela suffit pour faire exploser la fusée. Comme quoi, en programmation, le passé peut littéralement vous exploser à la figure. Ce jour-là, l'industrie spatiale a appris une leçon brutale. Depuis, trois règles d'or sont gravées dans le marbre. Testé à nouveau, même ce qui a déjà marché, un logiciel fiable sur Ariane 4 ne l'est pas forcément sur Ariane 5. Prévoir que tout peut planter, chaque calcul, chaque conversion doit avoir son filet de sécurité. Copier-coller du code, c'est jouer à la roulette russe. Ce qui fonctionne dans un contexte peut exploser dans un autre. Aujourd'hui, cette catastrophe est enseignée dans toutes les écoles d'ingénieurs. Elle est citée dans les conférences tech étudiées par les développeurs du monde entier. Ariane 5 vole 501, 370 millions de dollars perdus en 37 secondes à cause d'une ligne de code oubliée. C'est devenu le symbole ultime de ce qu'il ne faut jamais faire en programmation. Et si vous vous demandez si une seule ligne de code peut vraiment tout faire planter, la réponse est oui, mais seulement si cette ligne est laissée là par habitude. Ariane 5 a de nouveau décollé en 1997, mais ce vol n'a été qu'un succès partiel. Il faudra attendre 1998 pour le premier succès complet. Reste que l'histoire de son tout premier vol demeure un rappel brutal, en informatique comme en aéronautique, chaque ligne de code compte. Merci d'avoir écouté les lignes de code. on se retrouve pour une nouvelle histoire où une ligne change tout.