Aux (codes) sources de la poésie

Posté par  (site web personnel) . Édité par BAud, gUI et Ysabeau 🧶. Modéré par gUI. Licence CC By‑SA.
Étiquettes :
29
14
jan.
2025
Culture

Le livre ./code --poetry est un objet original réunissant programmation, poésie et graphisme, que l’amoureux du code peut prendre plaisir à avoir dans sa bibliothèque pour le feuilleter de temps en temps et méditer sur toute cette littérature pour machines qu’il a écrite depuis ses premiers émois binaires. Attelage a priori improbable, Daniel Holden est programmeur et travaille dans les jeux vidéos à Montréal alors que Chris Kerr est un poète qui vit à Londres. Ils ont en fait fréquenté la même école et se connaissent depuis l’âge de onze ans. Explorons leur livre :

  • Daniel Holden et Chris Kerr, ./code --poetry, Broken Sleep Books, 2023, ISBN 978-1-915760-89-0.

Sommaire

Sources et rendus

Un code poem est un code source mélangé à de la poésie, alors on pourrait traduire l’expression par un mot composé comme code-poème ou poème-source. J’utiliserai plutôt cette dernière traduction, le mot « source » ayant clairement des connotations poétiques. Pour ce qui est du concept de code poetry, poésie-source me satisfait moins. À vous de voir.

Dans les poèmes-sources du livre, parfois les mot-clés du langage utilisé font partie du texte du poème, parfois le poème est simplement contenu dans des commentaires que la coloration syntaxique et la mise en page aideront à mettre en valeur. Utiliser des chaînes de caractères est une autre solution facile. On peut aussi généralement utiliser des noms de variables (éventuellement inutilisées), de fonctions, de labels, etc. Dans certains poèmes-sources les parties de code imprononçables sont isolées en haut ou en bas du code source comme dans chernobyl.rkt. Le code est toujours mis en forme avec soin et constitue parfois un calligramme, mot inventé par Apollinaire, par exemple une raquette de tennis pour Processing. Les auteurs se réclament également de la poésie concrète.

On notera que dans le cas où l’on utilise également les mots-clés du langage dans le texte poétique, on sera bien sûr dans la plupart des langages plutôt incité à écrire en anglais. Mais on pourrait aussi considérer leurs mots-clés comme des parties d’un mot, par exemple for(midable=0;;) // j’étais fort minable. Sinon, on pourra utiliser un langage Logo en français ou quelques autres rares langages pour batracien hexagonal que vous pourrez citer en commentaires.

Une contrainte majeure respectée dans le livre est qu’un programme doit être exécutable : il produit alors souvent de l’art ASCII, soit statique soit le plus souvent dynamique comme dans water.c, mais peut aussi produire un texte mixant poésie et codes informatiques (des balises HTML par exemple dans divide.php). Quant au titre du poème, c’est simplement le nom du fichier source.

Les sujets abordés dans ces poèmes sont variés : expériences personnelles, théories du complot, dystopies, technologie et environnement, etc. D’après l’introduction du livre, chaque poème-source et sa sortie sont censés refléter le caractère du langage informatique utilisé. On trouvera pour chacun des vingt-six poèmes le code source sur la page gauche, avec coloration syntaxique, sur fond clair ou sombre, et sur la page droite la sortie. Le livre se double d’un site compagnon https://code-poetry.com/ qui a l’avantage de montrer les versions animées des sorties. Le livre essaie néanmoins de rendre cela par des successions de copies d’écran quand c’est possible. Comme la bannière en haut du site web semble boguée ou incomplète, voici les liens directs vers les vingt-six codes disponibles : Javascript, Julia, PHP, Racket, C++, Piet, Bash, Shakespeare, Perl, C, Haskell, C, J, Batch, Ruby, Objective C, Go, Processing, Ante, Befunge, C#, Python, Python, Erlang, Lua, Brainfuck. On notera que parmi les langages vedettes, le C et le Python ont droit à deux codes. Et on saluera les efforts du programmeur pour arriver à maîtriser les bases de tous ces langages pour la rédaction du livre. Si vous y trouvez un de vos langages préférés, vous pouvez partager en commentaires les particularités ou astuces des codes présentés (on frise parfois l’offuscation).

Autres textes pour « massive nerds »

