Les théories des « software studies » abordent l’étude du logiciel de manière analytique et critique. Lawrence Lessig, dans « Code is Law », postulait une gouvernance insidieuse du code dans tous les aspects de la vie humaine : « Le code régule. Il implémente – ou non – un certain nombre de valeurs. Il garantit certaines libertés, ou les empêche. Il protège la vie privée, ou promeut la surveillance. Des gens décident comment le code va se comporter. Des gens l’écrivent ». Dans « Le langage des nouveaux médias », Lev Manovich affirmait que « l’informatisation de la culture ne conduit pas seulement à l’apparition de nouvelles formes culturelles (…) elle modifie également des formes existantes ».
Manovich s’intéressait essentiellement aux interfaces. Adrian MacKenzie, lui, s’attache au logiciel à la fois en tant qu’objet social et en tant que processus. Dans « Cutting code. Software and sociality » (Digital Formations, 2006, non traduit), il s’intéresse au logiciel en tant qu’objet d’analyse « multidimensionnel et mutant ». L’auteur estime que le logiciel ne pourrait être compris autrement que par le code, lequel renvoie à une pratique technique et culturelle : le logiciel, à la fois objet social et processus. Mais celui-ci ne pourrait pas être compris autrement que par le code, transformant un message d’une forme symbolique à une autre (d’un alphabet source à un alphabet cible, « usuellement, sans pertes d’informations ».
Le code, instable et volatile
Les nouveaux médias ont avant tout besoin de code, et moins de compétences techniques. Toutefois, « les pratiques techniques s’entrelacent avec les pratiques culturelles. » Il considère que l’approche formelle développée par Manovich (principes de variabilité, de modularité et de transcodage à compléter) extrait le logiciel du contexte et des pratiques. D’autant que le code « n’est pas gravé dans le marbre », il est « instable et volatile », en témoigne les nouvelles versions, mises à jour, patches etc. Reste que le code est visible pour le programmeur, pas pour les utilisateurs. Sa médiation a lieu par l’interface ou par certaines modifications de l’environnement (objets connectés).
A la source du code, un « originator », ce « faiseur de logiciel » qui serait une figure ambivalente, à la fois créateur et artisan social mais qui peut aussi, dans le contexte du hacking, revêtir une seconde signification, aux connotations négatives. L’ouverture du code, rappelle-t-il, est un projet émanant de hackers, « un projet politique ». A contrario, on reproche souvent au code son opacité, lui qui est « dispersé dans une cacophonie de langages » tout en s’inscrivant dans la continuité du langage naturel. Par ailleurs, relève MacKenzie, il faut constamment upgrader le code, pour fixer les bugs ou assurer sa compatibilité, sans oublier « la bataille pour le respect des standards ».
Processus et recettes algorithmiques
Dans le troisième chapitre, l’auteur aborde la question des algorithmes dont le code a besoin tout autant que de données. « Malgré le fait qu’ils font partie intégrante du logiciel, les algorithmes sont plutôt difficiles à analyser. » Il y aurait ainsi une oscillation entre le code et son expression en tant qu’opération. « Chaque algorithme est cadré par le temps et l’espace de la computation », indique-t-il, comparant le processus algorithmique à celui d’une recette. De plus, ils n’accélèrent pas seulement la computation, ils instituent également « une composante temps-espace, dans laquelle l’agencement des séquences est préservé et reconfiguré (…) Les algorithmes ne sont pas des procédures formelles neutres », et il n’est jamais acquis de pouvoir les transposer dans d’autres contextes que ceux dans le cadre desquels ils ont été conçus. Pour Mackenzie, les protocoles, infrastructures et conventions de programmation donnent des indications quant aux constructions sociales véhiculées par le code.
Il postule en outre que dans le code et le codage, trois facettes primaires du logiciel peuvent être trouvées, faisant ainsi référence aux théories sociales contemporaines : l’agencement (le concept de qui fait quoi, l’intension), la matérialité et la socialité (dans la mesure où l’espace social est transposé dans le logiciel). « Le code est un matériau organisé par beaucoup de formes d’idéalisation, empruntées aux mathématiques et aux sciences de l’informatique (…) Un discours est attaché au logiciel,(et il porte) sur le code et le codage », conclut-il. Car le code n’est pas neutre, est le fruit d’une activité productive « qui transporte l’espace social dans les réseaux logiciels. »
L.D.
Adrian MacKenzie, « Cutting code. Software and sociality », Digital Formations, 2006, 203 pp.