Les grandes dames de l’informatique – Margaret Hamilton

Daniel Vinet
Daniel Vinet

Dans ce dernier opus des hommages aux grandes dames de l’informatique et suivant le lancement de la mission Artemis II pour un retour vers la Lune, nous conclurons cette série avec Margaret Hamilton, une actrice majeure dans le succès des missions lunaires.

Qui est Margaret Hamilton ?

Margaret Elaine Heafield naît le 17 août 1936 aux États-Unis à Paoli, dans l’Indiana. Après que sa famille ait déménagé dans le Michigan, elle a terminé ses études secondaires au Hancock High School en 1954. Par la suite, elle est admise à l’Université du Michigan où elle étudie les mathématiques. Puis, elle passera à l’Earlham College où sa mère avait étudié.

Ainsi, en 1958, elle obtiendra un baccalauréat en mathématiques avec une mineure en philosophie à l’âge de 22 ans. Elle sera également inspirée par la cheffe du département de mathématiques, Florence Long, qui l’aide à concrétiser son désir de poursuivre l’étude des mathématiques pures (ou fondamentales) et devenir professeur de mathématiques.

En cette même année de 1958, elle épousera James Cox Hamilton, un étudiant en droit à Harvard. À cette époque, le plan initial du couple était que Margaret le soutienne pendant trois ans, le temps qu’il termine ses études, puis qu’il en fasse autant pour elle par la suite. Ils auront une fille, Lauren. Le couple divorcera en 1967.

La carrière de Margaret Hamilton

Comme mentionné, Margaret avait l’intention de poursuivre des études supérieures en mathématiques pures à l’Université Brandeis au Massachusetts. Petite anecdote en passant, cette université devait initialement porter le nom d’Albert Einstein, mais ce dernier a décliné l’offre étant davantage liée à l’Université de Princeton et à son projet de fondation.

Pour en revenir à notre grande dame, au milieu de l’année 1959, suivant le plan établi avec son époux, elle décroche un emploi avec Edward Norton Lorenz au département de météorologie du Massachusetts Institute of Technology (MIT). Elle y fait ses premiers pas d’informaticienne et développe des logiciels pour prévoir la météo sur les ordinateurs LGP-30 et le PDP-1, celui-ci étant le premier ordinateur construit par la compagnie Digital Equipment Corporation (DEC).

Dans ses recherches, Lorenz a utilisé les travaux d’Henri Poincaré pour l’étude des systèmes dynamiques. Sauf que Lorenz avait un avantage sur Poincaré, car il avait un ordinateur. C’est ainsi que les programmes développés par Margaret contribueront aux publications de Lorenz concernant la théorie du chaos.

Projet militaire SAGE

De 1961 à 1963, elle travaillera comme programmeuse sur le projet militaire ultra-secret nommé Semi-Automatic Ground Environment (SAGE) au MIT Lincoln Lab. Ce système d’armement permettait de produire en temps réel une image unifiée de l’espace aérien à l’échelle nationale en vue d’une hypothétique attaque. Le projet utilisait un concept de réseau d’ordinateurs centraux (mainframe), concept assez novateur à l’époque.

Cependant, comme toute personne nouvellement arrivée dans un projet, vous héritez souvent du travail que personne ne veut faire. C’est ainsi qu’elle se voit assigner à un programme délicat que personne avant elle n’avait réussi à faire fonctionner.

De plus, pour ajouter du piquant à la chose, la personne qui avait initialement créé ce programme avait inclus ses commentaires en grec et en latin. Nonobstant cette fantaisie, Margaret a réussi à le faire fonctionner et, question de garder le piquant de la sauce, le programme imprimait ses réponses en latin et en grec !

Pour vous donner une idée de l’ampleur du projet SAGE, celui-ci utilisait 24 prototypes de mainframes nommés AN/DSQ-7 spécialement conçus par IBM, dont 9 d’entre eux pesaient 250 tonnes. Chaque ordinateur utilisait un total de 60 000 tubes à vide. Le complexe effectuait environ 75 000 instructions par seconde. Inutile de vous dire que chaque machine devait dégager une chaleur d’enfer !

