LINGUAGENS ESTRANHAS
OriginalAgosto de 2021
Quando as pessoas dizem que, em sua experiência, todas as linguagens de programação são basicamente equivalentes, elas estão fazendo uma declaração não sobre as linguagens, mas sobre o tipo de programação que elas fizeram.
99,5% da programação consiste em juntar chamadas a funções de biblioteca. Todas as linguagens populares são igualmente boas nisso. Então, uma pessoa pode facilmente passar toda a sua carreira operando na interseção de linguagens de programação populares.
Mas os outros 0,5% da programação são desproporcionalmente interessantes. Se você quiser aprender do que se trata, a estranheza das linguagens estranhas é uma boa pista para seguir.
Linguagens estranhas não são estranhas por acidente. Pelo menos as boas. A estranheza das boas geralmente implica a existência de alguma forma de programação que não é apenas a junção habitual de chamadas de biblioteca.
Um exemplo concreto: macros Lisp. Macros Lisp parecem estranhas até para muitos programadores Lisp. Elas não estão apenas fora da interseção de linguagens populares, mas, por sua natureza, seriam difíceis de implementar corretamente em uma linguagem sem transformá-la em um dialeto de Lisp. E os macros são definitivamente evidência de técnicas que vão além da programação de colagem. Por exemplo, resolver problemas primeiro escrevendo uma linguagem para problemas desse tipo e, em seguida, escrevendo seu aplicativo específico nela. Nem é tudo o que você pode fazer com macros; é apenas uma região em um espaço de técnicas de manipulação de programas que ainda não foi totalmente explorado.
Então, se você quiser expandir seu conceito do que a programação pode ser, uma maneira de fazer isso é aprendendo linguagens estranhas. Escolha uma linguagem que a maioria dos programadores considera estranha, mas cujo usuário mediano é inteligente, e então se concentre nas diferenças entre essa linguagem e a interseção de linguagens populares. O que você pode dizer nessa linguagem que seria impossivelmente inconveniente de dizer em outras? No processo de aprender a dizer coisas que você não poderia dizer anteriormente, provavelmente você estará aprendendo a pensar coisas que você não poderia pensar anteriormente.
Agradecimentos a Trevor Blackwell, Patrick Collison, Daniel Gackle, Amjad Masad e Robert Morris por lerem rascunhos deste texto.