Loading...

LANGUES ÉTRANGES

Original

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 réalisé.

99,5 % de la programmation consiste à coller ensemble des appels à des fonctions de bibliothèque. Tous les langages courants sont aussi performants dans ce domaine. On peut donc facilement passer toute sa carrière à travailler à l'intersection de langages de programmation courants.

Mais les 0,5% restants de la programmation sont particulièrement intéressants. Si vous voulez savoir 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 résume pas à l'assemblage habituel d'appels de bibliothèques.

Un exemple concret : les macros Lisp. Les macros Lisp semblent étranges, même pour de nombreux programmeurs Lisp. Non seulement elles ne se situent pas à l'intersection des langages populaires, mais de par leur nature, elles seraient difficiles à implémenter correctement dans un langage sans le transformer en un dialecte de Lisp. Et les macros sont sans aucun doute la preuve de techniques qui vont au-delà de la programmation par collage. Par exemple, résoudre des problèmes en écrivant d'abord un langage pour les problèmes de ce type, puis en écrivant votre application spécifique dans ce langage. Et ce n'est pas tout ce que vous pouvez faire avec les macros ; ce n'est qu'une région dans un espace de techniques de manipulation de programmes qui est encore loin d'être entièrement explorée.

Si vous souhaitez élargir votre conception de la programmation, vous pouvez le faire en apprenant des langages étranges. Choisissez un langage que la plupart des programmeurs considèrent comme étrange mais dont l'utilisateur moyen 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 impossible à 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.

Merci à Trevor Blackwell, Patrick Collison, Daniel Gackle, Amjad Masad et Robert Morris pour avoir lu les brouillons de cet article.