Algorithme, bouton, boucle, code, codecs, data visualisation, interface, intelligence, interaction, langage, librairie de classes, listes, mémoire, programmation orientée objet, variables,… : le vocabulaire utilisé dans les théories des « software studies » (étude des logiciels) fait appel à de nombreux concepts qui font plus de sens dès lors qu’ils sont compris de manière transversale.
Dans « Software studies : A lexicon » (non traduit), Matthew Fuller pose le logiciel à la fois comme objet d’étude et comme domaine de pratiques professionnelles. Pour Fuller, le logiciel n’est pas neutre et l’idée de son immatérialité est seulement supposée, voire dépassée : le logiciel est un objet qui se trouve au centre d’interactions qui ne sont pas qu’informatiques. Avec Andrew Goffey, il en avait dénoncé les dérives et « mauvais » usages dans Evil Media, co-signé avec Andrew Goffey (MIT Press, 2012).
Le lexique qu’il propose consiste à approcher la manière de penser le logiciel dans ses divers aspects, un abécédaire expliqué et commenté par des spécialistes et théoriciens du domaine. Andrew Goffey y rappelle, citant Kowalski, que l’ALGORITHME est le résultat de l’addition des mots « logique » et « contrôle ». C’est « l’entité fondamentale avec lequel l’informaticien travaille. Il est indépendant des langages de programmation et indépendant des machines qui exécutent les programmes composés à partir de ces algorithmes. C’est une abstraction dont l’existence est indépendante. » Par ailleurs, ils « ont un effet matériel sur les utilisateurs finaux », indique Goffey.
Friedrich Kittler y définit le CODE comme « ce qui nous détermine aujourd’hui » et dont les séquences font partie de toutes les technologies de communication et de chaque support de transmission. Faisant référence à la machine de Turing, il dispose que « tout, dans le monde, peut être codé ». Un peu plus loin, le terme INTELLIGENCE fait référence à a question posée par Alan Turing : une machine peut-elle penser ? Conçue historiquement comme une imitation, souligne Goffey, aborde les questions de l’impact des machines sur le travail (avec la notion de « déqualification ») tout en indiquant que les jeux d’imitation de la machine ont perduré depuis 1950.
Le langage et ses symboliques
Le LANGAGE de programmation induit que logiciel et langue sont intrinsèquement liés, explique Florian Cramer. « Il y a deux couches de langues dans le logiciel : le langage de programmation, et les symboliques du langage ». Et de rappeler que l’ordinateur ne « comprend » pas directement un langage de programmation, même si celui-ci est « formellement parlant » : aussi, les données ne peuvent-elles être traitées par le logiciel qu’avec l’usage d’un compilateur. « Le logiciel est non seulement un code mais une forme symbolique qui implique des pratiques culturelles quant à son utilisation et son appropriation ».
Les intentions du programmeur, son style, sa manière de faire peuvent être comprise en accédant au CODE SOURCE, dont la syntaxe « partage les caractéristiques du langage naturel », indiquent Krysa et Sedek. Il participe à la matérialité du logiciel, qui ne peut être opposée à celle de l’ordinateur et de son équipement, software et hardware en perpétuelle interaction.
« Software studies. A lexicon » propose ainsi de passer « de l’autre côté », dans une collection de courts textes, à portée pluridisciplinaire autour du logiciel informatique, de la manière dont il se construit, et de celle dont il participe à la construction du monde.
L.D.
Matthew Fuller (dir.), « Software studies: A lexicon », MIT Press, 2008.