Une archéologie du bug : Différence entre versions
(3 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
Date de Parution : 2014 (révision 2015) | 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é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. | 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. | ||
Ligne 12 : | Ligne 12 : | ||
En démontrant en 1936, à la suite des travaux du logicien Kurt Gödel, l’impossibilité de l’existence d’un programme qui pourrait | 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 | 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'' ( | + | errent, qui divaguent, bref, qui buguent<ref>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.</ref>. 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''<ref>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</ref>, 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.<br/> | ||
C’est l’attitude réciproque que nous adoptons ici, imaginer l’informatique comme simulée par les interactions humaines (pratiques | C’est l’attitude réciproque que nous adoptons ici, imaginer l’informatique comme simulée par les interactions humaines (pratiques | ||
Ligne 193 : | Ligne 197 : | ||
==Notes== | ==Notes== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
3. Clarke (A. C.), ''The Promise of Space'', Harper and Row, 1968. Pour les détails, cf. G. J. Myers, | 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.<br/> | Software Reliability: Principles & Practice, p. 25.<br/> | ||
Ligne 215 : | Ligne 213 : | ||
they tend to be pathological. Pathological software forms such as viruses, worms, otherness | 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 | 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 ». | + | viruses, worms, trojan horses, or even bugs are one facet of otherness marked in software ».<br/> |
10. Chez Bram Cohen (le créateur de BitTorrent), le bug devient de la merde. Cf. Cohen (B.), | 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 | « Aesthetics of Debugging thinking of turds as bugs and your home as your code », posté sur |
Version actuelle en date du 7 octobre 2016 à 15:23
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 ?
Sommaire
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
- ↑ 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.
- ↑ 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