Lingua::Romana::Perligata de Damian Conway: Perl en Latín
11 de septiembre de 2024 • fjbalon
Lingua::Romana::Perligata es un módulo del lenguaje de programación Perl creado por Damian Conway, un experimentado programador australiano que forma parte de la comunidad de Perl, autor de Perl Best Practices
En términos generales un filtro de código fuente (source filter) que puede ser invocado al inicio del programa
De tal forma que el resto del programa se puede escribir usando gramática y vocabulario latino en lugar de la sintaxis típica de Perl. En vez de usar signos de puntuación propios del lenguaje, como
He aquí un hola mundo latino:
#!/usr/bin/perl
use Lingua::Romana::Perligata;
meum saluto = "Salve, Mundus!\n" scribe.
Y un código con algo más de contenido quedaría como:
#!/usr/bin/perl
use Lingua::Romana::Perligata;
adnota Illud Cribrum Eratothenis
maximum tum val inquementum tum biguttam tum stadium egresso scribe.
da meo maximo vestibulo perlegementum.
maximum comementum tum novumversum egresso scribe.
meis listis conscribementa II tum maximum da.
dum damentum nexto listis decapitamentum fac
sic
lista sic hoc tum nextum recidementum cis vannementa listis da.
dictum sic deinde cis tum biguttam tum stadium tum cum nextum
comementum tum novumversum scribe egresso.
cis
Evidentemente, esto no es más que «esolang», o sea, un lenguaje de programación experimental y tiene poca utilidad práctica; no me imagino sustituir un sistema industrial con programación en Latín, y esto es porque, tal y como suena, parece una broma. Sin embargo, ¿lo es? Lo gracioso es que existe una corriente, evidentemente muy minoritaria y marginal, del cosmos de programación y scripting en disyunción con el cosmos de lenguas clásicas y filología, que defienden que el latín es un lenguaje superior al inglés para basar nuestras sintaxis de programación.
Y yo, sinceramente, estoy de acuerdo. El latín es una herramienta gramaticalmente superior para expresar lógica, relaciones y estructuras complejas:
El inglés, lenguaje en el que basamos nuestra computación mundial, es una lengua analítica y muy dependiente del orden de las palabras y de los signos de puntuación; por contraposición, el latín es un lenguaje altamente flexionado: las declinaciones y conjugaciones indican el rol de cada elemento en sí mismo, permitiendo una libertad de orden sin perder significado. En términos de programación, esto provocaría menos errores sintácticos por disposición, un código más natural y legible y mayor robustez incluso en refactorizaciones o reorganizaciones del código.
Además, el latin tiene una capacidad declarativa superior, hecho que casa nativamente con la necesidad del lenguaje de programación. Así, el programador puede escribir con más claridad qué quiere que ocurra, en lugar de hacerlo paso a paso, que sería programación imperativa. Como decía, esto encaja perfectamente con paradigmas modernos como la programación funcional, lógica o, claro está, declarativa.
La versatilidad y experividad son también elementos que robustecen más el lenguaje latino como lenguaje de programación: la riqueza morfológica propia del lenguaje permite crear palabras nuevas con precisión quirúrgica, lo que es ideal para nombrar conceptos abstractos sin colisiones ni ambigüedades, creación de APIs o librerías con nombres realmente descriptivos o incluso expresar matices lógicos que en inglés requieren de convenciones más artificiales.
Otros beneficios cognitivos serían el entrenamiento del pensamiento lógico y preciso, como fue precisamente el latín la lengua de la filosofía, del derecho y de la ciencia; y conectaría la programación con el pensamiento clásico-matemático de una forma aún mayor, otorgando una adhesión de la programación computacional con la ciencia clásica y la lógica aristotélica más de lo que ya está adherida esencialmente.
Desde luego concluyo con que sería un ejercicio sumamente interesante y desafiante, quizás en un futuro tras un cierto renacimiento moderno pueda darse esta unión.