No todos los lenguajes de programación usan palabras inglesas para sus operadores y funciones. Algunos usan palabras árabes, rusas, chinas e incluso latinas.
Los lenguajes de programación se crean con diferentes propósitos:
- Lenguajes para la enseñanza: para que a los escolares y estudiantes les resulte más fácil comprender los principios de la programación. La mayoría son de este tipo.
- Lenguajes de programación esotéricos: cuando los creadores deciden divertirse y desarrollar un verdadero rompecabezas.
- Lenguajes que resuelven una tarea específica: pueden ser creados para un modelo de computadora específico o para ser usados dentro de un programa popular, por ejemplo, para contables. ¡Ya sabes!
- Lenguajes chinos: en China, realmente se usan lenguajes de programación chinos para tareas prácticas. Y viendo el ritmo al que aumenta la población de China, nuestros nietos podrían estar programando con ideogramas. 🙂
Analicemos lenguajes de programación europeos y asiático: por qué no se basan en el inglés, cómo funcionan y dónde encontrar la documentación.
Rusos a la Carga: 1C, Robik, Rapira
La mayor parte de los lenguajes con alfabeto cirílico se inventaron en la época de la URSS y desaparecieron con las etapas quinquenales y la Perestroika.
1C: Un dolor de cabeza
1C no necesita presentación. De hecho, es el que nos ha inspirado a escribir este artículo. Aunque en el lenguaje 1C se pueden usar palabras clave en inglés, su sintaxis se parece al «Pascal ruso», pero menos estricto y sin algunas construcciones. La sintaxis del lenguaje es bastante simple. Por ejemplo, así es como se ve el clásico «¡Hola, mundo!»:
Сообщить("Hola, mundo!");
Listo. Pero no está claro por qué los contables lo necesitan. 🙂
Dentro de la comunidad profesional de programadores 1C, ni siquiera al propio lenguaje le caen muy bien. Se critica a 1C por su baja productividad y la falta de clases. Por cierto, tampoco encontrarás herencia, encapsulación ni polimorfismo. Pero el ecosistema de 1C tiene su propio modelo de objetos de base de datos, un almacén de valores y un lenguaje de consultas.
A pesar del odio y las burlas, 1C es popular: el negocio ruso se ha enganchado a los productos de la empresa, lo que significa que los programadores 1C no se quedarán sin trabajo.
Robik: la «tortuga» rusa
Robik es un lenguaje desarrollado por Gennady Zvenigorodsky en 1975. Se escribió para las antiguas computadoras «Agat», para ayudar a los estudiantes. La característica de Robik es el concepto de ejecutores. Es como la «tortuga» de Logo (otro lenguaje), pero Robik tenía varios «ejecutores», cada uno con su propio «carácter», es decir, un conjunto de comandos.
Además, se podían crear ejecutores personalizados para tareas específicas. Las más populares fueron «Hormiga» y «Pintura», que podían moverse por las celdas y colorearlas. No mucho para los adolescentes mimados de Tony Stark y otros Doctores Strange de hoy en día, pero bastante mágico para los estudiantes y las «Agat» en los años setenta.
Puedes encontrar la documentación de archivo aquí.
Rapira: defiéndete, señor
Rapira es otro lenguaje de programación didáctico made in USSR a principios de los años ochenta. Rapira ayudó a los estudiantes de secundaria y universitarios de primer año a pasar de Robik a lenguajes más normales. Usaban Rapira para escribir calculadoras, algoritmos de búsqueda y clasificación de archivos, juegos simples y algoritmos para resolver problemas matemáticos.
El «¡Hola, mundo!» en Rapira se ve así:
ПРОЦ СТАРТ();
ВЫВОД: "¡Hola, mundo!";
КНЦ;
Es interesante que Rapira tenía versiones no solo en ruso, sino también en inglés, estonio y georgiano. «¡Proletarios de todos los países, uníos!» Era un verdadero fantasma del comunismo digital, aunque nunca pudo pasear por Europa.
La documentación se conserva en el Web Archive y en el sitio web del ruso Yershov.
Fjölnir (Islandés): Reikiavik-Reikiavik
Fjölnir (se pronuncia «Fjolnir») es un lenguaje de programación en islandés. Se utiliza para el procesamiento de listas (como la familia Lisp) y la programación modular. La característica distintiva del lenguaje son las interconexiones, gracias a las cuales los nombres no se enumeran «dentro» de cada módulo al importar, sino que se establecen «desde afuera», como expresiones sobre los módulos.
Así es como se ve el gélido «¡Hola, mundo!» en islandés:
;; Hola Mundo en Fjölnir
"hola" < main
{
main ->
stef(;)
stofn
skrifastreng("¡Hola, mundo!"),
stofnlok
}
*"GRUNNUR"
;
Fjölnir fue inventado por el profesor de informática de la Universidad de Islandia, Snorri Agnarsson, en la década de los ochenta. Fue bastante popular entre los programadores locales. Si te encuentras con un archivo con la extensión fjo
o sma
, es Fjölnir.
En Internet hay un libro completo con una descripción del lenguaje.
Lexico (Español): Hasta la vista, baby
Otro lenguaje didáctico. Lexico es orientado a objetos y funciona en la plataforma .NET de Microsoft. Fue inventado en Laboratorios Riosur.net E U en 1985. El objetivo era simple: facilitar la vida a los nobles hidalgos: estudiantes y profesores de OOP. Es interesante que Lexico se desarrolló constantemente hasta la década de 2010: las nuevas especificaciones del lenguaje se publicaron en 1992, 2002 y 2009. Sintácticamente se parece a C# y se entrega con un compilador y un sencillo IDE «de marca».
Lexico es útil para escribir algoritmos simples, diagramas lógicos y estructuras. Todos los objetos se basan en dos clases: cantidad y carácter, y en lugar del operador de asignación se usa la palabra clave copie.
Lexico solo funciona en la plataforma de Microsoft, por lo que los usuarios de Linux y otros sistemas operativos están fuera de juego. Esta es la principal desventaja del lenguaje y la razón de su baja popularidad en el desarrollo real. ¿Creías que todo se debía a las palabras no inglesas? ¡No seas tonto! ¿Qué desarrollador serio no sueña con escribir programas apasionados y sangrientos en español? ¡Es que se pueden cantar con guitarra en lugar de serenatas! Escucha cómo suena: «¡Ojo al dato, compadre! ¡El objeto, con sus valores de carácter, está aquí!» ¡Ah, qué música tan hermosa! ¡Ya estamos de acuerdo en todo!
Aquí tienes un ejemplo de código en Lexico: crear una ventana gráfica:
variable valor es texto
subrutina FormTest()
{
valor = "FormTest"
Escribir "El valor es: " + valor
}
Puedes encontrar la especificación del lenguaje y más detalles aquí.
Teuton (alemán): El cerdo alemán va
Teuton ni siquiera es un lenguaje en el sentido estricto de la palabra. Es una implementación alemana de CEDSimply: un wrapper especial que permite crear localizaciones de Python. Para agregar un nuevo idioma, debes crear una tabla de correspondencia de la léxica de Python. El alemán Kai Schluer se tomó la molestia y creó dicha tabla. Resultó ser una divertida broma de programador.
El propio autor explica la aparición del Python alemán así:
«Aunque antes no había lenguajes de programación en alemán, creo que todos los estudiantes ebrios soñaban con eso, después de beber bastante cerveza de trigo en el Oktoberfest o en otros lugares nocturnos. Teuton no tiene propiedades especiales, simplemente es alemán. Tomé la idea de Andy Dent, que habló en su blog sobre su lenguaje cosmopolita CEDSimply».
El esteta Schluer no se limitó a crear una tabla banal. No, también incluyó en Teuton dos formas de la preposición in (in e im) para que se ajustaran gramaticalmente a los casos y artículos del idioma alemán. En definitiva, si eres germanista, seguro que te encantará.
Si alguien más que su creador programa en él es un misterio. Pero tal vez las canciones de Rammstein y Lacrimosa sean listados de programas aún desconocidos para nosotros en Teuton. Si le das un código de Mutter al compilador, puede que obtengas algo bueno, brillante y luminoso, como la famosa sonrisa del teniente Ducalis.
Lingua: Romana: Perligata (latino): sic transit gloria mundi
Lingua: Romana: Perligata es un módulo para Perl. Permite escribir programas Perl en latín. Los creadores de Lingua: Romana: Perligata afirman con seriedad que el inglés tiene una estructura léxica débil. El caso de los idiomas antiguos es diferente: tienen una estructura léxica mucho más rica y dependen menos del orden estricto de las palabras.
La variante latina de Perl tiene varias características. Por ejemplo, en latín no se usan símbolos para indicar las citas directas. Se reemplazan por el verbo inquit
(«dijo»). Por lo tanto, en Perligata, una cadena de caracteres no se crea con comillas, sino que se llama al sustantivo verbal inquementum
(«resultado de una declaración»).
En lugar del Perl clásico
print STDOUT 'Introduzca la palabra siguiente:'
un programador en Lingua: Romana: Perligata escribiría así:
Enter tum next tum word inquementum tum biguttam egresso scribe.'
Los operadores matemáticos, los valores y las variables se indican de manera similar. Ejemplo: tabla de correspondencia de operadores de igualdad y desigualdad:
Perligata | Significado | Perl |
---|---|---|
aequalitam | «igualdad (de…)» | == |
aequalitas | «igualdades (de…)» | eq |
praestantiam | «precedencia (de…)» | < |
praestantias | «precedencias (de…)» | lt |
comparitiam | «comparación (de…)» | <=> |
comparitias | «comparaciones (de…)» | cmp |
Aquí tienes un ejemplo de cómo se implementa en latín el código para iterar sobre los valores del número i:
// A summation program in Lingua::Romana::Perligata
// User input for variable
per nextum in unam tum XI conscribementis fac sic
vestibulo perlegementum da varo. // Read input into variable
morde varo. // Get the value
seqis cumula varum. // Accumulate the value
cis
// Processing input
per nextum in unam tum XI conscribementis fac sic
seqis decumulamenta da varo. // Remove accumulated values
varum privamentum fodementum da aresulto. // Calculate result from previous
varum tum III elevamentum tum V multiplicamentum da bresulto. // Elevate and multiply
aresultum tum bresultum addementum da resulto. // Add results
// Conditional checks for output
si CD tum resultum non praestantiam fac sic
dictum sic f(%d) = %.2f cis tum varum tum resultum egresso describe. // Print result
novumversum egresso scribe. // New line
cis
si CD tum resultum praestantiam fac sic
dictum sic f(%d) = MAGNA NIMIS! cis tum varum egresso describe. // Print excessive result
novumversum egresso scribe. // New line
cis
cis
En Internet hay una descripción detallada de la sintaxis de Lingua: Romana: Perligata.
GOTO++ (francés): je ne mange pas si c’est jour
Este lenguaje de programación tiene sintaxis franco-inglés. Sí, es un lenguaje esotérico: se programa por diversión. Sin embargo, GOTO++ no es un esolang clásico, sino un weirdlang, es decir, un lenguaje en el que solo la sintaxis es extraña.
GOTO++ admite paradigmas procedurales y orientados a objetos. Los autores lo describen como «el lenguaje que no se deja hacer» (en el original suena como «le langage qui se laisse pas faire»). Por ejemplo, los comentarios se escriben después de la palabra clave GOTO, y para agrupar las operaciones matemáticas se usan llaves invertidas (}{). El símbolo del lenguaje es una verruga verde con ojos rojos furiosos. Insinúan su «carácter salvaje».
La documentación está escrita exclusivamente en el lenguaje de Hugo y Baudelaire, que los autores consideran el más bello del mundo. No es de extrañar que en el sitio web oficial, los programadores de habla inglesa sean recibidos con un descargo de responsabilidad: «Lástima, tendrás que aprender francés«.
Así es como se ve el «¡Hola, mundo!» en GOTO++ (la verdad es que nosotros tampoco entendemos mucho):
GOTO Le premier "¡Hola, mundo!"
§100
GOTOPRINTDUTEXTE (); * `!' * `o' * `d' * `n' * `u' * `m' * ` ' * `a' * `l' * `o' * `h' * `¡'
§2989
GOTOPRINTDUTEXTE (); * `!' * `o' * `d' * `n' * `u' * `m' * ` ' * `a' * `l' * `o' * `h' * `¡'
GOTOGOTO ()% 2989? 50% 100? 40
Puedes leer más sobre él aquí (gotopp.org).
¿Quieres programar con ideogramas, leer código de derecha a izquierda o discutir tu código con la abuela Sara de Odesa por las noches? ¡Hay más!
Ahora es el momento de viajar al Este. Aquí todo es mucho más práctico: muchos lenguajes se crean para resolver problemas reales o incluso como una declaración política en el debate global sobre el destino de la humanidad.
Mama (hebreo)
Mama es un lenguaje de programación educativo para el desarrollo de juegos y animaciones en 3D con su propio IDE. Soporta inglés, hebreo e ídish, y solo funciona en Windows.
En las primeras versiones del lenguaje, el IDE predeterminado solo podía resaltar la sintaxis, compilar y depurar código, mostrar el resultado de la ejecución del programa. A partir de la versión 1.5, se integró con el IDE abierto Alice, que es fuerte en animación 3D. Por lo tanto, ahora el entorno es de pago (aquí debes reírte en silencio: ¡ay, esos estereotipos nacionales!), pero también hay un editor gratuito en el que se pueden escribir programas simples.
Así es como se ve el código para crear una ventana gráfica en hebreo:
מחלקה תכנית_ציור יורש חלון
תגובות ללחיצה על העכבר #
מתודה תקנית: תגובה לאירוע לחיצה על מקש העכבר># (x, y)מתודה עכבר_נלחץ
צב.מקום(x, y)
מתודה תקנית: תגובה לאירוע גרירת העכבר ># (x, y)מתודה עכבר_נגרר
צב.אל(x, y)
הגדר ת=תכנית_ציור() ># יצירת עצם מהמחלקה של התכנית — גורם ליצירת חלון ולתחילת תגובה לאירועי העכבר
Qalb (árabe)
El nombre del lenguaje se escribe así: قلب, y se pronuncia Qalb, Qlb y Alb. Con su ayuda, puedes escribir un programa en árabe.
Qalb fue desarrollado en 2012 por el científico y artista Ramsi Nasser del centro tecnológico Eyebeam en Nueva York. Este lenguaje es una respuesta al dominio del inglés en la programación. Esto es lo que dice Ramsi sobre ello:
“Qalb es un lenguaje de programación que explora el papel de la cultura humana en el desarrollo. Está escrito completamente en árabe, lo que tiene como objetivo destacar los prejuicios culturales en el campo de la informática y replantear nuestras ideas sobre la programación.
La base de las herramientas de programación modernas es ASCII, que solo contiene caracteres latinos y fue creado originalmente en inglés. Como resultado, la programación está estrechamente ligada a la cultura escrita inglesa. Y esta vinculación predeterminada da una ventaja a las personas que crecieron en esta cultura, leen y escriben en inglés.»
Así es como se ve el código de «Hola, mundo!» de forma elegante y hermosa:
(قول "مرحبا يا عالم")
Puedes obtener más información sobre Qalb en el sitio web de Nasser y en su cuenta de GitHub.
P. S. Solo piensa: ¡es posiblemente la mejor performance de todos los tiempos y de todos los pueblos! Ramsi dedicó años a crear una verdadera obra de arte y un símbolo de la lucha contra el chovinismo lingüístico en la programación. ¿No es un ejemplo fantástico de arte contemporáneo?
Hindawi Programming System (India)
El sistema de programación Hindawi (HPS) es un conjunto de lenguajes de programación de código abierto en hindi. No son lenguajes nuevos, sino versiones de BASIC, C, C++, Assembler, Java traducidas al hindi, gujarati y bengalí.
Se inventó HPS para enseñar programación a los indios que no dominan el inglés. En su momento, el sistema recibió premios y diversas subvenciones del gobierno. Aunque ahora el sitio web oficial del proyecto no está disponible y el dominio está en venta. Pero no es un problema: todavía hay recursos en la red sobre la programación védica. Por ejemplo, hay una buena sección en sourceforge donde puedes descargar el paquete del lenguaje.
Así es como se ve la Java india (ya has visto todo):
<शैली कृत्रिम>
खुला श्रेणी परीक्षण
अणु
खुला जड़ व्योम मुख्य(माला_श्रेणी तर्क[])
अणु
प्रणाली.बाहर.म_लिखो_न("मेरा भारत महान");
पूर्ण
पूर्ण
Easy Programming Language (EPL) (chino)
EPL es un lenguaje de programación orientado a objetos chino con su propio entorno de desarrollo. Soporta dos versiones del chino: simplificado y tradicional, así como inglés y japonés. El propio EPL tiene tres bifurcaciones: Yi language, Feiyang y Yilegu, cada uno de los cuales viene con sus propias herramientas e IDE. La ventaja de EPL es su capacidad multiplataforma: funciona tanto en Windows como en Linux. La sintaxis se basa en Visual Basic.
EPL tiene características interesantes que lo hacen competitivo en China:
- Las definiciones de los programas, las declaraciones de variables y constantes, las llamadas al sistema API se rellenan en formularios, por lo que no es necesario recordar las construcciones sintácticas.
- La comunidad ofrece muchos módulos gratuitos, por lo que el desarrollo en EPL es bastante rápido.
- El lenguaje tiene muchas funciones localizadas relevantes para China: calendario lunar, procesamiento de la pronunciación china y caracteres chinos.
Pero también tiene inconvenientes: el código no se puede corregir en un editor externo, solo se puede trabajar en el IDE de la empresa, y la compilación es de pago. Además, la biblioteca estándar se actualiza con poca frecuencia.
Por supuesto, la mayoría de los programadores chinos usan lenguajes de programación comunes: Java, C++, PHP, Python y otros. Pero en EPL, aún se escriben programas reales. Por ejemplo, se cree que es el lenguaje en el que se escriben muchas herramientas de pirateo chinas.
Aunque esto también se puede explicar por las deficiencias del propio lenguaje: los antivirus a menudo se quejan de cualquier software escrito en EPL. Los desarrolladores han intentado solucionarlo, pero aún no han tenido éxito.
Así es como se ve la salida de «Hola, mundo!»:
调试输出("¡Hola, mundo!")
Y así es como se ve la ventana de trabajo del programador en el IDE oficial:
EPL también tiene su propio sitio web, pero está en chino.
Dolittle (japonés)
Dolittle es un lenguaje de programación japonés desarrollado en la Universidad de Osaka de Telecomunicaciones en el lejano 1952. El nombre del lenguaje es una referencia al personaje de los libros de Hugh Lofting, el doctor Dolittle.
Dolittle se parece a nuestro Robik: es antiguo y también se creó para la enseñanza de estudiantes. Las versiones coreana e inglesa vienen de regalo con el japonés. La sintaxis del lenguaje se basa en el orden de las palabras japonés (Sujeto – Objeto – Verbo), muy poco natural para el inglés.
Así es como se ve un programa para mover dos objetos:
か め 太 = タ ー ト ル! 作 る。
カ メ = タ ー ト ル! 作 る。
時 計 = タ イ マ ー! 作 る 0,1 秒 間隔 500 回 回 数。 時 計! か め 太! 10 く 行。
左 = ボ タ ン! ”左” 作 る。 左 : 動作 = 「か め 太! 回 り」。
右 = ボ タ ン! ”右” 作 る。 右 : 動作 = 「か め 太! 10 右 回 り」。
Puedes sumergirte en el lenguaje en su sitio web oficial.
Var’aq (klingon)
Var’aq es un lenguaje de programación esotérico. Y los klingon del universo de la serie «Star Trek» podrían programar en él.
A diferencia de la mayoría de los lenguajes cinematográficos y de libros, el klingon tiene una gramática, una sintaxis y una léxica muy elaboradas. Incluso existe un Instituto del Idioma Klingon, que publica traducciones de obras literarias al klingon y edita una revista científica. Cientos de personas hablan klingon, y fue inventado por el lingüista Marc Okrand a petición de Paramount Pictures.
«Y si el klingon tiene tantos usuarios, ¿por qué no regalarles su propio lenguaje de programación?» Brian Connors y Chris Pressi decidieron en 2000. Dicho y hecho. Ahora tenemos Var’aq, y se puede programar en él.
El lenguaje se basa en PostScript y utiliza Lisp para las estructuras de datos. Todas las palabras clave, operadores e incluso los números se escriben en klingon, por lo que si no formas parte de los cien hablantes nativos, es poco probable que puedas programar. Aunque el mismo Python no lo estudian solo los hablantes de inglés, ¿por qué no probarlo?
Así es como se ve la salida de los números de Fibonacci en Var’aq:
0 lImoH A cher (* guarda los dos primeros números como A y B *)
1 lI'moH B Cher
A cha 'B cha' (* imprime los dos primeros números *)
18 (* repite 18 veces *)
AB boq (* suma la suma de A y B *)
latlh (* duplica el resultado *)
ча '(* imprime el nuevo número *)
B "A" cher (* almacena B en A *)
"B" cher (* guarda el nuevo número en B *)
} vangqa '(* fin de la repetición *)
Desafortunadamente, el sitio web oficial del lenguaje y los enlaces a la documentación de acompañamiento no funcionan. Pero puedes estudiar la especificación en otras fuentes.
Aquí debería haber una moraleja o alguna conclusión, pero no la habrá. Decir que «el inglés ha ganado en la programación» no suena bien, y no hay otras conclusiones.
También te puede interesar: +20 Lenguajes de Programación de lo Más Extraños o 12 Nuevos Lenguajes de Programación que Deberías Conocer.