Lenguaje e interfaces

¿Por qué tantos profesionales de la informática, que son quienes mejor conocen los ordenadores, siguen usando una pantalla negra llena de letras, pudiendo usar ventanas y botones? ¿Nostalgia, postureo…? No: ¡lenguaje!

Uno de los usos más importantes del lenguaje, de hecho según algunos el original, es precisamente servir de interfaz. Una interfaz pone en contacto dos mundos independientes, conectando elementos de un lado con los del otro. Como interfaz entre humanos, el lenguaje conecta las ideas de una cabeza con las de otra, y es que, a diferencia de los habitantes de Pandora en Avatar, los seres terrestres no tenemos otra manera de poner dos mentes en contacto.

Bueno, sí que hay otra. Emparentado con el lenguaje, existe un sistema que también sirve para poner ideas en común (lo que llamamos habitualmente comunicar): los gestos. Un gesto es una forma arbitraria, por ejemplo un movimiento de la mano, asociada a un significado, por ejemplo “bien”. Pero ahí se queda, el gesto es una unidad cerrada. Si hago el gesto de “bien” y luego el de “ven”, no hay un tercer significado conjunto, lo que he hecho son dos gestos seguidos. Los signos (como se suele llamar al elemento fundamental del lenguaje) son también formas arbitrarias asociadas a significados, pero están hechos para combinarse. Con unas pocas reglas de combinación que se aprenden una única vez, puedo construir significados infinitos. Por ejemplo, puedo decir “el pingüino que canta ópera en el tejado”, aunque no se nos hubiera ocurrido de antemano preparar ese significado (lógico, tal pingüino no existe). Lo que provee el lenguaje son las piezas, y cómo encajan. Un gesto se tiene o no se tiene, en cambio el lenguaje se construye.

(Y por cierto, nada de esto tiene que ver con el sonido o la vista: hay gestos sonoros, como un silbido o un carraspeo, y signos visuales, como la lengua de signos).

Pasando a los ordenadores, en este caso los dos mundos a comunicar son el funcionamiento interno de la máquina y la mente del usuario. La distancia entre ellos ya no es solo física, sino de naturaleza, y hace falta una interfaz. Con toda propiedad, aunque sin mucha imaginación, llamamos a esto interfaz de usuario (UI, por sus siglas en inglés). Y resulta que los dos grandes tipos de interfaz de usuario que hemos inventado se corresponden bastante con los dos sistemas de comunicación de los que hemos hablado.

Por un lado están las interfaces gráficas (GUI). Las GUIs son en buena medida sistemas de gestos: un botón, en el lado del usuario, se corresponde con una acción, en el lado de la máquina. Y el repertorio es cerrado, solo puedo hacer lo que quien diseñó el programa decidió que se podía hacer. Puedo buscar una palabra dentro de un documento, porque alguien puso un botón para eso. Pero no tengo manera de preguntar “¿en cuántos de mis ensayos sale un pingüino?”.

Por otro lado, están las interfaces textuales como la terminal o shell (CLI: command line interface). Las CLIs nos permiten hablar con el ordenador en un lenguaje compartido: una interfaz a medio camino, que no es exactamente como piensa un humano ni del todo como funciona la máquina, pero que es un sistema de signos que se combinan y se amplían. Por ejemplo, para saber en cuántos de mis ensayos sale un pingüino, puedo escribir grep -l pingüino *.md | wc -l, combinando unas pocas piezas con una sintaxis común que aprendí en su día y es relativamente universal.

Por eso, aunque mucha gente ve las CLIs como algo primitivo y la GUI como algo avanzado, en realidad es al revés: la GUI es simple y gestual, la CLI es lenguaje, flexible, con infinitas posibilidades.

Recientemente, los LLMs, como máquinas de lenguaje que son (“large language model”), se presentan también como interfaces textuales: el famoso chat. La interfaz entre mentes humanas, ahora interfaz entre mente humana y… ¿mente computacional? Esto ayuda a explicar por qué las IAs generativas usan la CLI con tanto éxito. Dale a un LLM una terminal, y tienes un agente, el santo grial de la IA desde hace tanto tiempo. Puede combinar órdenes que nadie había combinado antes, mirar lo que contesta el ordenador, probar otra cosa si no ha funcionado. Y se ve bien si comparamos: al mismo modelo se le puede dar una pantalla, con capturas y clics, o una terminal. Aunque los modelos modernos cada vez usan mejor la pantalla, con la terminal vuelan.

