1. Introduction

Les pages qui suivent présentent différentes œuvres qui introduisent l’union potentiel entre langages de programmation et langues courantes, développée par de multiples auteurs et artistes à différentes époques. Elles traitent plus généralement de l’écriture en lien avec l’informatique, l’algorithme ou le protocole, sous des formes diverses comme : l’édition, le support-écran et les diverses formes que peuvent prendre des installations (interactive, générative, audiovisuel, etc. …).

Parmi les acteurs les plus représentatifs de cette littérature, on va retrouver : les artistes associés au mouvement « CodeWork », la communauté des programmeurs et passionnés du langage Perl, les « Perl monks », certain travaux des membres de l’OULIPO et plus particulièrement dans la branche de l’ALAMO (Atelier de littérature assistée [par] mathématique [et] ordinateur), ainsi qu’un bon nombre d’artistes et d’informaticiens qui se sont intéressé, certain avec humour, à donner une dimension poétique à l’écriture du code, le détournant ainsi de son usage utilitaire.1

Dans les exemples présentés ici on trouvera des formes d’écriture dans lesquelles le code possède une dimension poétique, mais aussi une syntaxe suffisamment correcte pour être « lu » par une machine, puis d’autres exemples dans lesquelles l’auteur joue simplement avec le vocabulaire propre au langage du programmeur ou avec l’aspect esthétique de ces langages

.

Code et langage.

Les langages de programmation comme les langages courants se composent de règles et d’éléments communs à toute langue construite, ils possèdent donc aussi une grammaire, un vocabulaire et des règles de syntaxe propre à leurs constructions. Pour pouvoir faire une lecture du code il est nécessaire d’avoir un certain niveau de connaissances du langage utilisé par son auteur, comme pour tout autre type de langue écrite. D’autre part, en plus de connaître la langue, il faut dans certains cas connaître à la fois le contexte et le « jargon » spécifique employé dans ce contexte. Un texte littéraire, par exemple, ne se lit pas de la même façon qu’un texte de loi, chacun implique un savoir particulier. Pour ce qui est de comprendre la poésie écrite en code, il est donc nécessaire également de connaître le vocabulaire qui lui est propre.

Niveaux de lecture.

Je divise la lecture des langages servant à la pratique de la programmation en trois niveaux : Un premier niveau est celui de la personne qui a des bases techniques ou théoriques dans la rédaction d’un langage informatique, qui est capable d’effectuer une lecture technique du programme écrit, savoir à quoi il sert et quelles seront les opérations que la machine va exécuter.
Un second est celui de la machine, une lecture qui peut se résumer par une première étape qui est celle de l'interprétation du programme, et une seconde qui est l’exécution des commandes contenue dans le programme.
Et un troisième niveau de lecture, moins commun : ici l’écriture du code prend une forme
poétique ; les règles de syntaxe du code se marient librement avec celle du langage courant, au gré des envies et interprétations subjectives de leurs auteurs. Ces codes hybrides peuvent être interprété et exécuter par une machine ou non.

Les avants gardes

J’évoquerais aussi les innovations littéraires développées par les avant-gardes du 20’ siècle : la libération du texte de son contexte, de ses supports et de ses formes conventionnelles. Un bon nombre des propositions qui mélangent informatique et écriture font écho à celles que l’on retrouve chez les dadaïstes, les futuristes

, les lettristes, s’inspirant de la poésie concrète, de la poésie sonore et de la poésie typographique. Marinetti écrit dans le manifeste futuriste, publié le 20 février 1909 « L’imagination sans fil et les mots en liberté » :

Nous voulons aujourd’hui que l’ivresse lyrique ne dispose plus les mots suivant l’ordre de la syntaxe avant de les lancer au moyen des respirations voulues par nous. Nous avons ainsi les Mots en liberté. En outre, notre ivresse lyrique doit librement déformer les mots en les coupant ou en les allongeant, renforçant leur centre ou leurs extrémités, augmentant ou diminuant le nombre des voyelles et des consonnes. Nous aurons ainsi la nouvelle orthographe que j’appelle libre expression. Cette déformation instinctive des mots correspond à notre penchant naturel pour l’onomatopée. Peu importe si le mot déformé devient équivoque. Il se fondra mieux avec les accords onomatopéiques ou résumés de bruits et nous permettra d’atteindre bientôt l’accord onomatopéique psychique, expression sonore mais abstraite d’une émotion ou d’une pensée pure.

En retrouveras aussi des échos dans les calligrammes de Guillaume Apollinaire, le poème d’Edward Estin Cummings « R-p-o-p-h-e-s-s-a-g-r »

ou dans « Un coup de dé n’abolira jamais le hasard » de Stéphane Mallarmé.

On pourrait par exemple comparer les « poésies visuelles et animées », qui se développent en masse avec l’introduction de logiciels commerciaux tel que « Director » puis « flash » à de la poésie concrète ou des calligrammes en mouvement (les outils utilisés tombent d’ailleurs aujourd’hui en désuétude avec l’introduction d’alternatives libres). Des poésies lu par des voix de synthèse pourrait être considéré comme une évolution des poésies sonores, telle la « Ursonate » de Kurt Schwitters poème destiné à n’être lu qu’as haute voix.
Les mouvements d’avant-garde ont amené une nouvelle définition du texte, en proposant une poésie où se superposent les éléments qui composent un langage (sons, mots, lettres) et les qualités de son support ou de ses formes. Ils s’interrogent sur la place du langage dans la production d’une signification artistique.

Code surface Code profondeur.

J’évoquerais enfin la relation entre code surface et code en profondeur développée par Rita Raley 2, « code is a deep structure that instantiates a surface ». À la surface, représentée sur l’écran, se trouvent l’écrit, le symbole, les mots, la présence esthétique du code. Cette surface représente la partie mécanique qui se situe en profondeur. La profondeur c’est ce que fait la machine qui exécute le programme, le moment où le code prend son sens initial, sa dimension technique.