en

Anthony Masure

Enseignant-chercheur en design

Anthony Masure

Enseignant-chercheur en design www.anthonymasure.com

Les dessous du code : le commentaire comme espace de liberté ?

Anthony Masure

Enseignant-chercheur en design www.anthonymasure.com

Les dessous du code : le commentaire comme espace de liberté ?

Après des études de sciences humaines et informatique, Joanna Pomian choisit le métier du conseil pour aller au devant des entreprises et les aider à gérer leurs données, informations ou connaissances. Aujourd’hui spécialisée dans la transformation numérique des organisations, elle travaille chez Wax Interactive (groupe SQLI).

Les programmes recto/verso

Elle voulait être médiéviste, elle a finalement fait une thèse en intelligence artificielle. Après un passage au CNRS, Joanna Pomian rejoint le monde de l’entreprise, où elle travaille désormais dans le secteur de la « transformation numérique ». Le cadre de son intervention aux Rencontres de Lure 2014 faisait suite à un article écrit dans la revue Traverses en 1988 sur l’iconicité du code informatique 1 Emmanuël Souchier, Joanna Pomian, « Les machines écrivantes ou l’écriture virtuelle », Traverses, no 44-45, Paris, Centre Pompidou, 1988.. Commande lui était passée, profitant de son expérience professionnelle dans le monde, de prolonger ses réflexions dans le contexte des « commentaires » des codes source : l’occasion d’une ballade dans « les dessous du code ».

Les étoiles du code composent un tableau visuel qui ne sera pas exécuté par le programme. Programme écrit en FORTRAN suivi de sa version compilée, RWTH Aachen University, 1987. Source : Wikipedia, licence CC BY-SA 3.0

Le code : un type d’écrit particulier

Dans le contexte de la programmation informatique, l’utilisateur n’a le plus souvent accès qu’à une interface, c’est-à-dire à un ensemble de menus et de boutons lui permettant d’effectuer un certain nombre d’actions anticipées dans la conception du programme. Au-delà du fait que la plupart des programmes ne possèdent pas d’interfaces, il est pourtant possible de comprendre leur fonctionnement en les étudiant comme des textes : en lisant le langage que constitue leur « code source ». Même si de telles démarches sont rares, nous pouvons donc aller plus loin et analyser les programmes non pas comme des producteurs d’effets (de « fonctions »), mais comme des écrits particuliers 2 Citons comme contre-exemple l’ouvrage collaboratif 10 Print Chr (205.5+Rnd(1)); : Goto 10 paru aux MIT Press en 2012, constitué d'articles consacrés à l'analyse d'une ligne de code..

Des langages de programmation spécialisés

Comme le dit Joanna Pomian, un programme est un texte écrit à destination d’un ordinateur. Il structure un ensemble d’instructions destinées à faire quelque chose. Au plus « bas niveau », les machines informatiques emploient du code binaire constitué de 0 et de 1. Comme il est compliqué de comprendre une telle abstraction, les développeurs informatiques ont inventé de multiples langages, davantage compréhensibles de ceux qui les utilisent car moins abstraits. Ces « langages formels », logiques comme les mathématiques, ont évolué de par leur facilité de compréhension et par la spécialisation des problèmes à résoudre. Joanna Pomian cite par exemple le COBOL (1959), langage de programmation comprenant des milliers de lignes de code destinées au domaine de la comptabilité-gestion ou le FORTRAN (1957), utilisé pour contrôler les centrales nucléaires.

Écrire dans le programme

Dans un deuxième temps, les langages informatiques se sont élargis, devenant plus « généralistes » afin de pouvoir produire toutes sortes de programmes. Indépendants de toute finalité ou machine, ces langages de programmation sont à la base des « commentaires » des codes sources, rendus nécessaires par l’abstraction et l’univocité de ce type de notation. Comme un programme informatique doit pouvoir être compris et retravaillé par (potentiellement) n’importe quel programmeur, il a fallu prévoir dans le programme des zones où ajouter du texte qui ne sera pas « lu » par le « compilateur 3 Un compilateur est un programme qui transforme un code source en un programme exécutable écrit dans un langage de « bas niveau » (proche du langage machine). ». Dit autrement : « Un commentaire est une ligne de code qui n’est pas exécutée par l’ordinateur » (Joanna Pomian).

La dimension iconique des codes sources

