ESTE AÑO SE CUMPLE EL 30º aniversario de la World Wide Web, por lo que se han derramado muchos píxeles sobre «las promesas iniciales de la web», una de las cuales era la idea de que se podía seleccionar «ver el código fuente» en cualquier página y enseñar fácilmente lo que se hacía para que se mostrara así.

Aquí está la primera página web, reproducida por el sitio web de programación Glitch en honor al aniversario, para señalar que se puede cambiar a la vista de la fuente y ver que ciertas partes están marcadas con <title> y <body> y <p> (que tal vez pueda adivinar que significa «paragraph»). Parece bastante sencillo, pero estás leyendo esto en un sitio web en inglés, desde la perspectiva de un angloparlante.

Ahora, imagina que ésta es la primera página web que ves, que te entusiasma mirar por dentro y averiguar cómo funciona.

Pero en lugar de que las etiquetas sean palabras conocidas, te encuentras con esta versión que he creado, que es totalmente idéntica a la original, salvo que el código fuente está basado en el ruso y no en el inglés. Yo no hablo ruso, y suponiendo que tú tampoco, ¿te parece que <заголовок> y <заглавие> y <тело> y <п> siguen siendo algo con lo que quieres juguetear?

Teóricamente, se puede hacer un lenguaje de programación con cualquier símbolo. Al ordenador no le importa. El ordenador ya está ejecutando un programa invisible (un compilador) para traducir tu IF o <body> a los 1s y 0s con los que funciona, y funcionaría con la misma eficacia si utilizáramos un emoji de patata 🥔 para representar IF y el oscuro símbolo cirílico del siglo XV O ꙮ para representar <body>. El hecho de que los lenguajes de programación se parezcan a menudo a palabras inglesas como body o if es un acomodo conveniente para nuestros enclenques cerebros humanos, que son mucho mejores para recordar comandos que se parecen a palabras que ya conocemos.

Pero sólo algunos de nosotros conocemos ya las palabras de estos comandos: los que hablamos inglés. La «promesa inicial de la web» sólo era una promesa para sus usuarios angloparlantes, ya fueran nativos o tuvieran acceso al tipo de educación de élite que produce hablantes de inglés de segunda lengua con fluidez en zonas donde no predomina el inglés.

Es cierto que los programas de software y las plataformas de los medios sociales suelen estar disponibles en unos 30 o 100 idiomas, pero ¿Qué pasa con las herramientas que nos convierten en creadores, y no sólo en consumidores, de herramientas informáticas?

Ni siquiera estoy preguntando si deberíamos crear lenguajes de programación en lenguas pequeñas e infrautilizadas (aunque eso sería genial). Incluso las lenguas más grandes que tienen una amplia tradición literaria y se utilizan como lenguas comerciales regionales, como el mandarín, el español, el hindi y el árabe, todavía no están muy extendidas como lenguas de código.

Encontré cuatro lenguajes de programación que están ampliamente disponibles en versiones multilingües. No son 400. Cuatro (4).

Dos de estos cuatro lenguajes están especialmente diseñados para enseñar a los niños a codificar: Scratch y Blockly. Scratch ha hecho incluso un estudio que demuestra que los niños que aprenden a codificar en un lenguaje de programación basado en su lengua materna aprenden más rápido que los que se quedan aprendiendo en otro idioma. ¿Qué ocurre cuando estos niños crecen? Los adultos, que no son precisamente famosos por lo mucho que disfrutan aprendiendo idiomas, tienen otros dos lenguajes de programación bien localizados para elegir: las fórmulas de Excel y el marcado de Wiki.

Sí, puedes comandar tus hojas de cálculo con fórmulas basadas en cualquier idioma en el que esté la interfaz de tu programa de hojas de cálculo. Tanto Excel como Google Sheets te permitirán escribir, por ejemplo, =IF(condición,valor_si_verdadero,valor_si_falso), pero también su equivalente en español, =SI(prueba_lógica,valor_si_es_verdadero,valor_si_es_falso), y lo mismo en docenas de otros idiomas. Probablemente no sea lo primero en lo que pienses cuando pienses en codificación, pero una hoja de cálculo puede convertirse técnicamente en una máquina de Turing, y esto demuestra que hay un caso de negocio para las versiones localizadas.

Del mismo modo, se puede editar Wikipedia y otras wikis utilizando implementaciones de marcado Wiki basadas en muchos idiomas diferentes. Las características básicas del marcado Wiki son independientes del idioma (como poner corchetes [[alrededor de un enlace]]), pero las características más avanzadas utilizan palabras, y esas palabras están en el idioma local. Por ejemplo, si haces un infobox sobre una persona, tiene parámetros como «name = » y «birth_place = » en la Wikipedia inglesa, que son «име = » y «роден-място = » en la Wikipedia búlgara.

