Loading...

LÍNGUAS ESTRANHAS

Original

Agosto 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 fizeram.

99,5% da programação consiste em colar chamadas para funções de biblioteca. Todas as linguagens populares são igualmente boas nisso. Então, pode-se facilmente passar a carreira inteira operando na intersecção de linguagens de programação populares.

Mas os outros 0,5% da programação são desproporcionalmente interessantes. Se você quer aprender em que consiste, a estranheza das linguagens estranhas é uma boa pista a seguir.

Linguagens estranhas não são estranhas por acidente. Não as boas, pelo menos. A estranheza das boas geralmente implica a existência de alguma forma de programação que não seja apenas a colagem usual de chamadas de biblioteca.

Um exemplo concreto: macros Lisp. Macros Lisp parecem estranhas até para muitos programadores Lisp. Elas não só não estão na intersecção de linguagens populares, mas por sua natureza seriam difíceis de implementar adequadamente em uma linguagem sem transformá-la em um dialeto de Lisp. E macros são definitivamente evidências de técnicas que vão além da programação de colagem. Por exemplo, resolver problemas escrevendo primeiro uma linguagem para problemas desse tipo e, então, escrevendo sua aplicação específica nela. E isso não é 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, mesmo agora, está longe de ser totalmente explorado.

Então, se você quer 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 considere estranha, mas cujo usuário mediano seja inteligente, e então foque nas diferenças entre essa linguagem e a intersecção de linguagens populares. O que você pode dizer nessa linguagem que seria impossivelmente inconveniente dizer em outras? No processo de aprender a dizer coisas que você não conseguia dizer antes, você provavelmente estará aprendendo a pensar coisas que você não conseguia pensar antes.

Obrigado a Trevor Blackwell, Patrick Collison, Daniel Gackle, Amjad Masad e Robert Morris pela leitura dos rascunhos.