Introduction
La programmation littéraire est une idée qui consiste à intégrer du code avec de la prose pour que tout lecteur puisse comprendre le fonctionnement et l'objectif d'un code. Cette approche, bien que séduisante, a été limitée dans son adoption en raison de la difficulté de maintenir deux récits parallèles : le code lui-même et la prose.
Contexte Technique
Historiquement, la programmation littéraire est souvent associée aux cahiers Jupyter dans la communauté des sciences de données, où les explications cohabitent avec les calculs et leurs résultats dans un navigateur web. Les modes comme Emacs Org Mode offrent également des fonctionnalités de programmation littéraire polyglotte, permettant l'exécution de langages arbitraires avec des résultats capturés dans le document.
Cependant, même pour les partisans de cette approche, il devient fastidieux d'utiliser Org comme source de vérité pour les projets logiciels plus importants, car le code source devient essentiellement un produit compilé, nécessitant une extraction et une mise à jour après chaque modification.
Analyse et Implications
L'avènement des agents de codage, tels que Claude et Kimi, offre une nouvelle perspective sur la programmation littéraire. Ces agents peuvent comprendre et manipuler la syntaxe Org Mode, permettant ainsi de créer des documents qui expliquent les étapes de test et les résultats de manière interactive.
Les agents peuvent éliminer le problème de maintenance des systèmes parallèles en gérant la tangling et l'extraction du code, ainsi que la mise à jour de la prose pour refléter les changements apportés au code. Cela ouvre la voie à une adoption plus large de la programmation littéraire, potentiellement améliorant la qualité du code généré et facilitant la lecture des bases de code.
Perspective
La question de savoir si les agents rendent la programmation littéraire pratique pour les grandes bases de code est particulièrement intéressante. Avec la capacité des agents à maintenir la prose en synchronisation avec les changements de code, il est possible d'envisager des bases de code qui peuvent être lues comme un récit, offrant une nouvelle approche de la documentation et de la maintenance logicielle.