Lenguajes Raros
Agosto 2021
Cuando la gente dice que, en su experiencia, todos los lenguajes de programación son básicamente equivalentes, están haciendo una declaración no 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 biblioteca. Todos los lenguajes populares son igualmente buenos en esto. Por lo tanto, uno puede pasar fácilmente toda su carrera operando en la intersección de los lenguajes de programación populares.
Pero el otro 0.5% de la programación es desproporcionadamente interesante. Si quieres aprender de qué se compone, la rareza de los lenguajes raros es una buena pista a seguir.
Los lenguajes raros no son raros por accidente. Al menos no los buenos. La rareza de los buenos generalmente implica la existencia de alguna forma de programación que no es solo la unión habitual de llamadas a bibliotecas.
Un ejemplo concreto: las macros de Lisp. Las macros de Lisp parecen raras incluso para muchos programadores de Lisp. No solo no están en la intersección de los lenguajes populares, sino que por su naturaleza serían difíciles de implementar 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 tu aplicación específica en él. Tampoco es todo lo que puedes hacer con macros; es solo una región en un espacio de técnicas de manipulación de programas que incluso ahora está lejos de ser completamente explorado.
Así que si quieres expandir tu concepto de lo que puede ser la programación, una forma de hacerlo es aprendiendo lenguajes raros. Elige un lenguaje que la mayoría de los programadores consideren raro pero cuyo usuario mediano sea inteligente, y luego enfócate en las diferencias entre este lenguaje y la intersección de los lenguajes populares. ¿Qué puedes decir en este lenguaje que sería increíblemente inconveniente decir en otros? En el proceso de aprender a decir cosas que antes no podías decir, probablemente aprenderás 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 esto.