¿Hacia dónde irán los lenguajes de programación en 2022 y en los próximos años?
En cualquier momento quiero liberarme de la dependencia del lenguaje textual. Esto se debió en parte a los estudios de lengua de finales de los años cincuenta y sesenta, en los que se estudiaban técnicas gramaticales formales, pero basadas en textos.
Los programadores ahora sólo piensan en texto. Algunos lenguajes han logrado avances, como Smalltalk e Hypercard. Smalltalk asume gran parte de la complejidad del texto y coloca la estructura general de un programa dentro del contexto de un sistema de archivos, un navegador y un editor.
También iniciamos un sistema de programación funcional en hojas de cálculo, donde cada celda representa una función en base a un valor inmediato o una función en otra celda.
Por tanto, una hoja de cálculo puede considerarse un sistema de programación completo.
Sin embargo, las hojas de cálculo son sólo una forma, y para la programación general (escribir sus propios programas de hojas de cálculo), necesitamos una forma más general, como Smalltalk.
El texto es lineal y bidimensional, pero los programas se construyen en torno a dimensiones más complejas. La dificultad con la programación basada en texto es mapear múltiples dimensiones en dos dimensiones.
Muchos programadores consideran usar editores de texto para programar (vi y emacs son malos ejemplos), pero deberíamos usar editores de programas para acceder fácilmente al contenido del sistema sin necesidad de desplazarse por la definición "Remota" basada en texto. La mayoría de los IDE están decepcionados con esto, por lo que también debemos mirar más allá de los IDE.
Deberíamos aplicar las ideas de Ted Nelson, el creador del hipertexto, a la programación.
El texto solo debe usarse para las partes (funciones) del programa que realizan ciertas operaciones, y no para la estructura o marco de todo el sistema.
Una palabra de precaución. Cuando digo que deberíamos liberarnos del pensamiento basado en el texto de la década de 1960, deberíamos simplemente desechar el texto y deberíamos mantener el pensamiento estructurado detrás de la sintaxis, especialmente las definiciones del lenguaje basadas en la semántica en la semántica denotacional y axiomática. La aplicación de estas tecnologías avanzadas hace que la programación sea lo suficientemente sencilla para que la utilicemos el resto de nosotros.
Una implicación importante de esto es que las guerras de lenguaje y estilo pueden convertirse en cosa del pasado. La programación se basa en la semántica de los programas (antes árboles de análisis intermedios), que pueden presentarse en varias vistas en diferentes lenguajes y estilos para adaptarse al gusto de cualquier programador.
Pero primero, debemos deshacernos del sesgo psicológico de muchos programadores que creen que el lenguaje que adoptan es de alguna manera mágico. Esto es en gran medida el resultado de décadas de mala enseñanza y de personas que pensaban que la programación tenía que ser una forma especial. Necesitamos cambiar actitudes en toda la industria.
La informática y la programación tienen que ver con la exploración. Deberíamos restaurar este sentimiento y entusiasmo por la exploración y abandonar los moribundos lenguajes basados en texto del pasado.