Fortransky : un client Bluesky fonctionnel codé en Fortran, le langage de 1957
Former Lab a publié fortransky, un client terminal (TUI) pour Bluesky entièrement écrit en Fortran — un langage IBM de 1957 habituellement réservé aux simulations scientifiques et au calcul haute performance. Le projet est techniquement sérieux : connexion, lecture du flux, likes, reposts, quote-posts, persistance de session, support des tokens JWT et app passwords Bluesky. L'architecture repose sur trois langages couvrant sept décennies : Fortran pour la logique et l'interface, C/libcurl pour les requêtes HTTP, et Rust pour le décodage binaire du firehose AT Protocol. Le parsing JSON est réalisé entièrement à la main en Fortran, sans bibliothèque externe — un exploit technique délibérément absurde mais parfaitement fonctionnel. Former Lab pousse le concept plus loin avec Assemblersky (assembleur) et Cobolsky (COBOL), constituant une collection de clients Bluesky en langages historiques.
Fortransky : un client Bluesky fonctionnel codé en Fortran, le langage de 1957
Résumé rapide
- Former Lab a publié fortransky, un client terminal (TUI) pour Bluesky entièrement écrit en Fortran — un langage IBM de 1957 habituellement réservé aux simulations scientifiques et au calcul haute performance.
- Le projet est techniquement sérieux : connexion, lecture du flux, likes, reposts, quote-posts, persistance de session, support des tokens JWT et app passwords Bluesky.
- L'architecture repose sur trois langages couvrant sept décennies : Fortran pour la logique et l'interface, C/libcurl pour les requêtes HTTP, et Rust pour le décodage binaire du firehose AT Protocol.
- Le parsing JSON est réalisé entièrement à la main en Fortran, sans bibliothèque externe — un exploit technique délibérément absurde mais parfaitement fonctionnel.
- Former Lab pousse le concept plus loin avec Assemblersky (assembleur) et Cobolsky (COBOL), constituant une collection de clients Bluesky en langages historiques.
Contexte
Bluesky, le réseau social décentralisé bâti sur l'AT Protocol, a été conçu dès le départ comme un protocole ouvert : n'importe qui peut implémenter un client tiers, dans n'importe quel langage. La plupart des développeurs choisissent TypeScript, Go ou Rust pour cette tâche. Former Lab a décidé de pousser ce principe à son extrême logique en choisissant Fortran, le premier langage de programmation de haut niveau commercialement disponible, né en 1957 chez IBM sous la plume de John Backus. Le projet fortransky n'est pas une blague de compilation qui s'arrête au premier `Hello World` : c'est un client fonctionnel, publié sur GitHub, qui dialogue réellement avec les serveurs Bluesky. Dans un écosystème tech dominé par des stacks JavaScript de plusieurs centaines de mégaoctets et des applications Electron qui embarquent Chromium entier pour afficher trois boutons, fortransky représente une forme de provocation technique aussi drôle qu'instructive sur ce que 'interopérabilité ouverte' signifie vraiment.
Ce qu'il faut comprendre
Fortran — contraction de FORmula TRANslation — a été conçu pour permettre aux scientifiques d'écrire des formules mathématiques lisibles sans passer par l'assembleur. Soixante-neuf ans plus tard, le langage est toujours activement utilisé : la météorologie numérique, la physique des particules au CERN, les simulations de dynamique des fluides et les modèles climatiques du GIEC tournent en grande partie sur du code Fortran. Sa performance brute sur les calculs numériques en virgule flottante reste difficile à battre. Ce que fortransky démontre, c'est que Fortran moderne — la norme Fortran 2003 notamment — est un langage bien plus complet qu'on ne l'imagine. Le module `iso_c_binding` introduit dans cette norme permet une interopérabilité native avec le C, ouvrant la porte à l'ensemble de l'écosystème des bibliothèques système. C'est ce pont qui permet à fortransky d'appeler libcurl pour les requêtes HTTP, contournant l'absence de support réseau natif dans le standard Fortran. Le client propose deux modes de connexion à Bluesky : le mode jetstream, qui utilise le WebSocket standard de Bluesky pour recevoir les événements en JSON, et le mode relay-raw, qui se connecte directement au relay AT Protocol et reçoit les données en binaire. Pour ce dernier mode, une bibliothèque Rust compilée en statique prend en charge le décodage du firehose — ce flux continu et brut de tous les événements du réseau — avant de le restituer en JSON consommable par le TUI Fortran. L'aspect le plus impressionnant reste le parsing JSON : plutôt que d'intégrer une bibliothèque externe, Former Lab a implémenté un scanner de clés avec suivi de profondeur directement en Fortran. C'est l'équivalent d'écrire un parseur JSON from scratch dans un langage conçu pour résoudre des équations différentielles — techniquement faisable, délibérément masochiste, et finalement respectueux. L'interface TUI (Terminal User Interface) gère la session utilisateur de façon persistante via un fichier `~/.fortransky/session.json`, restauré automatiquement au lancement suivant. Le client supporte les app passwords Bluesky (mécanisme recommandé pour les clients tiers, qui évite d'exposer le mot de passe principal) ainsi que les tokens JWT pour l'authentification.
Détails techniques
L'architecture tri-couche de fortransky est un cas d'école d'interopérabilité entre langages (Foreign Function Interface, FFI). Fortran gère la couche applicative : l'interface TUI, la logique métier, le parsing JSON maison et l'orchestration générale. Via `iso_c_binding`, il appelle des fonctions C qui s'appuient sur libcurl pour toutes les communications HTTP/WebSocket. Pour le mode relay-raw, une bibliothèque Rust compilée en statique (`.a` ou `.so`) est liée à l'exécutable final et prend en charge le décodage du format binaire DAG-CBOR utilisé par l'AT Protocol dans son firehose. Le résultat est un binaire autonome de quelques mégaoctets — sans node_modules, sans runtime embarqué, sans Chromium. La roadmap prévoit un support des images via l'algorithme de dithering Floyd-Steinberg (utilisé sur le premier Macintosh en 1984 pour simuler des niveaux de gris sur un écran 1 bit), un décodeur de frames AT Protocol en assembleur x86-64, et un compositeur de feeds algorithmiques en Fortran pur.
Implications
Au-delà de l'aspect humoristique, fortransky soulève une question sérieuse sur la conception de l'AT Protocol et, par extension, sur la philosophie de Bluesky face à Twitter/X. Le fait qu'un protocole ouvert puisse être implémenté dans un langage de 1957 sans modification côté serveur est la preuve concrète que l'interopérabilité n'est pas un argument marketing mais une réalité technique. Pour les entreprises et institutions qui maintiennent des bases de code Fortran — secteur de la défense, météorologie nationale, recherche académique — cela signifie théoriquement qu'intégrer des flux de données sociales ou de communication dans des systèmes legacy est envisageable sans réécriture complète. Plus symboliquement, fortransky illustre une contre-tendance à la bloatware culture : à l'heure où un client de messagerie peut peser 500 Mo, démontrer qu'un client réseau social fonctionnel tient en quelques mégaoctets de binaire compilé a une valeur pédagogique réelle. La collection Assemblersky/Cobolsky/Fortransky pourrait devenir une référence dans les cursus d'informatique pour illustrer l'histoire des langages et l'interopérabilité des systèmes.
Limites et risques
Fortransky reste un projet expérimental et délibérément insolite : il n'a pas vocation à remplacer les clients Bluesky mainstream. Les limitations sont réelles — Fortran n'a pas de gestion native des threads modernes, le TUI terminal est moins accessible qu'une interface graphique, et la maintenance d'un parseur JSON maison représente une dette technique volontairement assumée. Le projet Cobolsky est décrit par ses auteurs eux-mêmes comme 'beaucoup plus douloureux', ce qui suggère que certains langages posent des limites pratiques sérieuses même dans ce contexte ludique. La sécurité du stockage des tokens JWT en JSON local mériterait également un audit avant tout usage en production.
Conclusion
Fortransky est la démonstration que 'open protocol' n'est pas un slogan : si un langage de 1957 peut dialoguer avec Bluesky en 2026, l'AT Protocol tient ses promesses d'interopérabilité. Former Lab livre ici un projet techniquement rigoureux sous couverture d'absurdisme assumé — et rappelle au passage que la complexité logicielle moderne n'est pas une fatalité. Le code source est disponible sur GitHub.