Lexique / insect

2008.04.09

Le mythe de la mite. Le terme de « bug », c’est-à-dire la « petite bestiole » qui encrasse la machine et l’empêche de fonctionner normalement, ne naît pas avec l’informatique, mais on peut affirmer à l’inverse que cette dernière est née incontestablement — dans une scène historique très précise — avec lui. Si le mot « bug » est entrée dans le vocabulaire populaire, c’est justement parce que l’informatique s’est popularisée — le « personal computer », qui arrive autant infesté de bestioles que toutes les machines qui l’ont précédé.

La première à mythologiser le rapport entre l’informatique et ses défaillances, c’est Grace Murray Hopper, programmeuse du premier ordinateur digne de ce nom — le Mark I, qui voit le jour vers la fin de la guerre en 1944 à l’Université de Harvard. C’est un détail inconnu pour beaucoup, mais parmi les premières algoristes historiques, trouvent deux femmes — Grace Murray Hopper et Augusta Ada Byron, comtesse de Lovelace, fille du célèbre poète, qui travaillait quelques cent ans avant Hopper sur la « Machine analytique » en assistant Charles Babbage sur la traduction de thèses mathématiques et sur la correction d’algorithmes pour sa machine qui restera pendant 150 ans inachevée. Pour sa part, Grace Murray Hopper travaillera sur la création de « compilateurs », c’est-à-dire les mécanismes de traduction des instructions lisibles par les êtres humains et qui doivent être traduites ensuite en un langage plus étrange — compréhensible presque exclusivement par la machine. Car écrire directement en langage machine — en 0 et en 1 —, est une exercice rarement supportable pour le commun des mortels, et même fatiguant pour les quelques exceptions comme Hopper qui maîtrisaient l’architecture de la machine avec sa logique particulière. Faciliter l’écriture des programmes permettraient à un plus grand nombre d’accéder aux capacités de l’ordinateur, et aiderait à écrire des programmes capables d’effectuer des actions de plus en plus complexes.

Mais avant de parler de la complexité, racontons l’anecdote que Grace Hopper aimait tant raconter, c’est-à-dire le jour du premier « bug » informatique. Les premières machines informatiques étaient de véritables monstres qui pouvaient occuper plusieurs salles entières. Elles étaient aussi grandes à cause des différents actionneurs mécaniques qui contrôlaient et executaient les instructions. Ces actionneurs occupaient non seulement de la place mais produisait énormément de chaleur et de bruit. Le 9 septembre 1947 — notre journée mythique — un véritable insecte, une petite mite, s’est glissée dans la salle du Mark I et croyant apercevoir le chemin menant à la lumière du soleil s’est incrustée dans les contactes de l’appareil, provoquant une panne général accompagné de la mort de l’insecte. Au départ, les ingénieurs pensaient qu’il s’agissaient d’une simple erreur humaine, c’est-à-dire d’un phénomène déjà décrit par Ada Lovelace quelques 100 ans auparavant où une erreur d’ordre ou de logique placée au début du programme empêcheraient la partie suivante de fonctionner. Mais après relecture des instructions on ne trouvait nulle erreur, ce qui les amenait à la deuxième phase d’investigation, la vérification de chacun des relais qui très souvent tombaient en panne à cause de l’effort physique de la machine. On l’oublie souvent, mais une machine informatique — bien qu’elle s’opère par grandes abstractions logiques dans son organisation diagrammatique — est toujours actionnée par un jeux de verrins physiques quelconques et en 1947 les défaillances étaient la plupart du temps dû au mauvais fonctionnements physiques des composants. C’est alors pendant la vérification un par un des relais de la machine, que l’équipe de Hopper découvre la mite coincée entre deux contacts en cuivre. Dans un geste dont le résultat est encore exposé aujourd’hui dans la partie du musée national américain dédié aux sciences — le Smithsonian — ces ingénieurs ont extrait la bestiole et l’ont scotché dans leur journal de bord accompagné par la légende, “1545 : Relais #70 Panel F (mite) dans le relais. Premier cas de découverte d’une véritable bogue.”

Nous ne pouvons pas insister assez sur la force mythique de cette anecdote. Même la langue française porte les traces de cette histoire : alors que le terme anglais « bug » est un héritage du français « parasite » — encore employé aujourd’hui en décrivant, par exemple, le bruit qui parasite un signal électrique —, ce terme a été réimporté en français sous la forme « bogue » pour décrire cette défaillance spécifique de la panne de fonctionnement algorithmique de la machine informatique. Il ne s’agit pas d’un simple gêne, ou perte relative du signal; il s’agit d’une panne de la machine dans tout son fonctionnement, ou dans le fonctionnement d’un aspect de la machine comme dans un logiciel qui « plante ». On est proche de l’idée d’un « arrêt » du mouvement de la machine, d’une dislocation ou de son déraillement, plutôt qu’un simple ralentissement ou affectation qualitative. Le scotch employé ce jour de septembre 1947 semble avoir scellé à jamais l’idée qu’une panne algorithmique est liée non pas à la faute de raisonnement dans l’écriture d’un programme — la véritable raison de la plupart de nos pannes —, mais plutôt à une violence introduite dans l’appareil depuis sa strate physique.