Après les vingt-six poèmes, nous tombons sur la Code Poetry Manual Page, placée dans la section 7 des man-pages (Overview, conventions, and miscellaneous) : ./code --poetry - A collection of executable art. Chaque poème ou langage a droit à un paragraphe de commentaires (techniques, littéraires ou humoristiques).

Le livre se termine par un texte de chaque auteur. Le premier texte, celui du poète, explique les contraintes liées à la mise en page et à la présentation graphique des codes sources et de leurs sorties à la fois dans le livre et sur le site compagnon, puis se termine par une liste d’autres livres déjà publiés sur le sujet, en insistant sur ce en quoi le présent livre s’en démarque.

Le second texte est écrit par le programmeur du tandem et s’intitule (si l’on interprète le graphisme d’introduction) « I love ASCII ». Il tente d’abord d’expliquer au candide (qui serait tombé par hasard sur ce livre ?) ce qu’est un langage de programmation pour l’introduire à la culture geek. Il explique par exemple la multiplicité des langages et dit :

Les gens ont donc tendance à s’identifier à certains langages plus qu’à d’autres, ce qui entraîne un effet d’amplification. Au fur et à mesure que les gens affluent vers le langage qui leur correspond le mieux, la culture s’homogénéise. Des frontières sont tracées, des nations se développent et des drapeaux sont hissés.
Ces factions sont connues pour se livrer à des « guerres de religion » à propos du meilleur style de programmation. La lecture des arguments est une expérience en soi, quelque part entre un débat théorique entre physiciens des particules et une dispute enfantine sur Porsche versus Ferrari.

Le texte se termine par la déclaration d’amour au code ASCII annoncée en titre, avec des explications intéressantes sur les origines de certains caractères. Mais quand l’auteur taquine sa compagne en lui disant qu’il va se faire tatouer les quatre-vingt-quinze caractères imprimables du code ASCII, elle lui répond en substance : « Please don’t, you massive nerd! »

Finalement, la dernière page imprimée du livre nous invite à nous mettre au travail avec la chaîne de caractères layoutyourunrest écrite en majuscules puis en minuscules. On peut traduire ça par : « exposez votre trouble ». C’est en fait la devise de la maison d’édition Broken Sleep Books (dont le fondateur est insomniaque !), spécialisé dans la poésie et basée au Pays de Galles. Alors lecteur linuxien, es-tu inspiré ? N’es-tu pas en mal de défi depuis que TapTempo a été porté dans ton langage favori ? Are you experienced?

Le logos informatique

Le verbe créateur est bien sûr un thème biblique. Wikipedia rappelle également que :

Le terme « poésie » et ses dérivés « poète », « poème » viennent du grec ancien ποίησις / poíesis par le verbe ποιέω / poiéō, « faire, créer » : le poète est donc un créateur, un inventeur de formes expressives […]

On sait bien que les écrivains créent des mondes, certains poussant même la chose à l’extrême, comme J.R.R. Tolkien qui a créé tout un monde avec sa mythologie, son histoire, sa géographie, ses créatures, ses langues, ses poèmes et chansons, etc. Mais les développeurs ne sont pas en reste. Que le logos informatique soit créateur et crée des mondes, voire le monde, pour le meilleur et pour le pire, quiconque a vécu l’évolution de notre société depuis les débuts du web pourra difficilement en douter.

Notes diverses

  • Difficile après cette conclusion de ne pas avoir envie de réécouter Un autre monde (1984) de Téléphone. « Dansent les ombres du monde ».
  • Cette alliance de la poésie et de la technologie m’a fait aussi penser à Anne Clark, qui dans les années 80 déclamait ses textes dans un style dit « spoken word » sur fond de musique électronique new wave. Son morceau le plus connu est Our Darkness (1984), qualifié plus récemment par certains de proto-house. Elle a continué sa carrière et en 2022 a sorti un album Borderland (Found Music for a Lost World) dans un style musique de chambre. On y trouve en particulier un poème de Mary E. Coleridge (1861-1907) intitulé L’oiseau bleu récité par Anne Clark : The Bluebird. Enfin, sur son site officiel, on voit qu’en 2024 elle a prêté sa voix à des installations réalisées par l’artiste Clemens von Wedemeyer qui s’intéresse entre autres aux relations sociales, comme on peut le voir sur ces photos montrant des graphes : Social Geometry. Malheureusement, on ne l’entendra pas ; il aurait fallu aller à Berlin.
  • Cette dépêche n’est pas sans lien non plus avec Des nouvelles de Fortran n°6 où j’évoquais récemment l’utilisation du langage dans les années 60-70 pour explorer la génération automatique de poèmes.
  • On notera que comprendre la poésie moderne anglo-saxonne peut parfois être ardu, la syntaxe de la langue, déjà plutôt souple, subissant des contorsions et le vocabulaire puisant dans le vaste répertoire de la langue anglaise. Sans compter ici le mélange avec le code source qui brouille parfois la lecture (faut-il lire les mots-clés du langage ?).

