LANGUES BIZARRES
OriginalAoût 2021
Lorsque les gens disent que, selon leur expérience, tous les langages de programmation sont essentiellement é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 à cela. On peut donc 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 ce que cela implique, la bizarrerie des langages bizarres est un bon indice à suivre.
Les langages bizarres ne sont pas bizarres par accident. Pas les bons, en tout cas. La bizarrerie des bons implique généralement l'existence d'une certaine forme de programmation qui n'est pas simplement l'assemblage habituel d'appels de bibliothèque.
Un exemple concret : les macros Lisp. Les macros Lisp semblent bizarres même pour de nombreux programmeurs Lisp. Elles ne se trouvent pas seulement dans l'intersection des langages populaires, mais par leur nature, il serait difficile de les implémenter correctement dans un langage sans le transformer en un dialecte de Lisp. Et les macros sont définitivement la preuve de techniques qui vont au-delà de la programmation de collage. Par exemple, résoudre des problèmes en écrivant d'abord un langage pour des problèmes de ce type, puis en écrivant votre application spécifique dans ce langage. Ce n'est pas tout ce que vous pouvez faire avec des macros ; c'est juste 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 concept de ce que la programmation peut être, une façon de le faire est d'apprendre des langages bizarres. Choisissez un langage que la plupart des programmeurs considèrent comme bizarre 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 gênant à 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 à 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 ceci.