Programmation lettrée
La programmation lettrée, comme tout ce qui est désuet, nous intéresse.
L’un peut lire cette introduction pour découvrir le sujet.
Il semblerait que parmis ce qui a été fait en son nom, beaucoup était médiocre. Nous lisons, par exemple, sur le blog d’un célèbre informaticien, But Objective Caml is already highly structured, and this [la capacité à réorganiser les fragments de code] is no more useful
. Non pas que nous voulons lui jeter la pierre, mais c’est précisément ici que nous sommes en désaccord. Si nous voulons présenter le code de manière non-linéaire, ce n’est pas parce que notre langage ne dispose pas de module assez fin pour exprimer directement la structure du programme, mais parce que c’est plus simple pour l’expliquer. C’est le chemin qu’ont suivi presque tous les outils se revandiquant de la programmation lettré, ce qui fait de ce paradigme pas grande chose d’autre que de la génération de documentation glorifié. L’objectif est toujours de proposer un outil le plus neutre et engendrant le moins de frictions possible. En résumé, là où la majorité des programmeurs vendent la programmation lettrée comme un moyen de produire et de la doc, et du code, nous proposons nous de concevoir la programmation lettrée comme un style de programmation mettant l’emphase sur l’explication du code aux humains plutôt qu’aux machines.
Certains pensent qu’un bon programme doit être suffisemment clair pour ne pas nécessiter de documentation.C’est une idée intéressante mais qui s’applique surtout aux langages simplistes dont une connaissance rudimentaire suffit à deviner quelles abstractions sont utilisés pour faire quoi. Les langages de programmations que nous utilisons aujourd’hui, plus riches, proposent naturellement différentes façons de faire la même chose. Une plus grande expérience est nécessaire pour deviner ce qui se passe au sein d’un programme. Or, justement, nous ne programmons pas pour les nerds. Les nerds nous détestent, nous détestons les nerds.
La programmation lettrée s’inscrit sans doutes dans notre projet de démystification de l’informatique. Ce paradigme de programmation vient participer à brouiller la ligne entre le simple consommateur (utilisateur) et le producteur (programmeur). Le programme, avant d’être un exécutable, est un concept expliqué à travers un texte qui amène à sa réalisation (son code). L’informatique a évolué en prenant le pas sur elle-même, les réalisations dépassant toujours leurs idées. C’est ce procédé qui nourrit le concept d’informatique non pas comme un outil mais comme quelque chose d’auto-suffisant, travaillant pour lui-même. On ne cherche pas à résoudre des problèmes de notre vie, mais à faire évoluer cette abstraction -- ou alors, les deux à la fois. Nous pensons que remettre au centre de la programmation non pas le code mais l’idée nous pousse à concevoir l’informatique comme un outil.
Nous expérimentons actuellement avec ce paradigme et testons notamment des outils. Si vous en connaissez, ou que voulez discuter, n’hésitez pas à envoyer un mail à la liste de diffusion.