L’une des salles du projet SAGE, aujourd’hui transformée en musée

Pour vous donner une petite idée du progrès en la matière, le processeur d’un ordinateur portable tourne généralement à une vitesse entre deux et cinq gigahertz (GHz), soit entre deux et cinq milliards de cycles par seconde. À chaque cycle, un cœur peut effectuer plusieurs micro-opérations. Les processeurs d’aujourd’hui possèdent généralement entre 8 et 16 cœurs et même au-delà pour des ordinateurs à haute performance. Ce qui veut dire que votre ordinateur tourne autour du billion d’opérations par seconde ! Quelles avancées technologiques, tout de même !

La NASA, Apollo et Margaret Hamilton

Forte de ses expériences sur des projets aussi pointus et novateurs, elle est recrutée en 1963 par le laboratoire Charles Stark Draper, toujours pour le MIT. Ce laboratoire a pour mission de créer les logiciels embarqués dans les vaisseaux spatiaux qui prennent en charge la navigation et l’alunissage du programme Apollo.

Margaret est alors chargée de concevoir ses systèmes pour le programme Apollo. Elle devient ainsi la première programmeuse embauchée pour le projet Apollo du MIT.

Elle est tellement passionnée par son travail que, pendant ses longues heures de programmation le soir, la nuit et même les week-ends, elle n’hésite pas à amener sa fille à son bureau. Celle-ci s’amuse parfois avec les simulations créées par sa mère.

Lors d’une de ses parties d’amusement, Lauren a fait planter le simulateur. Margaret réalise que sa fille a sélectionné PO1 (programme d’atterrissage pendant le vol) et s’inquiète des répercussions pour les astronautes lors de réelles missions.

Bien qu’elle rapporte ce problème potentiel à sa direction, elle est rebuffée par celle-ci, qui lui signale que les astronautes sont super entraînés et qu’ils ne commettent pas ce genre d’erreur. Malheureusement, Margaret avait raison. PO1 a été sélectionné en plein vol lors d’Apollo 8, la première mission habitée à orbiter la Lune. Heureusement, il n’y eut aucune conséquence grave.

Insigne d’Apollo 8

Plus tard, Margaret Hamilton deviendra la directrice de la division d’ingénierie logicielle, qui développe exclusivement des programmes pour la National Aeronautics and Space Administration, mieux connue sous le nom de NASA. En plus du programme Apollo, elle développera également des logiciels pour la station spatiale orbitale Skylab.

Petite blague sur l’acronyme NASA, les Anglais déforment souvent l’acronyme en « Never A Straight Answer » (jamais une réponse directe) pour définir cette agence aux réponses souvent floues.

Le cas d’Apollo 11

En 1969, lors de la mission Apollo 11, trois minutes avant que le module lunaire Apollo n’atteigne la surface de la Lune, des alarmes informatiques se déclenchent à répétition. Celles-ci signalent que l’ordinateur Apollo Guidance Computer (AGC) est saturé.

Comme si ce n’était pas assez, les ordinateurs de navigation et celui de pilotage transmettent des ordres contradictoires. C’est ici que se révèle tout le génie informatique derrière l’AGC. L’architecture du système d’exploitation (OS) est conçue de façon à attribuer des priorités aux programmes. Étant donné la situation, l’ordinateur conclut à la plus haute priorité du moment, alunir.

D’un autre côté, les logiciels de Margaret sont conçus pour fonctionner de manière asynchrone, donnant ainsi priorité aux tâches essentielles. La programmation asynchrone permet au code en exécution de continuer de fonctionner pendant que certaines tâches prennent plus de temps pour se terminer.

La somme des deux, l’OS et le code de Margaret permettront à l’AGC de mener sa mission principale, soit de poser le module lunaire. Ouf, on l’a échappé belle !

L’ordinateur AGC à bord du module de commande

Après deux enquêtes, l’une après la mission et l’autre en 2005, cette dernière conclut qu’il s’agissait d’une erreur de conception matérielle du radar qui continuait à envoyer des informations à l’ordinateur, alors qu’il avait été mis hors service.

