Ada
Imaginez un instant le cauchemar administratif que représentaient les projets informatiques du Pentagone au milieu des années 1970. Plus de 400 langages et dialectes de programmation pullulaient dans les systèmes du département de la Défense américain, générant chaque année trois milliards de dollars de coûts de maintenance. Cette situation ubuesque trouvait souvent son origine dans l’initiative malheureuse d’un programmeur qui, persuadé d’améliorer la productivité, bricolait un langage existant pour son application particulière. Vingt années plus tard, des générations entières de développeurs devaient encore apprendre ce dialecte pour maintenir ce programme devenu legacy.
David Fisher dirigeait alors l’initiative lancée par le DoD pour sortir de cette impasse. L’idée n’était pas neuve : dans les années 1960, le département avait déjà imposé COBOL dans ses contrats de défense. Mais cette fois, l’approche serait différente. Pour la première fois dans l’histoire des langages de programmation, les exigences seraient définies par une équipe complètement distincte de celle qui concevrait le langage.
Le processus de consultation mobilisa des experts militaires, industriels et universitaires du monde entier. Entre 1975 et 1977, plusieurs documents d’exigences virent le jour avec des noms de code évocateurs : Strawman, Woodenman, Tinman et finalement Ironman. Ces spécifications plaçaient la fiabilité, la lisibilité et la maintenabilité au cœur des préoccupations, bien au-delà des objectifs classiques de portabilité et d’efficacité.
Vingt équipes répondirent à l’appel d’offres lancé en 1977. Quatre furent sélectionnées et baptisées par des couleurs : Vert, Rouge, Bleu et Jaune. Après six mois de travail acharné, seules les équipes Verte et Rouge restaient en lice. En mai 1979, la proposition de l’équipe Verte l’emportait. Son leader, Jean Ichbiah de CII Honeywell Bull, avait un atout dans sa manche : son expérience avec LIS, le « Langage d’Implémentation de Systèmes » développé depuis 1972 dans son entreprise.
LIS avait été conçu pour améliorer la fiabilité des systèmes d’exploitation et leur maintenabilité. Cette philosophie collait parfaitement aux exigences du DoD. Ichbiah et son équipe puisèrent dans cette expérience pour façonner leur proposition.
La phase suivante, baptisée « Test and Evaluation », transforma le projet en véritable laboratoire mondial. Une centaine d’équipes réparties sur tous les continents testèrent le langage en recodant des applications existantes. Leurs retours alimentèrent les raffinements successifs qui aboutirent, en 1980, à une proposition de standard.
Le processus de standardisation prit une dimension pharaonique. Plus de mille personnes à travers le monde participèrent à cette entreprise. L’équipe d’Ichbiah dut traiter environ 7 000 commentaires sur le standard proposé, s’appuyant sur une base de données informatisée pour gérer ce déluge de retours. Une prouesse technique.
En février 1983, la standardisation ANSI d’Ada était finalisée. Le langage se distinguait par des innovations remarquables. Sa structure en paquetages permettait une séparation nette entre l’interface utilisateur et l’implémentation. Le concept de lecture linéaire métamorphosait la compréhension du code : un programmeur pouvait lire un programme Ada ligne par ligne, sa compréhension à une ligne donnée ne dépendant que des lignes précédentes.
Robert Dewar développa le premier compilateur Ada à l’Université de New York, en fait un interpréteur destiné à l’enseignement. Le deuxième compilateur, créé par Rolm et Data General pour le mini-ordinateur Eclipse, fut validé en juin 1983. Western Digital proposa le troisième avec leur MicroEngine, marquant l’entrée d’Ada dans l’univers des micro-ordinateurs.
En janvier 1984, le DoD frappait un grand coup : une directive imposait l’utilisation d’Ada pour toutes les applications critiques. Cette décision intervenait après la validation du compilateur Data General, qui prouvait la viabilité pratique du langage. Mais Ada ne resta pas prisonnier des applications militaires. Le secteur civil l’adopta, notamment dans l’aviation civile, le ferroviaire et les systèmes embarqués temps réel où la fiabilité prime sur tout.
Le langage évolua au fil des décennies. Ada 95 introduisit la programmation orientée objet. Ada 2005 et Ada 2012 apportèrent des améliorations substantielles dans la programmation par contrats. Aujourd’hui, Ada équipe des applications critiques où la moindre défaillance a des conséquences potentiellement dramatiques.
La conception d’Ada a introduit des pratiques qui font désormais école : séparation rigoureuse entre spécification et implémentation, validation formelle des compilateurs, processus de standardisation méticuleux. Ces innovations ont influencé la conception d’autres langages et transformé les méthodes de développement logiciel.
Jean Ichbiah avait une vision claire : « Le développement d’un grand programme peut prendre moins de deux ans, mais sa maintenance s’étendra sur plus de vingt ans. » Cette philosophie imprègne chaque aspect du langage. Ada privilégie la clarté et la compréhension du code plutôt que la facilité d’écriture. Une approche a priori contre-intuitive mais qui s’avère payante sur le long terme.
Le nom du langage rend hommage à Augusta Ada Lovelace, considérée comme la première programmeuse de l’histoire. Ce choix n’était pas anodin : il traduisait l’ambition du projet de marquer l’histoire de l’informatique. Quarante ans plus tard, Ada est considéré comme un modèle de conception rigoureuse et méthodique. Il démontre qu’investir dans la qualité du code génère des économies substantielles sur l’ensemble du cycle de vie d’un logiciel. Une leçon que bien des projets informatiques auraient intérêt à méditer.