Le gang des calculettes

Les calculatrices ne furent pas tout le temps des machines. Pendant la deuxième guerre mondiale, les mathématiciens anglais ou américains aidaient leur pays en guerre en allant décoder à la main les chiffres allemands ou calculer les tables balistiques qui permettaient aux artilleurs de toucher leur cible.

Dans l’armée américaine, on appelait ces bataillons de l’ombre des computers. Comme les hommes étaient au feu, ils étaient constitués de femmes. Parmi les 80 mathématiciennes qui résolvaient à la main les équations différentielles de balistique pour l’armée, six furent sélectionnées pour programmer le premier calculateur électronique : l’ENIAC. Elles s’appelaient Kathleen McNulty Mauchly Antonelli, Jean Jennings Bartik, Frances Snyder Holberton, Marlyn Wescoff Meltzer, Frances Bilas Spence et Ruth Lichterman Teitelbaum.

Le terme pionnier est assez faible pour qualifier leur travail. L’ENIAC n’avait ni manuel, ni documentation. Elles n’avaient que les schémas logiques et quelques techniciens pour répondre à leurs questions. Elles ont développé les premiers langages de programmation, les premiers équipements de contrôle, les premiers manuels de programmation. Certaines de ces femmes ne sont plus parmi nous mais cet article témoigne, sans doute tardivement, de la reconnaissance de leurs pairs.

They had none of the programming tools of today. Instead, the programmers had to physically program the ballistics program by using the 3000 switches and dozens of cables and digit trays to physically route the data and program pulses through the machine. Therefore, the description for the first programming job might have read: “Requires physical effort, mental creativity, innovative spirit, and a high degree of patience.”

De quoi relativiser les débats sur les langages de programmation…

[EDIT] Si ce genre de personnages vous intéresse, j’en ai une petite de série de portraits de femmes en informatique.

Publicités

Barbie docteur en informatique

Pour la journée internationale des droits de la femme, et en attendant le Ada Lovelace Day, je continue ma série de portraits de femmes en informatique. Aujourd’hui, je quitte les personnages historiques pour parler d’une contemporaine : Barbara Liskov. Avec le Professeur Liskov, nous quittons le domaine des pionniers (et des pionnières) pour celui de l’industrie informatique moderne ; on passe d’un machin hybride entre l’électronique et les mathématiques à une véritable discipline d’ingénierie. Enfin, qui essaye de l’être…

Barbara_Liskov.PNG.png

Barbara Liskov est arrivée en informatique un peu par hasard. Après son baccalauréat de mathématique à Berkeley en 1961, elle hésite à démarrer des études doctorales. Elle cherche un boulot mais ne trouve que des métiers ennuyeux. C’est comme programmeur qu’elle finit par trouver un métier qui l’intéresse. Elle reprend ses études à l’université de Stanford et en 1968, elle est la première femme à recevoir un doctorat d’informatique aux États-Unis. Son sujet de thèse concerne l’intelligence artificielle pour les échecs et les jeux.

Ses contributions scientifiques sont nombreuses mais on peut les résumer sans trop d’injustice en trois points :

  1. L’abstraction de données. Elle a été une pionnière dans ce domaine. Elle a démontré qu’en adoptant une méthode rigoureuse de développement et en utilisant des formalismes adaptés, on pouvait construire des logiciels à la fois plus complexes et plus sûrs.
  2. Le principe de substitution. Le principe de Liskov est une extension de la notion de type de données (point 1) aux langages orientés objet. Dans un langage orienté objet, on encapsule à la fois des données mais également des comportements. Barbara Liskov a donc développé une méthode de développement basée sur le contrat entre les objets, qui permet de préserver les propriétés des données et d’éviter des comportement inadaptés.
  3. Les systèmes distribués. Elle a développé le premier langage qui permet la programmation distribuée (sur plusieurs machines). Elle dirige le département de méthodologie de la programmation au MIT où elle travaille principalement sur la résistance aux pannes byzantines dans les systèmes distribués.

Pour tout ça (et bien d’autres choses encore), elle a reçu la médaille John von Neumann et le Prix Turing en 2008, pour son travail tant fondamental que pratique pour le progrès de la discipline informatique. Si le prix Turing ne vous dit rien, remplacez le par « Nobel d’informatique ». Si Barbie est ingénieur en informatique, c’est un peu grâce à Barbara.

Sources :
[1] Barbara Liskov, wikipedia.
[2] Barbara Liskov, profile from the National Academy of Engineering
[3] Q&A: Turing Award winner Barbara Liskov, CNET
[4] Barbara Liskov Wins Turing Award, Dr. Dobb’s

The Amazing Grace Hopper

Je continue la série sur les femmes en informatique. Après Ada Lovelace, voici une autre héroïne : Grace Murray Hopper.

Une femme au service de son pays