Il faut savoir qu’à cette époque, la puissance des ordinateurs n’était pas encore au rendez-vous. Il fallait donc éteindre certaines fonctions pour en prioriser d’autres et ainsi éviter la saturation des ordinateurs.

Grâce au système d’exploitation de l’AGC développé par J. Halcombe Laning et la qualité du code asynchrone développé par Margaret Hamilton et son équipe, ceux-ci auront permis d’éviter la catastrophe.

Margaret Hamilton au côté des listes imprimées du code du logiciel de navigation qu’elle et son équipe ont produit pour le programme Apollo

Petite anecdote au sujet de M. Halcombe Laning, celui-ci avait inventé un compilateur d’opérations algébriques conçu comme une alternative à l’Assembleur, qu’il avait surnommé George, afin de faciliter la saisie d’équations mathématiques. En fait, le nom réel de cet outil est Laning and Zierler system.

Il a développé cet outil sur l’ordinateur Whirlwind I du MIT, fabriqué par la firme IBM. C’est cet ordinateur qui a servi de base à la fabrication des superordinateurs AN/DSQ-7, spécialement conçus pour le projet SAGE, que nous avons vu précédemment. Par ailleurs, les concepts introduits dans George seront incorporés au langage Fortran lors de sa création en 1957.

Héritage et carrière post-MIT

Margaret Hamilton créera deux entreprises. De 1976 à 1984, elle sera cofondatrice de Higher Order Software (HOS), une entreprise logicielle spécialisée dans le développement de techniques de détection d’erreurs.

En 1986, elle crée la société Hamilton Technologies qui met au point le langage de programmation Universal System Language (USL). Il s’agit d’un langage de modélisation de systèmes et une méthode formelle pour la spécification et la conception de systèmes complexes.

De plus, il est reconnu que Margaret Hamilton a donné son nom à la discipline qu’elle pratiquait, le « génie logiciel » (software engineering). De son propre aveu, lorsqu’elle l’a proposé, c’est devenu une blague pour se moquer des idées radicales qu’elle pouvait avoir, parfois. Cependant, l’expression a été prise au sérieux lorsque l’un des gourous les plus respectés de l’équipe d’ingénierie matérielle fut d’accord avec son idée qu’il fallait considérer la partie logicielle comme une discipline d’ingénierie au même titre que la partie matérielle.

Distinctions et hommages

Dans le monde scientifique des années 1960, alors essentiellement masculin, Margaret Hamilton constitue une exception dans ce milieu. Elle est longtemps restée dans l’ombre. Il a fallu 47 ans au gouvernement américain pour la récompenser de ses services. Néanmoins, les honneurs sont nombreux pour elle. En voici quelques-uns :

  • En 2017, LEGO publie un ensemble « Les femmes de la NASA » dans lequel il y a une figurine de Margaret et la liste imprimée de son code aussi haut qu’elle.
Margaret Hamilton et son « listing » en LEGO
  • La même année, elle reçoit le Computer Museum Fellow Award, qui honore les personnes dont les idées informatiques ont changé le monde.
  • En 2019, Google rend hommage à Margaret pour les 50 ans de l’alunissage d’Apollo 11 en positionnant les miroirs de la centrale solaire Ivanpah de manière à refléter la lumière de la Lune afin de créer une image de Margaret Hamilton et d’Apollo 11.
  • En 2022, elle est intronisée au National Aviation Hall of Fame.

En développant plusieurs innovations dans les concepts de logiciels asynchrones, de la programmation des priorités et des tests de bout en bout, d’abord pour le compte de l’armée américaine, puis pour la NASA, Margaret Hamilton a non seulement posé les bases majeures du développement des logiciels modernes, mais elle est également à l’origine du nom de sa discipline, le génie logiciel.

Voilà qui conclut ma série sur les grandes dames de l’informatique. J’espère que vous aurez eu autant de plaisir à lire cette série que j’ai eu à la composer.

Informatiquement vôtre,

Daniel Vinet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.