Allá por el año 1990 aprendí y utilicé un curioso lenguaje de programación para los ordenadores Tandem, llamado SCREENCOBOL (o SCREEN-COBOL), que solo servía para hacer programas que pintaban pantallas y recogían datos, en terminales “tontos” (pobres terminales). Era un lenguaje sencillo, fácil de aprender, y hacía muy bien aquello para lo que había sido diseñado.
Buscando en Google.com páginas que hiciesen referencia a ese lenguaje, encontré apenas 1.500. De esas sólo 15 están en español. Eso es casi como acabar en el más absoluto olvido.
¿Y para qué vale un lenguaje que solo pinta pantallas?, os preguntaréis.
Pues muy fácil: la arquitectura de aquellas desaparecidas máquinas Tandem obligaba (no recomendaba) a aislar la presentación de la lógica de negocio. Ésta última estaba en programas en COBOL de toda la vida que ¡no podían pintar pantallas!. Los programas en COBOL y los escritos en SCREENCOBOL se comunicaban mediante una cola de mensajes.
Además, nunca sabías que proceso iba a responder a cada petición de la pantalla, pues existía un conjunto de réplicas que podían hacerlo, en función de la carga de trabajo. Estos procesos se declaraban con un nombre virtual, en ficheros configuración. Tanto las pantallas como la lógica de negocio debían ser “libres de contexto” (perdon por la traducción).
¿Deja-vu total no? Año 1990, repito.
Ahora está de moda todo esto. Sobre todo la discusión sobre los Lenguajes Específicos de Dominio, del inglés Domain-specific Languages, como SCREENCOBOL, es decir, que hacen solo ciertas cosas pero más eficientemente que los lenguajes de propósito general.
Esto permite simplificar los sistemas hasta su complejidad esencial, es decir, la intrínseca del problema que se intenta resolver, eliminando la complejidad añadida por las herramientas, que no aporta nada.
Me propongo hacer una lista de esos lenguajes. A ver a cuantos de ellos les pasa lo que a SCREENCOBOL en los próximos 16 años.