Curiosamente, los asistentes de hace unos años también apoyan nuestra tesis, pero por el lado contrario. Parecían hablar, pero no. Entendían una lista bastante limitada de órdenes, y ante cualquier otra cosa: “perdona, no te he entendido”. No tenían lenguaje, sino gestos disfrazados.

Es decir, la diferencia entre las dos interfaces no es de época, ni una cuestión estética. Es la diferencia entre un repertorio de gestos y un sistema de signos, la diferencia entre elegir de una lista cerrada proporcionada por otros, y construir lo que nosotros queremos decir. Yo, por mi parte, elijo la pantalla negra.

En defensa de los botones

Ahora bien, esto no quiere decir que las GUIs no valgan para nada. Un sistema de gestos es mucho más fácil de aprender que un lenguaje, sobre todo porque casi no hay que memorizar nada: en una GUI las opciones están a la vista. Basta reconocer el botón en lugar de recordar la palabra. En una CLI, en cambio, la pantalla está vacía hasta que sabes qué decir.

Por otro lado, las GUIs incorporan un tercer tipo de interfaz que no es ni gesto ni signo: la metáfora visual. Los seres humanos somos muy visuales, y estamos acostumbrados a manipular el mundo coordinando la mano y el ojo. El gestor de ficheros, donde arrastro documentos y los meto en carpetas, no es un sistema de gestos sino una metáfora del mundo. Un programa de diseño gráfico es otro ejemplo: dibujar es, antes que nada, mover la mano y ver el resultado.

Tampoco en lingüística hay una distinción gesto/signo en blanco y negro, sino en realidad un continuo fascinante. Y en los ordenadores pasa igual: podemos combinar una metáfora del mundo, por ejemplo seleccionar varios objetos, con un gesto, como pulsar “eliminar”, creando un poquito de sintaxis.

Llegando más lejos

Pero además, ¿es la pantalla negra el lenguaje puro, el súmmum de su uso como interfaz digital?

En mi opinión, la manera en que hemos metido el lenguaje en el mundo digital es de las peores opciones. La mayor parte de los humanos usamos lenguaje oral, hecho de sonidos. Es una modalidad muy expresiva para lo temporal y lo lineal, pero muy mala para lo visual. Para eso es mucho mejor la lengua de signos, que no mucha gente conoce pero que permite expresar conceptos espaciales y visuales de manera precisa y a la vez flexible. O también, por ponernos menos exóticos, la escritura a mano, con su libertad para combinar formas, tamaños y líneas en la página.

En cambio, con los ordenadores “hablamos” por teclado: una codificación visual limitada de la modalidad auditiva. Sí, por mucho que haya símbolos impronunciables, el modelo subyacente es la secuencia de letras, un conjunto cerrado de caracteres puestos uno detrás de otro en fila. Esto es una limitación heredada históricamente, a través de la imprenta y las máquinas de escribir, de una característica importante de la voz: la linealidad, que en el texto plano y los teclados se convierte en exclusiva y limitante. Los emojis, el markdown, intentan recuperar lo que se quedó abandonado junto a la prosodia, el ritmo, la entonación, pero se quedan cortos. ¡Qué pena!

Nada de esto tiene por qué seguir así. Lo que tiene la GUI (todo a la vista, coordinar mano y ojo) y lo que tiene la terminal (un lenguaje, con su flexibilidad y productividad) no son incompatibles. La lengua de signos, una hoja de papel, lo demuestran. La hoja de cálculo, ese paradigma de computación tan extendido a la vez que vilipendiado, es quizá el intento más exitoso de juntar las dos cosas. Pero sigue atada al teclado, a la cadena de caracteres.

Ahora bien, con las nuevas capacidades de la IA podemos hablarle al ordenador con la voz. Ya no sólo con los fonemas, sino también con la prosodia, la entonación, su modulación. O escribir y dibujar diagramas, con distintos tamaños y colores, y dárselos a una IA para que los entienda. O incluso, ¿por qué no?, quizá pronto podamos hablarle en lengua de signos, combinando objetos visuales de manera recursiva y generativa. Puede que no estemos ahí todavía, pero veo un futuro en el que el teclado y el ratón sean reliquias del pasado. Y no porque abandonemos los signos para volver a los gestos, sino porque abracemos de verdad las capacidades humanas del lenguaje.