Les ordinateurs sont des êtres humains commes les autres
Quand vous travaillez dans un domaine qui met en jeu de près ou de loin des ordinateurs au quotidien, vous vivez rapidement des situations où vos amis/collègues/voisins/supérieurs/stagiaires/rayez-les-mentions-inutiles finissent par pousser un râle de désespoir accompagné d’une question en forme de supplique du type « Mais pourquoi il fait çaaaa..? »
« IL », c’est l’ordinateur, bien sûr. Tentative ultime de raccrocher à une figure un peu anthropomorphisée ce qui se passe en fait dans la machine, autrement dit les programmes qui font des machins. Parce qu’évidemment, tout le monde le sait, l’ordinateur ne fait rien lui-même. Il n’est ni intelligent, ni bête, il fait ce pour quoi on l’a programmé.
Alors pourquoi, pourquoi cette impression si facilement partagée qu’il y a quand même là-dedans une sorte de volonté propre, ou pire, aléatoire (ou encore pire quand vraiment tout va mal, machiavélique)..?
Passons sur notre tendance à l’anthropomorphisme, assez récurrente, réflexe ancestral face à l’inconnu et l’incompris. S’il n’y avait que ça, il suffirait de se moquer et ça serait plié. Non non non. Il y a forcément plus.
Ce qu’il y a, c’est que les programmes qu’on utilise ont depuis longtemps dépassé le stade des micro-routines. Ils représentent parfois des millions de ligne de code, et même s’ils ont été élaborés en suivant les règles de l’art (respect des bonnes pratiques, design patterns, pizza, versionning des sources, etc), leur niveau de complexité excède grandement nos capacités d’appréhension en un seul coup d’œil, pour le dire comme ça.
En d’autres termes, ils ont franchi le seuil au-delà duquel il n’est plus possible pour quiconque de savoir ce qui va exactement se passer dans tous les cas possibles (notamment parce que ces « cas » sont trop nombreux, donc qu’on peut difficilement assurer qu’on les a tous envisagés[1]).
Si on veut recourir à une analogie (tu es nouveau ? Cliquette ici), disons que tout programme dépasse rapidement le stade où on peut croire qu’il est un ensemble fini prévisible, pour devenir un système probabiliste gazeux.
La principale conséquence en est que l’utilisateur (et même le créateur) n’est jamais complètement certain de ce qu’il va faire. Et de quoi est-ce que c’est la caractéristique, au fond, je vous le donne en mille ? De l’altérité.
L’autre. Ce truc qui n’agit pas comme dans ma tête[2]. Bref, sans imaginer bien sûr qu’il ait une volonté propre, le programme a suffisamment d’ « indépendance » pour se comporter comme quelque chose d’aussi imprévisible qu’un être humain, et c’est assez génial (en tout cas à titre personnel je trouve ça exaltant, mais les clients ne partagent pas toujours cet avis, bizarre…)
D’où cette belle formule, qui me sert à briller à la cafeteria ou à clore certains débats stériles : oui, les ordinateurs (en fait : les applications) sont des êtres humains comme les autres.
Et c’est pourquoi bien programmer passe principalement par l’application de bonnes pratiques qui visent à réduire au maximum les interstices où va se fourrer l’imprévisibilité, et à tester au maximum toutes les éventualités qui peuvent se présenter — ce d’autant plus que, en face de l’ordinateur, il y a un utilisateur, qui lui aussi est imprévisible, et qui comme vous l’aurez appris si vous développez, fera toujours exactement le truc que vous n’aviez pas prévu.
_________________________________
Illustration : Marvin le robot dépressif, dans H2G2 – The Hitchhiker’s Guide to the Galaxy
________________________________________________- Pour ceux qui sont un peu acharnés et/ou qui suivent, c’est un peu ce sur quoi travaille Christopher Alexander. [↩]
- Peut-être qu’un jour, si je continue sur ces lancées lyriques, je vous raconterai comment en un sens on est aussi pour soi-même une sorte d’autre (en plus d’être beau, c’est fondamental). [↩]
Tags : altérité, application web, complexité, volonté
dimanche 13 septembre 2009 à 1 h 20 min
Tu noteras également que si certains êtres humains prennent parfois les processus de leur machine pour des entités vivantes, c’est moins inquiétant que quand des humains prennent leurs congénères pour des processus.