Loading...

LENGUAS RARAS

Original

Agosto de 2021

Cuando la gente dice que, en su experiencia, todos los lenguajes de programación son básicamente equivalentes, no están haciendo una afirmación sobre los lenguajes, sino sobre el tipo de programación que han realizado.

El 99,5 % de la programación consiste en unir llamadas a funciones de bibliotecas. Todos los lenguajes populares son igualmente buenos en esto, por lo que uno puede fácilmente pasar toda su carrera trabajando en la intersección de lenguajes de programación populares.

Pero el otro 0,5% de la programación es desproporcionadamente interesante. Si quieres saber en qué consiste, la rareza de los lenguajes raros es una buena pista a seguir.

Los lenguajes raros no lo son por accidente. Al menos, no los buenos. La rareza de los buenos suele implicar la existencia de algún tipo de programación que no consiste simplemente en unir llamadas a bibliotecas.

Un ejemplo concreto: las macros de Lisp. Las macros de Lisp parecen raras incluso para muchos programadores de Lisp. No sólo no están en la intersección de lenguajes populares, sino que por su naturaleza sería difícil implementarlas correctamente en un lenguaje sin convertirlo en un dialecto de Lisp. Y las macros son definitivamente evidencia de técnicas que van más allá de la programación de pegamento. Por ejemplo, resolver problemas escribiendo primero un lenguaje para problemas de ese tipo y luego escribiendo su aplicación específica en él. Pero esto no es todo lo que puede hacer con las macros; es sólo una región en un espacio de técnicas de manipulación de programas que incluso ahora está lejos de ser explorado por completo.

Así que, si quieres ampliar tu concepto de lo que puede ser la programación, una forma de hacerlo es aprendiendo lenguajes extraños. Elige un lenguaje que la mayoría de los programadores consideren extraño, pero cuyo usuario medio sea inteligente, y luego céntrate en las diferencias entre este lenguaje y la intersección de lenguajes populares. ¿Qué puedes decir en este lenguaje que sería imposible decir en otros? En el proceso de aprender a decir cosas que antes no podías decir, probablemente estarás aprendiendo a pensar cosas que antes no podías pensar.

Gracias a Trevor Blackwell, Patrick Collison, Daniel Gackle, Amjad Masad y Robert Morris por leer borradores de este documento.