Une archéologie du bug

De PAMAL
Aller à : navigation, rechercher

Auteurs : Christophe Bruno, Emmanuel Guez

Date de Parution : 2014 (révision 2015)

Référence : Bruno (C.), Guez (E.), "Une archéologie du bug", Cahiers de l'Obsin, n°5, 2015. (précédemment publié dans MCD, #75, version légèrement remaniée)

Résumé : Dans un système temps-réel, l’absence de réponse dans une période prédéfinie est aussi mauvaise qu’une erreur logique. Le bug signifie alors tout aussi bien l’impossibilité de calculer que de calculer dans le temps imparti. Pour l’utilisateur, le bug se présente sous la forme d’une attente indéfinie. Mais qu’est-ce qu’un bug ? De quoi est-il réellement le signe ? Pourquoi seule la méthode archéologique permet-elle de le saisir ?

ARTICLE

Le bug comme métaphore de dysfonctionnement des phénomènes humains

En démontrant en 1936, à la suite des travaux du logicien Kurt Gödel, l’impossibilité de l’existence d’un programme qui pourrait diagnostiquer les failles d’un programme quelconque, Alan Turing ouvre la voie à la possibilité même de sa Machine de Turing, premier ordinateur jamais conceptualisé. Ainsi, c’est l’assomption de l’impossibilité de se débarrasser du bug, qui instaure le champ de l’informatique, et qui a permis à l’humanité de plonger dans l’ère du numérique un demi-siècle plus tard. Aujourd’hui, les spécialistes de l’informatique théorique et de la logique mathématique savent que l’univers des programmes qui fonctionnent est plongé dans un univers bien plus vaste et intéressant, celui des programmes qui errent, qui divaguent, bref, qui buguent[1]. Mais pour le commun des mortels, l’idée du bug oscille quelque part entre la soi-disant perfection de la machine et l’imperfection humaine. Cette distinction entre la machine et l’humain est également l’objet de la recherche de Turing. Dans son texte fondateur Computing machinery and intelligence[2], Turing décrit ce qui deviendra le fameux test de Turing, où un ordinateur tente de se faire passer pour un humain. Par la suite, on a notamment cherché à simuler les phénomènes humains par des comportements informatiques.

C’est l’attitude réciproque que nous adoptons ici, imaginer l’informatique comme simulée par les interactions humaines (pratiques sociales, technologiques, linguistiques, sémiotiques, artistiques…). Nous manipulons la notion de bug comme une métaphore à obsolescence programmée du dysfonctionnement de ces interactions humaines. Par « métaphore à obsolescence programmée » nous entendons que ce qui est ici comparaison métaphorique est éventuellement destiné à devenir du réel. Autrement dit, si nous introduisons une comparaison entre un programme informatique et un dispositif social, ou bien entre une typologie de bug informatique et le détournement d’un outil de communication, etc., alors cette comparaison, qui opère comme une métaphore dans l’état historique actuel, peut devenir analogie véritable dans le futur. Alors, la métaphore se dissoudra car elle sera réalisée.

La manière dont cette obsolescence se produira (si elle se produit) ne nous concerne pas ici : évolution vers le post-humain, réunification de la logique mathématique avec les sciences sociales, révolution trans-genre, hyper-fascisme (sous l’effet une fois de plus d’une mutation technologique majeure)... Pas plus que les dates de péremption de telles métaphores, dates qui nous sont inaccessibles (elles sont donc « programmées », mais nous ne savons pas quand le programme se terminera).

Le bug, une lecture qui (se) passe mal

Le 22 juillet 1962, la sonde américaine Mariner 1 est détruite 294,5 secondes après son décollage, suite à une défaillance des commandes de guidage. La cause : une barre suscrite manquante dans une ligne de code en FORTRAN. Comme l’a écrit Arthur C. Clarke, confondant le trait d’union et la barre suscrite : « ce fut le trait d’union le plus cher de l’histoire » (3). Le bug est une affaire typographique, un arrêt dans le processus de la lecture machinique. Englobons donc le bug dans le concept d’écriture qui concerne aussi bien la pratique humaine que l’exécution d’un programme. L’exécution d’un programme informatique appartient en effet au registre de l’écriture : c’est l’interaction d’un texte, appelé programme, avec son contexte, les données d’entrée ou de sortie. Lorsque le programme fonctionne, un nouveau texte est produit, issu de l’ancien. Les bugs sont les dysfonctionnements lors de cette exécution.

Par exemple, dans une situation d’interblocage lors de l’exécution d’un programme, deux actions concurrentes sont chacune dans l’expectative que l’autre se termine, provoquant une attente indéfinie (4). D’autres types de bugs existent. Si par exemple la foudre vient frapper l’ordinateur en train d’effectuer un calcul, nous pouvons considérer cela comme un bug ; ou bien la confusion entre un « billard » et un « pillard », pour reprendre un exemple célèbre dû à l’écrivain Raymond Roussel (5), chez qui les homophonies et les équivoques sont utilisées pour gripper les rouages de la machine langagière.