La force de tout mythe est de condenser un certain nombre de contradictions internes d’un phénomène quelconque à travers une figure qui raconte de façon synthétique l’histoire de sa conception. Le mythe est une histoire de naissance. Dans mon vocabulaire à moi, j’appelle ce moment « le talon d’Achille », faisant référence au mythe-matrice du trempage d’Achille dans la rivière Styx et de la trace des doigts de sa mère lorsqu’elle enrobait son fils par son nouveau pouvoir technologique. Le talon d’Achille associe à jamais la force constructive d’une technologie à sa déconstruction; autrement dit, le mode d’emploi qui explique comment monter la machine décrit également dans le même mouvement comment la démanteler.

J’y vois dans ce mythe de la mite, deux contradictions propres à l’informatique qui sont toutes les deux liées à la même racine ontologique, et que je définirai comme le problème d’attitude de la machine face à sa physicalité.

La première contradiction d’une machine algorithmique concerne la tension entre la couche matérielle ou concrète de l’informatique, et sa couche abstraite ou algorithmique. Quand nous décrivons un programme à une machine, nous décrivons un certain « comportement » (cf. geste, c’est-à-dire nous lui donnons son « orientation » (cf. purpose. Nous ne nous soucions pas forcément de tous les détails de son fonctionnement, et c’est Grace Murray Hopper qui a eu en premier assez de lucidité pour voir la force que l’abstraction pouvait apporter dans le maniement de l’appareil : à travers ses activités de recherche et de développement (menant à terme au langage COBOL), elle a montré que pour programmer une machine il faudrait mieux s’abstraire de son opération purement mécanique — la machine vu à partir de ses circuits —, et à la place lui communiquer plutôt par des grandes lignes. Malheureusement, c’est précisément dans cette abstraction des couches matérielles que les erreurs algorithmiques peuvent s’introduire, notamment dans l’approximation qu’elles font de la manière dont la machine exécutera ses tâches. Parfois les erreurs du programme peuvent venir d’un mauvais ordonnancement purement logique, par exemple le cas déjà décrit par Ada Lovelace en 1842 où le résultat d’un calcul serait demandé par un programme avant même que ce calcul soit lancé. Mais il existe un autre problème de conception des programmes et qui concerne le problème de la traduction de ces instructions algorithmiques (autrement dit le programme comme « Idée ») vers les rouages mécaniques qui doivent physiquement les actionner. Souvent la logique de ses deux couches sont très différentes, et demandent au programmeur (ou programmeuse) une grande gymnastique de la pensée pour maîtriser. On ne maîtrise jamais totalement la bête, d’où divers accidents historiques, comme celui du porte-avion USS Yorktown qui a resté en panne pendant trois heures à cause d’un zéro que Windows NT 4.0 n’a pas su calculer. D’autres erreurs algorithmico-matérielle sont souvent provoquées par la manière dont une valeur est stocké dans la machine : le calcul ne sera pas le même si on utilise deux octets, quatre pour stocker matériellement la valeur de PI dans un registre de la mémoire. Dans ces deux cas, les valeurs après la virgule, ne seront pas les mêmes. Le souci du programmeur est précisément cet endroit où la logique intellectuelle du programme rencontre l’interrupteur machinique qui doit l’actualiser — ce que le mythe de la mite représente sous la forme d’une rencontre de deux mondes ontologiquement incompatibles mais qui cherchent néanmoins à se communiquer. Car il est impossible, voire fatal, de parler avec la machine dans son langage pur.

Ce qui nous amène à la deuxième contradiction constitutive de l’informatique : celle de notre accès à la machine, autrement dit l’interfaçage. Quelque part nous pouvons qualifier l’erreur de la mite d’avoir voulu interagir /directement/ avec la machine. Ce que ce mythe nous apprend, c’est qu’avoir voulu interagir avec la machine sans interface était à la fois fatale pour la machine et pour la mite. Ce conflit nous ramène bel et bien à la contradiction précédente, c’est-à-dire à cet étrange négociation permanente qui doit exister entre la matière et l’abstraction pour que l’informatique puisse fonctionner.
Informé par ces observations, je propose à une humanité de plus en plus imbriquée par contagion à l’informatique, un nouveau champ d’étude — celui de sa mite-ology, qui étudierait la mite informatique dans ce qu’elle aurait de constitutive pour le nouveau monde qui arrive. Au lieu de fuir le plantage ou le bogue, cette mite-ology la prendrait comme la limite constitutive, comme son ouverture. La mite-ology partirait du mythe de la mite comme l’annonce d’une nouvelle physicalité qui en permanence doit accompagner toute agorithmisation de notre polis — autrement nommé sa virtualisation. Pas de nouvelles abstractions, pas de monde soi-distant « virtuel », sans que parallèlement soit engendré des retour de bâton du monde physique qui doit accueillir et rendre compatible (ou incompatible) cette virtualisation. Pas d’algorithmisation du monde sans de nouvelles rencontres avec la mite : cette bestiole qui par curiosité et besoin cherche à créer de nouveaux circuits d’interaction avec le monde.