Además de estos cuatro lenguajes de programación multilingües ampliamente disponibles, hay varias docenas, quizá un centenar, de lenguajes de programación que están disponibles en uno o dos idiomas distintos del inglés, como Qalb (árabe), Python chino, farsinet (persa), Hindawi Programming System (bengalí, gujarati e hindi) e incluso una versión de Perl pero en latín. Varios lenguajes de programación no ingleses se remontan incluso a la época de los megacomputadores del tamaño de una habitación patrocinados por el gobierno, como varios lenguajes de programación de la época soviética que se basaban en el ruso y los lenguajes multilingües ALGOL 68 (años 60) y 4th Dimension (años 80). Pero muchos lenguajes más recientes, como Python, Ruby y Lua, proceden de países de habla no inglesa (Países Bajos, Japón y Brasil) y siguen utilizando palabras clave basadas en el inglés. La promesa inicial de la web es, para muchos, más bien una amenaza: hablar inglés o quedarse fuera de la red.

Estos idiomas existen porque no es difícil traducir un lenguaje de programación. Hay muchos convertidores entre lenguajes de programación: puedes introducir un pasaje en JavaScript y obtener la versión en Python, o introducir un pasaje en Markdown y obtener una versión en HTML.

No son especialmente difíciles de crear. Los lenguajes de programación tienen un vocabulario limitado y bien definido, sin la ambigüedad ni los matices culturales que dificultan la traducción automática de las lenguas naturales. Si se conocen los equivalentes de un centenar de comandos, se puede traducir automáticamente uno a otro para cualquier pasaje de código.

De hecho, es tan factible traducir lenguajes de programación que la gente lo hace periódicamente con fines artísticos o humorísticos, un delicioso tipo de frikismo conocido como lenguajes de programación esotéricos. LOLCODE, por ejemplo, se basa en los lolcats, por lo que se comienza un programa con HAI y se cierra con KTHXBAI, y el espacio en blanco es completamente invisible para el ojo humano, formado por los caracteres invisibles espacio, tabulador y salto de línea. Incluso existe Pikachu, un lenguaje de programación que consiste únicamente en las palabras pi, pika y pikachu, para que Pikachu pueda -muy hipotéticamente- escapar de esos malditos entrenadores de Pokémon y conseguir un trabajo bien remunerado como programador.

Cuando se habla de traducir código en términos de Pokémon, suena absurdo. Cuando se pone la traducción de código en términos de los miles de millones de personas en el mundo que no hablan inglés, el acceso a puestos de trabajo bien remunerados y la capacidad de manipular su propio dispositivo ya no es un beneficio hipotético. El hecho de que el código dependa del inglés bloquea a la gente de este beneficio, por razones totalmente innecesarias a nivel técnico.

Pero un lenguaje de programación no es sólo su implementación técnica: es también una comunidad humana. Los cuatro lenguajes de programación multilingües más extendidos han tenido mejor suerte hasta ahora en el fomento de esa comunidad que los lenguajes de programación solitarios no basados en el inglés, pero sigue siendo un cuello de botella crítico. Necesitas encontrar recursos útiles cuando buscas en Google tus mensajes de error. Además, tienes que averiguar cómo hacer que el lenguaje funcione en tu ordenador. Por eso era tan importante que el primer navegador web te permitiera editar -y no sólo ver- sitios web, y por eso Glitch se ha esforzado tanto en permitirte editar código en funcionamiento desde una ventana del navegador y en facilitarte la petición de ayuda. Pero, ¿dónde está el Glitch para el mundo no angloparlante? ¿Cómo podemos hacer que la web sea tan fácil de usar para las personas que se están incorporando a ella ahora (o que la han estado usando como consumidores durante la última década) como lo fue para sus primeras llegadas?

He aquí por qué todavía tengo esperanzas. En la Europa medieval, si querías acceder a la tecnología de la escritura, tenías que adquirir al mismo tiempo una nueva lengua. La escritura significaba el latín. Escribir en la lengua vernácula -en las lenguas maternas, en las lenguas que la gente ya hablaba- era una actividad secundaria oscura y marginada. ¿Por qué querrías aprender a escribir en inglés o francés? No hay nada que leer allí, mientras que el latín te daba acceso a la tradición intelectual de toda una lengua franca.

Tendemos a mirar hacia atrás y preguntarnos por qué la gente se molestó en escribir en latín cuando podía escribir en la lengua que ya hablaba. En aquella época, aprender latín para aprender a escribir era tan lógico como lo es hoy aprender inglés para codificar, aunque ahora sabemos que los niños aprenden a leer mucho más rápido si se les enseña primero en su lengua materna. Los argumentos a favor del código en inglés que veo en sitios web como Stack Overflow son muy parecidos: ¿Por qué no aprender simplemente inglés? Así se accede a toda una tradición tecnológica.

Sabemos que el dominio del latín en la escritura terminó. La tecnología de la escritura se extendió a otras lenguas. La tecnología de la codificación no está más intrínsecamente ligada al inglés que la tecnología de la escritura al latín. Propongo que empecemos por ajustar la forma de hablar de los lenguajes de programación cuando contienen palabras de lenguas humanas. El primer sitio web no estaba escrito en HTML, sino en inglés. ¿El fragmento de código que aparece en la parte inferior de la reproducción de Glitch? No está en JavaScript, sino en JavaScript inglés. Cuando nombramos el inglés por defecto, se hace más evidente que podemos cuestionarlo: podemos empezar a imaginar un mundo que también contenga HTML ruso o JavaScript suahili, donde no tengas una ventaja inmerecida en el aprendizaje de código si tu lengua materna resulta ser el inglés.

Este mundo aún no existe. Quizá en los próximos 30 años lo consigamos.