L’informatique et les métaphores
Les ordinateurs sont des machines complexes, conceptuellement fondées sur la logique des propositions et l’algèbre de Boole. Ils ont été conçus par des cerveaux humains et ressemblent un peu à l’image que l’être humain se fait de son propre cerveau. Néanmoins, ils en sont physiquement assez éloignés et sont plutôt difficiles à comprendre.
Comprendre un objet, c’est en premier lieu le prendre et interagir avec. Le toucher, le sentir, l’observer sous toutes ses facettes et tenter de lui trouver une utilité. Ce n’est pas toujours évident, même avec des objets matériels. Ils peuvent être trop petits, trop grands, trop éloignés, trop froids, trop chauds… Dans ce cas, on tente de les comprendre de façon indirecte. En utilisant, par exemple, un microscope, un télescope, des outils de mesures, des raisonnements, des formules mathématiques…
Malheureusement, on peut prendre un ordinateur, l’observer dans tous les sens, le démonter, le remonter, utiliser son système d’exploitation pour lancer et utiliser des logiciels, son fonctionnement restera un peu magique, inaccessible. Et il sera même extrêmement difficile à celles et ceux qui l’ont conçu d’expliquer simplement comment il fonctionne.
Or, lorsque nous manipulons des concepts abstraits ou lorsque nous voulons communiquer à leur sujet, nous le faisons la plupart du temps en utilisant des termes liés à d’autres concepts, mieux définis, souvent plus concrets et pour lesquels nous avons une grande expérience. En bref : nous utilisons des métaphores. Par exemple, on parle souvent des idées comme s’il s’agissait de personnes : « la théorie de la relativité a donné naissance à un grand nombre de conceptions en physique », « il est le père de la biologie moderne », « ces conceptions sont mortes depuis le Moyen Âge », « ses idées vivront toujours », « voici une idée qui doit être ressuscitée », « il a insufflé une nouvelle vie à cette théorie ». (Lakoff & Johnson, 1980).
Vous verrez que les personnes qui interviennent dans votre formation vont faire un usage massif des métaphores, la plupart du temps sans même s’en apercevoir, et que vous aurez ainsi l’impression d’avoir assimilé instantanément des concepts inaccessibles au premier abord.
Il convient bien entendu d’être un peu vigilant, car aussi pertinente qu’elle soit, la cohérence d’une métaphore est souvent très étroite. Par exemple :
- un ordinateur allumé produit de la chaleur, mais pas forcément de lumière
- l’informatique en nuage ne se forme pas par évaporation des bits
- les fenêtres des interfaces graphiques ne permettent pas d’aérer le code source
- Les cases mémoires peuvent contenir la valeur 0, mais elles ne peuvent pas être vides…
Dans le même esprit, que se passe-t-il si l’on file on peut trop loin la métaphore du langage de programmation ?
Ce langage possède bien un vocabulaire, une grammaire, une sémantique, des mots-clés et des caractères spéciaux au lieu de mots-outils, des identificateurs au lieu de noms propres et de noms communs, des variables au lieu de pronoms, des classes au lieu de catégories, des instances au lieu de cas…
Mais savez vous comment faire une métaphore en Python, en Java, en C++, en SQL ?
Bibliographie
- Lakoff, G., & Johnson, M. (1980). Metaphors we live by. Chicago: The University of Chicago Press.