LANGUES ÉTRANGES
Originalaoût 2021
Quand les gens disent que d'après leur expérience, tous les langages de programmation sont fondamentalement équivalents, ils font une déclaration non pas sur les langages, mais sur le type de programmation qu'ils ont fait.
99,5% de la programmation consiste à assembler des appels à des fonctions de bibliothèque. Tous les langages populaires sont également bons pour cela. Donc on peut facilement passer toute sa carrière à opérer dans l'intersection des langages de programmation populaires.
Mais les autres 0,5% de la programmation sont de manière disproportionnée intéressants. Si vous voulez apprendre en quoi ils consistent, la bizarrerie des langages étranges est un bon indice à suivre.
Les langages étranges ne sont pas étranges par accident. Pas les bons en tout cas. La bizarrerie des bons implique généralement l'existence de quelque forme de programmation qui ne se résume pas seulement à l'assemblage de fonctions de bibliothèque.
Un exemple concret : les macros Lisp. Les macros Lisp semblent bizarres même pour de nombreux programmeurs Lisp. Elles ne font pas seulement partie de l'intersection des langages populaires, mais de par leur nature, elles seraient difficiles à implémenter correctement dans un langage sans en faire un dialecte de Lisp. Et les macros sont définitivement la preuve de techniques qui vont au-delà de la programmation d'assemblage. Par exemple, résoudre des problèmes en écrivant d'abord un langage pour ce type de problèmes, puis en écrivant votre application spécifique dans ce langage. Et ce n'est pas tout ce qu'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 complètement exploré.
Donc si vous voulez élargir votre conception de ce que peut être la programmation, 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 impossiblement inconfortable à dire dans d'autres ? Dans le processus d'apprentissage de la façon de dire des choses que vous ne pouviez pas dire auparavant, vous apprendrez probablement aussi à penser des choses que vous ne pouviez pas penser auparavant.
Merci à Trevor Blackwell, Patrick Collison, Daniel Gackle, Amjad Masad et Robert Morris d'avoir lu des brouillons de ce texte.