Les premiers commentaires des programmes étaient écrits à la main, sur les cartes perforées à l’origine des langages de programmation totalement électroniques. Avec le développement des ordinateurs, il a fallu trouver des façons d’indiquer à l’ordinateur où commence et où s’arrête le commentaire, « et chacun y est allé de son petit système de notation » (Joanna Pomian). Des suites de caractères tels que <!-- -->, /* */, //, etc 4 On distinguera deux types de commentaires : les commentaires « en ligne » et les commentaires « en bloc » (pour plusieurs paragraphes), qui se développent avec la disparition progressive de la notion de ligne dans les codes sources.. permettent de ménager des espaces d’expression libre dans l’exactitude du code. Cette multitude de signes différents servant une même fonction – commenter – renforce la dimension iconique des langages de programmation. Cet aspect visuel est de plus en plus présent, car là où les premiers moniteurs ne pouvaient afficher qu’une seule couleur, les éditeurs de code (Dreamweaver, Brackets, Notepad++, etc.) ont rapidement intégré la couleur comme élément de repérage 5 Le logiciel Sublime Text va même plus loin en affichant un raccourci visuel (dézoom) du code source dans une colonne latérale (« minimap »). (on parle ainsi de « coloration syntaxique »), permettant d’afficher les commentaires dans un style spécifique.

Normaliser pour (se) comprendre

Cette volonté de réguler voire de normaliser la structuration des programmes peut se comprendre, nous dit Joanna Pomian, en observant le développement du « reverse engineering », science consistant à étudier un objet « fini » en remontant aux principes ayant présidé à sa conception pour en comprendre le fonctionnement. Dans le contexte des programmes, ce sont ainsi des millions de lignes de code qui ont pu être documentées après coup. Nous en venons ainsi au cœur de l’exposé de Joanna Pomian : « à qui s’adresse le commentaire, et qui parle ? » Une première réponse consiste à dire que le commentaire s’adresse en priorité au développeur lui-même, « qui aime parler seul ». Le commentaire s’apparente alors au post-it, permettant de prendre du recul et de se comprendre par la verbalisation de sa propre pensée. Dans le contexte de l’entreprise, on échange aussi avec ses collègues, ses supérieurs et clients : le commentaire a également une valeur d’échange.

Un espace de liberté menacé ?

Le statut principal des commentaires de programmes vise donc à permettre une (illusoire ?) transparence du fonctionnement des programmes, à éclaircir ce qui se passe dessous. Deux courants s’affrontent : l’un pensant que le code se suffit à lui-même (logique du « beau » code), et l’autre consistant à commenter de façon réglée, l’énonciation de ces règles étant soumise à polémiques. Joanna Pomian conclut son exposé en insistant sur la valeur déclarative et personnelle de ces portions de textes qui constituent peut-être un des derniers endroits où les développeurs informatiques peuvent exprimer librement leur créativité, d’où le recours à des jeux de mots, figures, ornements, etc. Alors que la recherche de rentabilité gagne du terrain dans tous les domaines, le développement des méthodologies « agiles » signe-t-il la fin des commentaires ? Que reste-t-il de démarches comme la « programmation lettrée 6 Par opposition à la toute puissance de la « programmation structurée », l'informaticien Donald Knuth (inventeur du programme Metafont) développa au début des années 90 la « programmation lettrée », qui se voulait tournée vers les êtres humains et non pas vers les ordinateurs. Voir : http://fr.wikipedia.org/wiki/Programmation_lettrée » de Donald Knuth ? Souhaite-t-on vraiment un monde où tout serait structuré selon des règles logiques ?

Notes

1 Souchier, Joanna Pomian, « Les machines écrivantes ou l’écriture virtuelle », Traverses, no 44-45, Paris, Centre Pompidou, 1988.

2 Citons comme contre-exemple l’ouvrage collaboratif 10 Print Chr (205.5+Rnd(1)); : Goto 10 paru aux MIT Press en 2012, constitué d'articles consacrés à l'analyse d'une ligne de code.

3 Un compilateur est un programme qui transforme un code source en un programme exécutable écrit dans un langage de « bas niveau » (proche du langage machine).

4 On distinguera deux types de commentaires : les commentaires « en ligne » et les commentaires « en bloc » (pour plusieurs paragraphes), qui se développent avec la disparition progressive de la notion de ligne dans les codes sources.

5 Le logiciel Sublime Text va même plus loin en affichant un raccourci visuel (dézoom) du code source dans une colonne latérale (« minimap »).

6 Par opposition à la toute puissance de la « programmation structurée », l'informaticien Donald Knuth (inventeur du programme Metafont) développa au début des années 90 la « programmation lettrée », qui se voulait tournée vers les êtres humains et non pas vers les ordinateurs. Voir : http://fr.wikipedia.org/wiki/Programmation_lettrée