Langages Étranges
Août 2021
Quand les gens disent que, selon leur expérience, tous les langages de programmation sont fondamentalement équivalents, ils ne font pas une déclaration sur les langages, mais sur le type de programmation qu'ils ont effectué.
99,5 % de la programmation consiste à assembler des appels à des fonctions de bibliothèque. Tous les langages populaires sont également efficaces pour cela. On peut donc facilement passer toute sa carrière à opérer dans l'intersection des langages de programmation populaires.
Mais les 0,5 % restants de la programmation sont disproportionnellement intéressants. Si vous voulez apprendre en quoi cela consiste, l'étrangeté des langages étranges est un bon indice à suivre.
Les langages étranges ne le sont pas par accident. Du moins, pas les bons. L'étrangeté des bons langages implique généralement l'existence d'une forme de programmation qui ne se limite pas à l'assemblage habituel d'appels de bibliothèque.
Un exemple concret : les macros Lisp. Les macros Lisp semblent étranges même pour de nombreux programmeurs Lisp. Non seulement elles ne se trouvent pas dans l'intersection des langages populaires, mais par leur nature, elles seraient difficiles à implémenter correctement dans un langage sans le transformer en un dialecte de Lisp. Et les macros sont certainement la preuve de techniques qui vont au-delà de la programmation "glue". Par exemple, résoudre des problèmes en écrivant d'abord un langage pour les problèmes de ce type, puis en y écrivant votre application spécifique. Ce n'est pas non plus tout ce que l'on peut faire avec les macros ; ce n'est qu'une région dans un espace de techniques de manipulation de programmes qui, même maintenant, est loin d'être entièrement exploré.
Donc, si vous voulez élargir votre conception de ce que la programmation peut être, une façon de le faire est d'apprendre des langages étranges. Choisissez un langage que la plupart des programmeurs considèrent comme étrange, mais dont l'utilisateur médian est intelligent, puis concentrez-vous sur les différences entre ce langage et l'intersection des langages populaires. Que pouvez-vous dire dans ce langage qui serait incroyablement peu pratique à dire dans d'autres ? En apprenant à dire des choses que vous ne pouviez pas dire auparavant, vous apprendrez probablement à penser des choses que vous ne pouviez pas penser auparavant.
Remerciements à Trevor Blackwell, Patrick Collison, Daniel Gackle, Amjad Masad et Robert Morris pour la relecture des ébauches de cet article.