On pourrait ainsi remonter jusqu’aux pratiques alchimiques et à la « langue des oiseaux ». Les associations phoniques utilisées par les initiés constituent en effet un argot crypté qui révèle et accentue les sens cachés, tandis qu’elles les dissimulent aux profanes, pour qui cette « langue secrète » apparaît comme insensée. Dès lors qu’un bug se produit, quelque chose de l’écriture reste en suspens. Le bug, ici paradigme du dysfonctionnement des interactions humaines, s’institue précisément là où l’écrit est défaillant, où la lecture se heurte à un impossible. Le bug dessine en creux les frontières du champ de l’écriture et de la lecture.

En lieu et place de l’histoire, une archéologie du bug

L’historien se fonde sur des écrits, contrairement à l’archéologue de la protohistoire qui s’intéresse aux peuples qui n’ont pas de sources textuelles mais qui, parfois, sont évoqués dans les écrits de civilisations plus récentes. En tant que point aveugle de l’écrit, le bug peut-il être l’objet d’une histoire ? Ne serait-ce pas en archéologue qu’il conviendrait plutôt d’aborder ce qui serait finalement non pas une histoire du bug, mais ce qui ne peut être à jamais qu’une proto-histoire ?

Dans Finnegans Wake, Joyce rend le roman illisible. Non pour qu’il ne soit pas lu, mais parce qu’il est paradoxal de vouloir imprimer – d’écrire au sens de l’imprimerie – l’oralité protohistorique de la langue. Du point de vue du roman, il est illisible, mais il est audible par sa lecture à haute voix. De la même manière, du point de vue de l’histoire et de l’humanisme (numérique), i.e. de l’écriture et de la lecture, le bug est un dysfonctionnement tandis que du point de vue de l’archéologie et du post-humanisme, i.e. des machines, l’impossible située au coeur de l’écriture et de la lecture dissout la notion même de fonction. Ainsi le bug est-il un acte qui doit être pensé selon deux points de vue. Nous nous demandons si les humains n’auraient pas une vue partielle de l’histoire des machines, qui ne pourrait se départir d’un point de vue « colonialiste ». Il s’agirait ici de savoir s’il est possible de fonder une vision post-coloniale du champ machinique, où le bug aurait toute sa place.

Esthétique du bug

Il est courant de penser que le glitch appartient à l’esthétique du bug. Il n’en est rien. Le glitch appartient au point de vue du dysfonctionnement, que l’artiste glitcheur cherche à rendre lisible. Chez les machines, la lecture est l’exécution d’un programme, d’un code. La dysfonction est liée à un contexte, à une attente. Elle a pour signe la frustration, qui se situe dans l’habitus du langage naturel. On peut bien entendu prendre du plaisir esthétique à provoquer de la dysfonction (Faust). Dans l’esthétique du glitch, la dysfonction se mue en fonction dans la tentative de restaurer une lecture qui n’a pu se faire, lecture faite par une machine mais destinée à un humain. Comme l’écrit Friedrich Kittler, « le programme se mettra soudainement à fonctionner correctement lorsque la tête du programmeur est vidée de mots » (6). Il y a donc deux modes de « lecture » presque incompatibles l’un avec l’autre, dans l’inter-action desquels peut se situer le plaisir esthétique du programmeur.

Ainsi, Nick Montfort écrit-il : « L’aspect puzzle [du programme] met en évidence qu’il y a deux principaux « lecteurs » pour un programme d’ordinateur : d’une part, le lecteur humain qui examine le code pour comprendre comment cela fonctionne, et comment débuguer, améliorer ou développer ; d’autre part, l’ordinateur, qui exécute ses états ou évalue ses fonctions par l’exécution du codemachine correspondant à son processeur. Un programme peut être suffisamment clair pour un lecteur humain, mais peut contenir un probug qui l’empêche de fonctionner tandis qu’un programme peut fonctionner parfaitement bien mais être difficile à comprendre. Les auteurs de codes obscurs <obfuscated code> s’efforcent d’atteindre ce dernier, façonnant des programmes de sorte que l’écart entre le sens humain et la sémantique du programme donne du plaisir esthétique »(7) .

Une esthétique du bug prend le point de vue inverse : elle ne peut qu’émaner des machines elles-mêmes, tout comme les machines écriraient elles-mêmes leur histoire : un programme informatique pourrait par exemple prendre comme objet sa propre histoire, l’archive de ses interactions passées, et les programmes seraient à même de participer à l’écriture de l’histoire de leur victoires ou de leurs défaites (les bugs). Pour la comprendre, il faudrait alors s’appuyer non sur l’histoire mais sur l’archéologie des média, qui se situe par-delà la notion de fonction.