Grace Murray est née en 1906. Étudiante brillante, elle est diplômée en mathématique et en physique par l’université de Yale en 1930, et elle épouse Vincent Hopper. Elle défend sa thèse de doctorat dans la même université en 1934. Elle enseigne alors les mathématiques à l’université Vassar, un college d’élite réservé aux femmes. En 1941, elle y devient associate professor.

Sa carrière semble toute tracée mais un événement mineur vient troubler cette routine : la deuxième guerre mondiale. En 1943, peut-être lassée d’enseigner aux jeunes filles de l’élite new-yorkaise, elle intègre la division féminine de la réserve de la marine américaine. Après ses classes, elle est affectée au projet de calculateur de l’université de Harvard. Elle travaille sur la programmation du premier calculateur automatique – le Mark I – conçu par IBM à Harvard.

Grace Hopper

Grace Hopper, UNIVAC, Computer History Museum

À la fin de la guerre, elle tente de poursuivre sa carrière militaire dans la marine mais elle est refusée à cause de son âge. Elle refuse un poste permanent de professeur à Vassar et préfère rester dans la réserve pour continuer à faire de la recherche dans le laboratoire d’informatique de Harvard. Cependant, en 1949, elle décide de rejoindre le secteur privé et va travailler pour l’entreprise fondée en 1947 par Eckert et Mauchly (les créateurs de l’ENIAC, le premier véritable ordinateur électronique). Durant les années 1950, Grace Hopper travaille sur UNIVAC, le premier ordinateur commercial disponible aux États-Unis. Elle conçoit le premier compilateur (appelé A-0). Elle concevra ensuite plusieurs compilateurs commerciaux, dont celui pour le langage FLOW-MATIC (aussi appelé B-0). Ce langage aura une très grande influence sur l’un des premiers langages de programmation modernes.

En 1959, devant l’augmentation des puissances de calcul et la demande croissante des entreprises et de l’administration américaine, il devient urgent de définir un langage de programmation standardisé. Ce langage devra être business oriented, c’est-à-dire satisfaire les besoins en gestion et calcul d’une entreprise ou d’une administration moderne. Le travail de Grace Hopper aura une énorme influence sur le résultat, appelé COBOL. Très populaire dans les années 1960 à 1980, ce langage est toujours employé de nos jours.

Dans les années 1960, à la tête du groupe des langages de programmation au sein du bureau des systèmes d’information de la marine, Grace Hopper développe des tests de standardisation pour le langage COBOL et son compilateur. Son travail forcera les différents fabricants d’ordinateur à standardiser leur langage.

Elle participe encore à de nombreux projets civils et militaires. Elle est rappelée par la Marine américaine en 1966, retourne encore au service actif en 1972 et est élevée au grade de capitaine en 1973. En 1983, son grade de commodore est renommé en vice-amiral (une étoile). Elle reçoit la Defense Distinguished Service Medal en 1986. Au moment de son départ définitif de la marine, elle en était le plus vieil officier supérieur. Elle travaille encore pour l’entreprise DEC jusqu’à sa mort en 1992. Elle est enterrée au cimetière national d’Arlington en Virginie, avec les honneurs militaires.

Une pionnière de l’industrie informatique

Pendant longtemps, la programmation consistait à dire à l’ordinateur ce qu’il devait faire. Il s’agissait de donner une suite d’instructions très simples qui indiquait pas à pas l’opération à effectuer. À l’époque, tout comme Ada Lovelace, on devait donc de manière fastidieuse écrire une longue liste d’instructions. Ce niveau de détail avait beaucoup d’inconvénients.

Avec les premiers ordinateurs généralistes, une propriété intéressante est apparue. Ces ordinateurs sont ce qu’on appelle des machines de Turing (je simplifie un peu cette propriété). Elles sont théoriquement capables de simuler n’importe quel autre algorithme. Cela signifie qu’on peut écrire un programme qui simule l’exécution d’une autre machine (qui elle même exécute un programme). On peut aussi écrire un programme qui écrit un autre programme. C’est ce qu’on appelle un compilateur.

Plutôt que d’écrire une liste d’instructions simples, on peut définir une seule instruction complexe (par exemple, parcourir les éléments d’un tableau ou afficher un bouton dans une fenêtre) pour réaliser une tâche qui a un sens pour le programmeur. Comme l’ordinateur ne comprend rien à ces instructions, le compilateur est chargé de les traduire en une liste d’instructions pour la machine. C’est grâce à cela qu’ont été conçus les premiers langages de programmation.

Avant l’apparition des premiers compilateurs, la programmation dépendait du matériel. À chaque génération, à chaque nouveau calculateur, on changeait de langage et il fallait tout recommencer. Les compilateurs ont permis d’écrire pour plusieurs machines, de transformer et d’adapter les programmes au fur et à mesure des besoins. C’est à cette innovation d’une grande importance pour l’industrie informatique naissante que Grace Hopper a largement contribué. Le fait que de nombreux programmes en COBOL sont toujours en service aujourd’hui prouve l’importance de son travail.

