Vue lecture

Aux (codes) sources de la poésie

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

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Nouvelle année, vœux 2025 et accomplissements passés et futurs

    Traditionnelle période de vœux lors du changement d’année. Voyons ce qui devrait… changera… pourrait éventuellement changer ou non. Donc revenons cette année encore sur nos accomplissements passés et futurs et de ce que nous aimerions voir plus sur notre site préféré.

    Bonne année 2025

    Cinq personnes se sont prêtées au jeu de cette dépêche pas vraiment de vœux, mais un peu quand même. En vrac dans les accomplissements : hurl, cadran solaire, programmes électoraux, Amstrad CPC, financement européen, Haiku, CV, Transimpressux, visualisation scientifique, XMPP, commentaires de code, docker, menstruation, vélo, documentation, éditeur pixel art, assembleur, OSXP, Smalltalk. L’année qui vient, sur LinuxFr.org, promet d’être (fe)diverse, événementielle, ferroviaire, bureautique, réparable, un peu rouillée, résolue et motivée.

    Sommaire

    Benoît Oumph Sibaud

    Accomplissements, réalisations, progrès de l’année 2024

    Le retard côté adminsys pour LinuxFr.org se réduit, de même pour celui sur le code (évidemment ça ne va jamais assez vite, c’est le principe) (voir les dépêches sur nos services img et epub). J’ai eu l’occasion de jouer un peu avec Hurl pour des tests HTTP (voir les dépêches précédemment mentionnées et celle sur Hurl 6.0.0) et docker et docker compose, en plus de faire un peu de Go. J’ai pu de nouveau être présent pour le stand et les animations sur place lors de la conférence Open Source eXPerience Paris et c’était bien de revoir d’autres personnes de l’équipe, de notre lectorat, des libristes connus de longue date et des nouvelles personnes (et de goûter la bière de nos 25 ans aussi). Le 28 juin 2024, la politique de minimisation des données mise en place un an plus tôt (pour les 25 ans du site) s’est appliquée pour les comptes déjà fermés préalablement (prochaine étape en juin 2026).

    Je suis aussi content de ma dépêche sur le contenu programmatique lors des élections européennes de juin. Je mentionnerais aussi dans les sujets importants la question du programme de financement européen Next Generation Internet (NGI) et la dépêche sur le décès de lunar, un hacktiviste pédagogue.

    Ce que je voudrais faire, apprendre ou approfondir en 2025

    Déjà dans les reports de 2024, je voudrais m’intéresser au Fediverse et à ActivityPub peut-être, et peut-être à Gemini (le protocole) ? Il y a des travaux en cours sur le service de partage sur les réseaux sociaux share. Par contre j’ai donné moins de conférences en 2024 pour LinuxFr.org et globalement assisté à moins d’événements : donc je réitère l’ambition 2025 de rencontrer plus régulièrement le lectorat ou les personnes contribuant au site ou des publics nouveaux, car c’est appréciable pour le moral et la motivation.

    Des contenus que je voudrais voir plus sur LinuxFr.org (type de contenu, sujet, etc.)

    Je peux reprendre in extenso mon propos de l’année dernière : je serais intéressé d’avoir plus de contenus (idéalement des dépêches) sur la réparation et la réutilisation, sur de l’informatique sobre, sur des sujets qui ne me viendraient pas à l’idée (sérendipité), sur les politiques autour du numérique et des données, sur des retours d’expérience et sur les sujets qui vous passionnent vous.

    Ysabeau

    Accomplissements, réalisations, progrès de l’année 2024

    Quelque chose dont je suis plutôt franchement fière c’est d’avoir parlé d’un sujet typiquement féminin sur LinuxFr.org tout en restant parfaitement dans le thème du site et celui de la Journée internationale des droits des femmes. Le dessin de l’illustration, qui met les points sur les « i » m’a beaucoup amusé. La qualité de l’accueil de la dépêche sur LinuxFr.org et ailleurs m’a ravie. Dans la série réalisations : les portraits que j’ai faits, quelque chose que j’entends continuer, ont été une grande source de connaissances en ce qui me concerne. Pour finir le modèle-tutoriel de CV – Fiche de candidature qui me trottait dans la tête depuis un certain temps.

    Concernant les progrès : je pense avoir atteint, en matière d’EPUB, le niveau pour mes besoins. Un jour il faudra que je fasse une dépêche sur ce sujet et sur Sigil. Et j’ai bien progressé avec Inkscape, et même en XML hourra !

    Ce que je voudrais faire, apprendre ou approfondir en 2025

    Je n’ai pas fini la série Transimpressux, je vais continuer à travailler dessus. En 2024, j’avais aussi pour objectif, désir, de me pencher sur l’informatique et le handicap, l’exploration de l’espace, entre autres sujet, m’en a éloignée. À voir si j’arrive cette année à mieux explorer le terrain. J’ai aussi dans l’idée de rédiger quelque chose sur l’art la manière de faire des modèles pour LibreOffice et le site des extensions de LibreOffice. Parce que ce n’est pas si évident. Peut-être même, si je trouve comment faire, transformer en extension certaines de mes séries de modèles.

    Quoi d’autre ? Ah oui et faire des modèles de jouets et miniatures (pour maisons de poupée par exemple) pour Draw et Inkscape qui pourraient être faits soit en imprimant le modèle sur papier et en utilisant des matériaux de récupération (cartons divers) pour la réalisation, soit en utilisant un graveur (découpeur ?) laser. Améliorer peut-être ma connaissance du XML et finir de lire les spécifications de l’ODF peut-être.

    Des contenus que je voudrais voir plus sur LinuxFr.org (type de contenu, sujet, etc.)

    Comme pour l’année dernière, j’aimerais qu’on explore plus les questions de réparabilité très concrètement et sur les plans techniques et juridiques. Il y a aussi la question du handicap et de l’informatique qui mérite d’être plus mise en avant. Et plus de tutoriels.

    vmagnin

    Accomplissements, réalisations, progrès de l’année 2024

    J’ai publié en mars 2024, avec mon coauteur Ali, une bibliothèque en Fortran orienté objet nommée ForColormap qui propose des palettes de couleurs pour la visualisation scientifique. Côté hobbys, j’ai bien progressé dans mes projets musicaux ForMIDI et ForSynth (qui génère des WAV), avec à nouveau l’introduction de l’orienté objet. C’est une façon d’étudier la musique : programmer c’est comprendre. J’ai aussi avancé sur mon projet de cadran solaire ForSundial, le seul que j’ai hébergé pour l’instant sur Codeberg. J’espère avoir le temps un jour d’aller au-delà du prototype en peuplier (il paraît que la découpe laser peut graver du marbre). Ah oui, je me suis aussi acheté une carte Greaseweazle 4.1 pour récupérer le contenu de disquettes des années 80 (en particulier au format Atari ST, non lisible sur PC), mais je n’ai toujours pas eu le temps de faire ce que je voulais. Chacun de ces points pourrait faire l’objet d’un journal, mais le temps, c’est ça le problème…

    Sur LinuxFr.org, je n’ai publié que ma dépêche pseudo-périodique « Des nouvelles de Fortran n°6 » pour Noël, ainsi que deux journaux, dont un long qui est la suite de celui de novembre 2021 sur le pulsar iconique CP 1919 et qui parle de beaucoup de choses : histoire de l’informatique, musique électronique, plongée dans les décennies 70 et 80 et ce qu’elles ont à nous dire sur le monde d’aujourd’hui (similarités et différences), etc.

    Mais j’ai en fait aussi participé plus ou moins à d’autres dépêches qui m’intéressaient : relecture, discussion ou rédaction. C’est sympa à faire et c’est un peu comme y avoir accès en avant-première. N’hésitez pas à franchir le pas (onglet Rédaction) si ce n’est déjà fait.

    Ce que je voudrais faire, apprendre ou approfondir en 2025

    Je commence à apprendre le Rust, non pas tellement parce que j’en aurais un quelconque besoin côté professionnel ou côté hobby, mais avant tout pour étudier de nouveaux (pour moi) concepts comme les génériques, les traits, les motifs, la possession et la durée de vie, les fermetures, etc. J’ai emprunté un bon livre : Développez avec Rust traduit récemment chez Dunod. La dernière fois que j’avais vraiment été excité d’apprendre un nouveau langage, c’était avec Python il y a quinze ans (et les expressions régulières en même temps). Après le serpent, je prendrais bien un peu de crabe…

    Sinon, j’aimerais bien avoir le temps de faire en 2025 ce que je n’ai pas eu le temps de faire en 2024 :-) Mais j’ai peut-être tort, je devrais peut-être vouloir faire moins de choses pour avoir plus de temps… à ne rien faire (en plus c’est écologique). Être idle.

    Des contenus que je voudrais voir plus sur LinuxFr.org (type de contenu, sujet, etc.)

    Donc des journaux ou dépêches sur Rust :-) J’aime bien aussi ce qui concerne l’histoire de l’informatique, et ce qui sort des clous comme l’histoire des sciences, les arts, en particulier la musique, etc. L’informatique étant quasiment partout, on trouve facilement un prétexte pour parler de n’importe quoi… On pourrait publier des critiques de livres autour de l’informatique ou de la science et la technologie, et pourquoi pas de films ou autres œuvres. Enfin, des bricolages en FabLab peuvent être intéressants.

    gUI

    Une version très raccourcie pour moi, je voudrais me concentrer particulièrement sur une chose cette année :

    Ce que je voudrais faire, apprendre ou approfondir en 2025

    De la documentation !

    Plusieurs points dans ce sens :

    • Améliorer mes commentaires (j’y documente déjà tous les pièges à cons, mais je continue d’avoir du mal à me comprendre quand je déterre des vieux bouts de code)
    • Améliorer mes notes perso : aujourd’hui j’utilise nb pour ça. C’est pas mal, mais c’est un peu le foutoir, c’est pas centralisé, bref… peut mieux faire
    • Améliorer la doc de mon infra domestique : oui en bon vieux gros Geek c’est pas simple chez moi. Alors déjà quand je dois remettre les mains sur un truc qui tourne sans soucis depuis des années j’ai des gouttes de sueurs, je n’ose imaginer s’il m’arrive quelque chose (eh oui, soyons prévoyants) comment ma famille (pourtant pas des manches) va s’en sortir.
    • Quelques autres projets de doc un poil hors-sujet ici (livret d’accueil dans mon association sportive par exemple)

    PulkoMandy

    Accomplissements, réalisations, progrès de l’année 2024

    J’ai continué à travailler sur l’adaptation de vbcc et vasm pour la console de jeux VTech V. Smile. L’assembleur et le compilateur C sont fonctionnels et on peut compiler le système d’exploitation Contiki avec. Le code généré n’est pas du tout optimisé pour l’instant.

    J’ai un peu avancé sur mon interpréteur pour les fictions interactives du jeu Lectures Enjeu mais il y a des fonctionnements que je n’arrive pas à comprendre: si je fais fonctionner un jeu, j’en casse un autre :(

    J’ai publié une nouvelle version de l’éditeur pixel art GrafX2, il n’y en avait pas eu depuis 2021. Je ne fais plus grand-chose pour ce projet, je pense que le logiciel est assez complet.

    Je continue bien sûr à travailler pour Haiku: entre autres sur les dépêches Linuxfr, le navigateur web WebPositive, et le client XMPP Renga. Je n’ai jamais le temps et la motivation de participer autant que je le voudrais.

    Enfin, j’ai entrepris la réalisation d'un interpréteur Smalltalk pour Amstrad CPC. Il fonctionne, mais il est beaucoup trop lent.

    Et comme il n’y a pas que l’informatique dans la vie, j’ai traversé la France en vélo pour me rendre de Toulouse à Avranches, soit environ 900km en une douzaine de jours. J’ai eu plus de problèmes au retour en train qu’à l’aller en vélo.

    Ce que je voudrais faire, apprendre ou approfondir en 2025

    Du côté des problèmes techniques: le système de sauvegarde externe de mon serveur auto hébergé est cassé. Il faut que j’investigue les scripts perl fournis par le service de sauvegarde que j’ai choisi (qui a l’avantage d’être vraiment pas cher, et les inconvénients qui vont avec).

    Je vais sûrement continuer à travailler sur les projets mentionnés ci-dessus (et quelques autres) et essayer de ne pas en commencer de nouveaux avant d’avoir fini quelque chose. J’ai beaucoup d’idées mais pas le temps pour tout faire.

    Je vais essayer de lire les livres que j’ai gagnés grâce à mes contributions à LinuxFr.org et que je n’ai pas tous eu le temps d’ouvrir :(

    Je vais également essayer de faire du vélo plus régulièrement, ces derniers temps la motivation m’a beaucoup manqué pour ça.

    Des contenus que je voudrais voir plus sur LinuxFr.org (type de contenu, sujet, etc.)

    J’aimerais lire des choses sur d’autres systèmes d’exploitation: Linux, BSD, mais aussi Serenity, ReactOS ou Redox OS et sûrement plein d’autres dont je n’ai pas entendu parler.

    (mais ce serait en plus des contenus existants sur plein de sujets, et des débats dans les commentaires, qui sont passionnants).

    Pour finir

    Nous vous souhaitons tout de même la meilleure année possible (on oscille entre être rebelles et conformistes). Et, bien évidemment, n’hésitez pas à « continuer » cette dépêche dans les commentaires.

    Et un merci à toutes celles et ceux qui font de LinuxFr.org un site enrichi en sérendipité et surprises.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Des nouvelles de Fortran n°6 - décembre 2024

    Que s’est-il passé dans le monde du Fortran depuis décembre 2023 ? Nous avons un centenaire à fêter (non, ce n’est pas le vieux barbu coincé dans la cheminée), ainsi qu’un nouveau Roi (il n’est pas libre, mais tant pis pour lui, il n’avait qu’à choisir de vivre dans une amphore). Sans oublier un artiste octogénaire (on en profite pour explorer les liens entre FORTRAN et art dans les années 60-70). Et on déconstruit enfin un mythe sur les ordinateurs des sondes Voyager.

    Sommaire

    John Backus est né il y a cent ans

    John Backus (1924-2007), père du langage, est né à Philadelphie le 3 décembre 1924. Le site mathématique MacTutor propose une biographie intéressante (en anglais) du mathématicien/informaticien, avec des citations. Par exemple, à propos de ses années dans le secondaire :

    I flunked out every year. I never studied. I hated studying. I was just goofing around. It had the delightful consequence that every year I went to summer school in New Hampshire where I spent the summer sailing and having a nice time.

    Sur le front des compilateurs

    Compilateurs opérationnels

    Le Roi est mort, vive le Roi ! Le compilateur classique Intel ifort n’est plus maintenu à partir d’Intel® Fortran Compiler 2025.0, sorti le 31 octobre 2024. Sa version définitive est la 2021.13. C’est son dauphin Intel ifx, basé sur LLVM, qui prend le relais, après être sorti de sa version beta avec la 2022.0.

    Mais « si je n’étais Intel ifx, je voudrais être GNU Fortran ». Au moins, l’animal est libre, dans l’immensité des savanes. Certains anciens prétendent même en avoir aperçu un assis en tailleur et jouant de la flûte. GFortran, compilateur Fortran de la GCC, en est à la version 14.2. On notera des améliorations concernant OpenMP et OpenACC. Si le compilateur accepte désormais l’option -std=f2023, ne nous réjouissons pas trop vite. Pour l’instant la nouvelle fonctionnalité gérée concerne l’augmentation de la longueur des lignes à 10 000 caractères (au lieu de 132 depuis Fortran 90) et des instructions à un million de caractères (elles peuvent être continuées sur un grand nombre de lignes). À quoi ça sert ? C’est utile pour des codes générés automatiquement.

    En gestation

    Il faut 22 mois de gestation pour un éléphant, mais beaucoup plus pour un nouveau compilateur Fortran ! On doit non seulement implémenter près de 700 pages de norme technique, mais aussi tout un tas de choses externes telles que MPI, OpenMP ou OpenACC pour le calcul parallèle, et gérer de nombreuses architectures matérielles. On comprend donc que les motivations sous-jacentes doivent être puissantes pour s’attaquer à un tel chantier et on comprend pourquoi la plupart des nouveaux compilateurs s’appuient sur l’infrastructure LLVM.

    L’avancée du travail sur le nouveau Flang pour LLVM est décrite dans le dernier Flang Liaison Report au J3 (24/10/2024). Et d’après Phoronix, flang-new a été rebaptisé flang pour la version LLVM 20.1 du printemps prochain, ce qui est de bon augure. Flang est un projet soutenu par NVIDIA et le Département de l’Énergie américain.

    AMD travaille de son côté à sa version Next-gen Fortran compiler permettant le délestage (offloading) des instructions OpenMP sur ses GPU. Bref, c’est chaud dans le monde du calcul parallèle sur processeur graphique !

    Le développement du compilateur LFortran continue. Il passera en version beta quand il sera capable de compiler une sélection de dix bibliothèques Fortran matures : en décembre 2023, il en était à 4/10. Il est désormais à 7/10. Et il a été annoncé en novembre 2024 que LFortran gérait désormais toutes les fonctions intrinsèques de Fortran 2018. Le même blog présente également quelques démos en ligne du back-end WebAssembly de LFortran.

    Fortran 2028

    Alors que les compilateurs n’implémentent pour l’instant que certaines parties de Fortran 2023, la prochaine mouture est déjà en cours d’élaboration. Et on commence à voir l’appellation Fortran 2028 apparaître dans les documents du comité J3 à la place de 202Y. Dans la liste des caractéristiques retenues par le groupe de travail WG5 fin juin, on trouve en particulier :

    • des templates pour la programmation générique ;
    • la gestion des tâches asynchrones ;
    • un pré-processeur Fortran ;
    • la possibilité de définir les KIND utilisés par défaut dans un programme (on pourrait par exemple demander dans le code lui-même que tous les REAL soient considérés comme des REAL64, ou REAL32 ou REAL128).

    La proposition d’ajouter au langage des entiers non signés a disparu (pour l’instant ?), malgré l’option expérimentale -funsigned qui sera disponible dans GFortran 15.

    Communauté Fortran-lang

    Projets Fortran-lang

    L’organisation Fortran-lang est désormais financée par l’organisation américaine à but non lucratif NumFOCUS.

    fpm

    Le gestionnaire de paquets Fortran fpm est disponible en version 0.10.1 depuis mars 2024. Une liste d’environ 300 projets utilisant fpm est disponible ici.

    stdlib

    La bibliothèque standard stdlib est sortie en version 0.7.0 début juillet. Elle apporte entre autres choses les valeurs CODATA 2022 des constantes physiques fondamentales. Ces valeurs, utilisées par tous les physiciens, sont mises à jour par le NIST (National Institute of Standards and Technology) tous les quatre ans, au fil des progrès en métrologie.

    Quelques projets divers

    • Fortitude, un linter écrit en Rust, est disponible en version 0.6.2.
    • Le projet fprettify, un utilitaire de formatage automatique de code Fortran, écrit en Python, a été officiellement adopté par l’organisation Fortran-lang.
    • forgex, un moteur d’expressions régulières entièrement écrit en Fortran, est disponible en version 3.5.

    Art et Fortran

    C’est Noël, on veut ce qui n’a pas de prix, on veut du beau ! Que la technologie serve à faire du beau.

    Earl Einhorn, 81 ans, crée ses images à l’aide de programmes Fortran depuis 1989, et utilise Photoshop pour finaliser les couleurs. Ses œuvres actuelles comportent souvent des visages, leur symétrie facilitant son travail depuis la perte de son œil droit. Vous pouvez voir son travail sur son site. Il y explique qu’actuellement il crée typiquement des images de 12 000 sur 15 000 pixels, ce qui lui permet de les imprimer en 300 PPP pour des tableaux d’environ un mètre de côté.

    Voilà qui peut sembler original, mais dans les années 60-70 de nombreux artistes ont en fait utilisé FORTRAN 1 pour explorer ce que l’ordinateur, machine alors révolutionnaire et rare, pouvait apporter à la musique, aux arts graphiques et à la poésie. Pourquoi FORTRAN ? C’était simplement le langage dominant et facile à apprendre à l’époque, le Python des Beatles !

    En 1963, Iannis Xenakis (1922-2001) publie son livre Musiques formelles : nouveaux principes formels de composition musicale. Le chapitre IV « Musique Stochastique libre, à l’ordinateur » contient le listing du programme en FORTRAN IV utilisé pour générer sur IBM 7090 une œuvre de musique stochastique intitulée ST/10=1,080262. Il est maintenant en ligne sur GitHub. Au fait, bonne écoute !

    Pierre Barbaud (1911-1990) a également utilisé FORTRAN pour composer par exemple une oeuvre de musique électronique intitulée Terra incognita ubi sunt leones (1973). Le début du code est visible ici (hum… que penser de cet appel répété à cette procédure : CALL GIRL(IDIV) ?). Bonne écoute !

    Au niveau des arts graphiques, on pourrait penser que les imprimantes de l’époque étaient rudimentaires, mais ce serait oublier les traceurs (plotters), ou tables traçantes, qui permettaient de tracer des dessins techniques avec précision 2. Les artistes programmeurs (ou programmeurs artistes) vont s’en emparer.

    Dans les années 60, l’artiste japonais Hiroshi Kawano a travaillé sur sa série Artificial Mondrian. Le site du Zentrum für Kunst und Medien Karlsruhe présente son oeuvre KD 52, réalisée en 1969 à l’aide d’un programme en FORTRAN IV pour les formes et peinte ensuite à la gouache. On pourra lire cet article de blog : « The man-machine: Hiroshi Kawano’s algorithmic Mondrian » par Claudio Rivera.

    En 1962, A. Michael Noll (Bell Labs) a commencé à utiliser un Stromberg Carlson SC-4020 microfilm plotter pour faire des dessins abstraits. Un faisceau d’électrons dessinait les formes sur un écran cathodique qui lui-même impressionnait un microfilm. Il rend compte de ses premières expérimentations dans ce mémo daté du 28 août 1962, avec bien sûr un court code FORTRAN.

    On peut également citer l’Allemand Manfred Mohr, né en 1938. Voir son site et l’article de blog « Surveying Manfred Mohr’s Five-Decade Collaboration with the Computer » (2019). Citons aussi le Slovène Edward Zajec (1938 – 2018) dont on peut voir des oeuvres sur cette page. Son assistant Matjaž Hmeljak a continué sa carrière dans l’art génératif au moins jusqu’en 2020.

    Les œuvres de Vera Molnár (1924-2023), pionnière de l’art génératif, ont été exposées à la biennale de Venise en 2022. Elle a écrit en 1974-1976 un programme baptisé Molnart avec son mari :

    François Molnar et moi avons conçu et mis au point un programme souple qui permet une expérimentation picturale systématique. Il est écrit en Fortran pour ordinateur de grande capacité relié à un écran de visualisation et à un traceur.

    Voir également :

    Dans le domaine des arts graphiques, vous trouverez plus d’œuvres numériques réalisées entre 1963 et 1980 à l’aide de FORTRAN sur le site compart.

    Même les poètes ont utilisé FORTRAN. L’écrivain portugais Pedro Barbosa a ainsi publié en 1977 un livre intitulé A literatura cibernética 1. Autopoemas gerados por computador. On peut y lire des extraits de code. Et le poète brésilien Erthos Albino de Souza a utilisé FORTRAN et PL/1 pour créer des poèmes graphiques.

    J. M. Coetzee, prix Nobel de littérature 2003, a commencé sa carrière comme programmeur chez IBM dans les années 60. Il a expérimenté la génération automatique de poésie : « The line generator was composed in a combination of FORTRAN-style pseudocode and assembly code », comme rapporté dans cet article :

    Déconstruction

    Depuis 2013 circulait l’idée que les logiciels internes des sondes spatiales Voyager 1 et Voyager 2, lancées en 1977, avaient été écrits originellement en FORTRAN. Le buzz remonte apparemment à un article intitulé « Interstellar 8-Track: How Voyager’s Vintage Tech Keeps Running » paru dans Wired. Charles A. Measday a publié sur son blog début 2024 un article approfondi intitulé « Voyager and Fortran 5 » qui déconstruit ce mythe urbain. Si une partie des logiciels au sol ont été écrits à l’époque en FORTRAN, les ordinateurs de bord des sondes étaient et sont toujours programmés en assembleur, ainsi qu’à l’aide de séquences de commandes spécifiques aux sondes.

    La citation de Backus

    Terminons en revenant au point de départ de la dépêche, avec une citation de Backus issue d’une de ses dernières interviews en 2006. Voici son bon conseil pour les jeunes :

    Well, don’t go into software. It’s just such a complicated mess that you just frazzle your brains trying to do anything worthwhile.


    1. On écrit le nom du langage en majuscules pour la période avant Fortran 90. 

    2. Ce n’est peut-être pas un hasard si le langage Logo, avec sa célèbre tortue, est créé à cette époque (1967). 

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