La figure du débugueur

Le problème pour les humains, c’est que, depuis l’imprimerie, ils écrivent et lisent leurs histoires avec des machines. Leurs mots dépendent aujourd’hui du code-machine. Et plus les machines, les OS et les softwares deviennent complexes, étoffés, interconnectés, plus le nombre de lignes de code-machine s’allonge entre le processeur et nos mots, plus le bug devient l’ennemi du verbe. Le bug c’est non seulement l’arrêt de la lecture du programme mais c’est donc aussi, pour les humains, l’arrêt du sens. Il n’y a rien d’étonnant à ce que le bug soit pour le théâtre d’aujourd’hui ce que le suicide était pour le théâtre du XIXème siècle. C’est pourquoi les humains cherchent, au nom d’une prétendue alliance objective, à programmer les machines pour qu’elles luttent avec eux contre le bug.

Le débugueur est alors la figure du médium rationnel. Son point de vue est celui de la raison contre l’irrationnel. Le débugueur est au bug, ce que, pour la philosophie et l’humanisme classiques, l’homme est à l’animal. Ce dernier, pas plus que la machine, ne parle. À l’Âge classique, le corps de l’homme se discipline en opposition à lui. Il n’est pas anodin que la première médiatisation d’un dysfonctionnement informatique de l’histoire ait été attribuée à un insecte. En l’occurrence cette « petite » mythologie fonde le bug comme métaphore des dysfonctionnements informatiques (et technologiques) et le début de l’histoire coloniale des machines par les hommes.

Ce n’est pas non plus un hasard si les humains, dans les films d’Hollywood des années 1950 – années de la cybernétique – sont souvent menacés par des insectes. Les parasites de l’information – comme, du temps d’Edison, un parasite du signal (8) – sont des êtres particulièrement détestables et singulièrement muets par rapport au règne animal : une punaise, une mite, un papillon de nuit, un cafard, comme dans le film Brazil en 1985. Comme tous ses dérivés, les virus et les vers (worms), le bug est nuisible, anxiogène (cf. le fameux « bug de l’an 2000 » réveillant les peurs de l’an 1000), voire pathogène (9). Et pour le qualifier, les programmeurs-débugueurs – ces nouveaux médecins du verbe – n’hésitent pas à descendre encore davantage dans la chaîne organique (10), nous remémorant ainsi la question de Platon : y a-t-il une Idée de la fange ? Le débugueur, ce chasseur d’insectes, possède son esthétique. Il réintroduit de la reproductibilité, du lisible, tout ce que le bug a dissous, là où du point de vue des machines, il y avait de la durée pure. Le bug dépend du point de vue de ceux qui ont des attentes quant au programme. L’existence même d’un bug dépend du contexte. Si ces attentes ne sont pas définies, s’il n’y pas de spécification du programme, il n’est pas possible de savoir s’il y a bug ou non, de même qu’il n’est pas possible de savoir si une boucle, dans une situation d’interblocage, va se terminer ou non : il faut une décision arbitraire, un acte, un événement, qui détermine ce qui s’écrit de l’histoire. Le pas à pas rend la décision – et la lecture possible. Le débugueur est le Muybridge du monde actuel, le modèle actuellement dominant de l’esthétique numérique.

===L’archéologie du bug comme fondement d’une protohistoire des machines par les machines=== Tandis que l’histoire des média s’appuie sur les machines en capacité de lire, l’archéologie des média se fonde sur les machines en incapacité de lire, et pour cela, condamnées par les humains à l’oubli historique. L’archéologie des média, fondée sur une archéologie du bug, montre au contraire que cette incapacité de lire est le point de vue des humains, non des machines elles-mêmes qui, au-delà de la notion de fonction, continuent d’agir sur les représentations et l’imaginaire humain (la littérature, le cinéma et le jeu vidéo, la science-fiction, la cyberculture, la culture geek et les arts médiatiques…).

L’échec fait partie de la relation naturelle homme/machine. Du point de vue humain, l’échec est généralement à éliminer, car incompris (11). Du point de vue des machines, comme toute défaite, le bug travaille pour l’avenir, qu’il s’agisse d’un déploiement fictionnel ou technique et industriel (12). Au débugueur, figure de la raison, il faut opposer une nouvelle « ruse de la raison » dont les machines sont en réalité les puissances agissantes. Dans le temps profond, archéologique, de leurs propres développements, c’est la ruse des machines que d’appréhender mieux que nous-mêmes, humains, notre point de vue de sujets parlants. Aux humains d’assumer, ou pas, leur statut de bugs.