Pour terminer, voici une interview amusante de Grace Hopper par Dave Letterman en 1986.

— How did you know so much about computers then?

— I didn’t. It was the first one.

Cette femme était vraiment formidable.

Ada Lovelace, le premier programmeur

Je commence cette série des grandes figures de l’histoire informatique par le premier véritable programmeur. Ada Lovelace est une mathématicienne. Sa formation lui a permis de penser d’abord en termes abstraits, avant de s’intéresser à la machinerie. Ce faisant, elle fut une des premières à réaliser qu’une machine était programmable et qu’on pouvait modifier son comportement en cours d’exécution. Cette percée conceptuelle fait d’Ada Lovelace une des grandes visionnaires de l’informatique, alors que le premier véritable ordinateur n’était pas encore construit.

Ada Byron nait le 10 décembre 1815. Son père est le grand poète anglais George Byron. Il est aussi un coureur de jupons invétéré. Sa mère Anne Milbanke décide très vite de mettre fin à ce mariage malheureux. Elle prend avec elle Ada, qui ne reverra jamais plus son père. Elle entretiendra une haine tenace envers cet homme volage et fantasque, qui aurait préféré avoir un garçon. Cette inimitié aura aussi des conséquences importantes sur l’éducation d’Ada. En effet, désirant que sa fille n’exhibe point le comportement désordonné de son père, elle la soumet à une éducation scientifique rigoureuse avec des précepteurs privés. Certains d’entre-eux, comme Auguste De Morgan (mathématicien et père de la logique moderne), auront également un grand impact sur la future discipline informatique.

Devenue une belle jeune femme, de noble extraction, Ada fréquente la cour et les sommités anglaises de l’époque. En 1835, elle épouse le baron William King, qui deviendra comte de Lovelace en 1838. Ada King née Byron, comtesse de Lovelace, et son époux auront trois enfants. C’est également dans ces jeunes années qu’elle est présentée au scientifique Charles Babbage, déjà fort connu à l’époque. Ce dernier est impressionné par les connaissances et les capacités intellectuelles remarquables d’Ada.

Pascal et Leibniz, deux des plus brillants esprits de leur époque, avaient conçu un siècle plus tôt des machines à calculer mécaniques capables d’effectuer les quatre opérations arithmétiques de base. Babbage avait l’ambition de construire une machine à calcul bien plus complexe, capable de manipuler des polynômes, appelée « machine à différence ». Malheureusement, malgré un budget important, les difficultés techniques ne permirent pas de la construire complètement. Ni la version suivante, d’ailleurs. Loin de se laisser abattre, il se lance dans la conception et la réalisation d’une machine encore bien plus ambitieuse : la machine analytique.

Ada a commencé à s’intéresser à la machine analytique au milieu des années 1830. Cette machine est un des premiers ordinateurs, programmable par des cartes perforées et doté d’une mémoire interne. Elle avait toutes les caractéristiques des ordinateurs modernes, mais elle était entièrement mécanique. Sa complexité était telle qu’elle ne fut jamais terminée par Babbage. Cela n’empêchera pas Ada d’écrire l’un des premiers programmes pour cette machine, c’est-à-dire le premier programme, tout simplement. Ada comprit très tôt les possibilités extraordinaires d’une machine programmable, suggérant dans un de ses manuscrits des utilisations scientifiques ou musicales. Elle influencera de manière importante le travail de Babbage, sans doute bien plus qu’il n’osa lui-même l’avouer.

Malheureusement, Ada Lovelace s’éteint à l’âge de 36 ans, atteinte d’un cancer. Elle fut enterrée près du père qu’elle n’a jamais connu. De celle qu’il appelait Enchanteresse des Nombres, Babbage écrira :

“Forget this world and all its troubles and if possible its multitudinous Charlatans — every thing in short but the Enchantress of Numbers.”

Un langage de programmation, de nombreux prix, événements et lieux portent son nom.

P.-S. À la demande de Charline, mon historienne préférée, je mets quelques références, en plus des liens dans l’article. Ah… les femmes. 😉

Les femmes en informatique, une série de portraits

On entend souvent que l’informatique est une discipline masculine, voire carrément machiste. C’est en partie vrai dans l’industrie, un peu moins peut-être dans la recherche. Le cliché du mâle informaticien est tenace. L’équilibre est en tout cas loin d’être atteint.

Mais il ne faut pas croire qu’il n’y a aucune femme dans l’histoire de la discipline. Il y a au contraire de nombreuses pionnières. Je vais tenter de dresser un portrait de certaines d’entre elles dans les jours qui suivent. Je tenterai d’expliquer dès demain pourquoi le premier programmeur est apparu avant le premier ordinateur et pourquoi c’était une femme (dans les deux cas).

Billets disponibles :

  1. Ada Lovelace, le premier programmeur
  2. The Amazing Grace Hopper
  3. Barbie docteur en informatique
  4. Le gang des calculettes