Bibliographie

  • # Merci

    Posté par  (site web personnel) . Évalué à 5 (+5/-0).

    Merci pour cette belle découverte !

  • # Achat

    Posté par  (site web personnel) . Évalué à 2 (+0/-0).

    A noter qu'on peut le trouver sur eBay à un prix normal : 22,38 € / livraison gratuite. Chez Jeff, c'est plus cher.

    Ou alors essayer de le commander à son libraire de quartier et être patient : ISBN-13 ‏ 978-1915760890

  • # .

    Posté par  . Évalué à 4 (+2/-1).

    for(midable=+0.;;) minable=1/midable;
    • [^] # Re: .

      Posté par  (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 15 janvier 2025 à 21:59.

      Difficile de faire plus fort ! (encore que Cantor nous dirait peut-être qu'il y a des infinis encore plus grands… Ce qui impliquerait peut-être que l'on pourrait être encore plus minable)

      • [^] # Re: .

        Posté par  . Évalué à 4 (+2/-1). Dernière modification le 18 janvier 2025 à 16:56.

        Puisque tu en parles, il manquait un "for" pour faire minable.

        Il se trouve que les boucles infinies c'est un moyen de se "représenter" ces infinis d'ordre supérieurs … Si tu essayes de numéroter les instructions exécutées dans le programmes (ligne par ligne pour la simplicité), un programme qui termine se termine au bout d'un nombre fini d'instruction, un nombre entier.

        Une boucle infinie dans le programme devrait attendre un nombre infini d'instructions avant de terminer. Mais chaque instruction a son nombre entier. Le truc se corse si on considère un monde mathématique ou cette boucle se termine au bout du premier nombre infini …

        Les instructions qui suivent la boucle sont alors potentiellement numérotées "infini+1" "infini+2" ………

        Une telle numérotation fonctionne après la première boucle infinie, mais si on en enchaîne 2 ? et ben on a du infini + infini + 1 = infini*2+1 , infini + infini + 2 ……

        Là on aurait 2 boucles infinies imbriquées, ce qui nous amènerait sur du infini² je pense, c'est à dire un fort beau score de minablitude, plutôt mauvais pour la santé dont il faut probablement se débarrasser au plus vite pour retrouver un semblant d'estime de soi, rare sont les personnes qui le méritent vraiment sans doute. Comme quoi on peut mixer mathématiques et poésie de manière surprenantes !

        Voir Nombre ordinal ou Ce post de David Madore pour lycéen ou celui là pour une intro plus mathématique de vulgarisation

  • # Déguster

    Posté par  (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 14 janvier 2025 à 20:43.

    A ceux qui ne se sentent pas poète, je suggère de se tourner vers l'estomac et de remplacer le poème par une recette de cuisine. Je pense en particulier au fameux code du donut ASCII qui tourne en 3D, ici en C :

    https://www.a1k0n.net/2011/07/20/donut-math.html

    1. Adaptez le code dans votre langage favori ;
    2. creusez bien le cœur ;
    3. insérez-y la recette à coup de commentaires ou de chaînes et variables inutiles ;
    4. compilez si nécessaire ;
    5. exécutez et dégustez (mais il se peut que vous ayez déjà dégusté lors de l'étape 1).
  • # L'informatique et l'art

    Posté par  (site web personnel) . Évalué à 2 (+1/-0).

    Merci pour cette dépêche. J'aurai peut-être pu mettre ça dans, un jour, nal, mais pas eu le courage.

    Les vacances de fin d'année ont été l'occasion pour moi de me plonger dans l'œuvre de Iannis Xenakis : https://books.google.fr/books?id=y6lL3I0vmMwC&printsec=frontcover&hl=fr#v=onepage&q&f=false et en particulier de découvrir la vivacité encore présente, avec les retranscriptions de FORTRAN moderne de https://github.com/ThemosTsikas/XenakisFreeStochasticMusicFortran/blob/main/XenFSM_1.f de sont travail, qui viennent de faire l'objet d'un article https://books.openbookpublishers.com/10.11647/obp.0390/ch6.xhtml

    Pour finir, un extrait audio : https://www.youtube.com/watch?v=9XZjCy18qrA
    Vous aurez reconnu ST/10=1,080262

    • [^] # Re: L'informatique et l'art

      Posté par  (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 14 janvier 2025 à 23:09.

      Super,

      Vous aurez reconnu ST/10=1,080262

      j'avoue que je ne connais pas assez X. pour reconnaître une oeuvre stochastique plus qu'une autre :-)

      avec les retranscriptions de FORTRAN moderne

      Concernant le XenFSM_1.f que tu cites, il n'y a que les lignes 421-494 qui sont en Fortran actuel, de façon à rendre le programme compilable par GFortran. Le reste c'est du FORTRAN IV (le livre date de 1963 !), et malgré l'option -std=legacy GFortran ne gère pas ces noms de fonctions se terminant par un f.

  • # Poien/poiesis

    Posté par  . Évalué à 3 (+3/-0).

    Juste pour sacrifier au pédantisme de rigueur lorsqu'il s'agit de préciser, il me semble qu'il faut introduire des nuances dans les définitions que donne Wikipedia, en allant les chercher dans un outil qui a fait ses preuves (académiques), le dictionnaire Liddell Scott. Si en effet, on peut faire dériver le terme "poésie" du grec ancien "poien" (et de son substantif "poièsis"), il s'en faut que ce terme signifie "créer"; d'autant que "créer" signifie "produire quelque chose à partir de rien". Or, en grec ancien, "poièn" s'oppose à "praxis", qui signifie l'action au sens par exemple "d'aller au combat", ou "enseigner". De manière générale, les Grecs rangent les "fabricants" du côté du "poien", tandis que les actions non-directement utiles sont rangées dans la colonne "praxis". Aussi est-il étonnant de voir la poésie rangée avec la poterie, la menuiserie et autres coutellerie. Le "poète", pour les Grecs, est un "fabricant", ou un "fabricateur", pas seulement parce qu'il ensorcelle, mais parce que son dispositif langagier "produit" littéralement des images.
    Références : Dictionnaire Liddell-Scott : ποί-ησις, εως, ἡ, fabrication, creation, production, opp. πρᾶξις (action, v. Arist. EN1140a2, Pol.1254a5), [μύρου] Hdt.3.22; νεῶν Th.3.2, etc.; ἡ τῶν ζῴων π. Pl.Smp.197a; ἡ τῶν μελῶν π. Id.Grg.449d; μίμησις π. τίς ἐστιν, εἰδώλων μέντοι Id.Sph.265b, etc.; αἱ ὑπὸ πάσαις ταῖς τέχναις ἐργασίαι ποιήσεις εἰσί Id.Smp.205b. 2. of Poetry, ἡ τῶν διθυράμβων π., τῆς τραγῳδίας, τῶν ἐπῶν, Pherecr.145.10, Pl.Grg.502a, 502b, R. 394c: abs., art of poetry, οἱ ἐν π. γενόμενοι Hdt.2.82, cf. Ar.Ra.868, etc.; οὕτως . . ἀταλαιπώρως ἡ π. διέκειτο Id.Fr.254; οἱ ἄκροι τῆς π. ἑκατέρας, i.e. tragedy and comedy, Pl.Tht.152e; ᾠδαὶ καὶ ἡ ἄλλη π. Id.Phdr.245a; π. ψιλὴ ἢ ἐν ᾠδῇ ib.278c. b. poetic composition, poem, ἐς ποίησιν ἐσενείκασθαι Hdt.2.23, cf. Th.1.10, etc.; περὶ ὧν Ὅμηρος τὴν π. πεποίηκεν Pl.Ion531d: pl., Id.Lg.829e.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.