Notes

3. Clarke (A. C.), The Promise of Space, Harper and Row, 1968. Pour les détails, cf. G. J. Myers, Software Reliability: Principles & Practice, p. 25.
4. Cf. Le dîner des philosophes. http://fr.wikipedia.org/wiki/D%C3%AEner_des_philosophes 5. Roussel (R.), Comment j’ai écrit certains de mes livres (1935), 10/18, 1963.
6. Kittler (F.), « Code », in Fuller (M.), Software Studies – A Lexicon, MIT Press, 2005, p.46 (nous traduisons).
7. Montfort (N.), « Obfuscated Code », in Fuller (M.), op. cit., p. 194 (nous traduisons).
8. Cf. Parikka (J.), Insect Media, An archaeology of animals and technology (posthumanities), University of Minnesota Press, 2010, p.131.
9. Cf. Mackenzie (A.), « Internationalization », in Lovink (G.), Rasch (M.), Unlike Us Reader, Social media monopolies and their alternatives, Institute of Network Cultures, 2013, et notamment ce passage, p.153 : « By virtue of the notions of universality attached to numbering systems (such as decimal and binary), to computation (Universal Turing Machine), and to global technoculture itself, software seems virulently universal. When figures of otherness appear around soft-ware, they tend to be pathological. Pathological software forms such as viruses, worms, otherness appear around software, they tend to be pathological. Pathological soft-ware forms such as viruses, worms, trojan horses, or even bugs are one facet of otherness marked in software ».
10. Chez Bram Cohen (le créateur de BitTorrent), le bug devient de la merde. Cf. Cohen (B.), « Aesthetics of Debugging thinking of turds as bugs and your home as your code », posté sur advogato.org le 18 Décembre 2000 à 00:58.
11. Il faut apporter ici une nuance. Cf. Fuller (M.), Goffey (A.), Evil Media, The MIT Press, 2012. Cf. aussi Lessig (L.), Code: An other laws of cyberspace, version 2.0, Basic Books, 2006. Lessig montre que l’Internet ouvert, non régulé, doit être compris comme un bug, une imperfection salutaire, y compris économiquement (p.48). D’un point de vue politique, citons encore cet extrait : Comme le dit John Perry Barlow, « [les valeurs du cyberespace] sont les valeurs d’un certain bug programmé dans l’architecture du Net – un bug qui empêche le pouvoir du gouvernement de contrôler parfaitement le Net, même si elle ne désactive pas ce pouvoir entièrement » (p.152) (nous traduisons). Selon nous, il s’agit encore d’un point de vue humain, qui pressent toutefois le point de vue de la machine établissant sa propre protohistoire. Cf. encore la célèbre phrase d’Eric Raymond : « Many eyeballs make all bugs shallow » (beaucoup de globes oculaires ramènent les bugs à la surface). Pour Raymond, le bug est constitutif de l’idée de communauté qui est la « solution » la plus efficace pour lutter contre lui. Le bug est ainsi indirectement à l’origine de toute l’open-culture, dont les répercussions politiques (nouvelles formes d’actions collectives), juridiques (creative commons, etc.), économiques (p2p, crowd-funding, -sourcing, etc.) sont immenses. Dans son ouvrage The Cathedral & the Bazaar : Musings on Linux and Open Source by an Accidental Revolutionary (O’Reilly, 2001, p.373), Raymond met en avant la méthode du bazar : « Here, I think, is the core difference underlying the cathedral-builder and bazaar styles. (…) In the bazaar view (…), you assume that bugs are gene-rally shallow phenomena — or, at least, that they turn shallow pretty quick when exposed to a thousand eager co-developers pounding on every single new release. Accordingly you release often in order to get more corrections, and as a beneficial side effect you have less to lose if an occasional botch gets out the door ». En esthétique, le bug a été l’objet de plusieurs études, dont, en français, la thèse d’Emmanuelle Grangier, Le bug, une esthétique de l’accident, Université de Paris 1, 2006.
12. Cf. Zielinski (S.), Deep Time of the Media: Toward an Archæology of Hearing and Seeing by

Technical Means, The MIT Press, 2008.
  1. Girard (J.-Y.), Le point aveugle, Tomes 1 et 2, Hermann, 2007. On trouvera un certain nombre d’articles de Girard en partie accessibles aux non-mathématiciens sur http://iml.univ-mrs. fr/~girard/Articles.html Pour une introduction non technique : Mosca (A.), « Jean-Yves Girard, le logicien scélérat », Critique, 2005, vol. 61, n.701, p. 743-75.
  2. Turing (A.), « Computing machinery and intelligence », Mind, Oxford University Press, 59, 236, 1950, p.460. http://mind.oxfordjournals.org/content/LIX/236/433.full.pdf