De lenguajes de programación y del desarrollo profesional del informático (2)

Inicié esta serie de entradas hace ya algo de tiempo. Poco más de dos años. Ya antes tenía mucho que escribir sobre el tema y desde el inicio de la serie se han acumulado más cosas, han ocurrido eventos en el quehacer científico, tecnológico y profesional del campo al que hace referencia el título de estas entradas, he conocido nuevo lenguajes y paradigmas de programación, y más borradores de posts se han acumulado. Ante esto no puedo evitar recordar a esos alumnos de las materias de «Diseño de Compiladores», «Lenguajes de Programación» y «Lenguajes y Compiladores» que por mucho tiempo impartí en las diferentes versiones del programa de Maestría en Informática de la UPIICSA, quienes veían todo esto como algo inútil (pues consideraban que ya no había mucho que hacer en este rubro, que ya todo estaba hecho o dicho sobre los lenguajes de programación) y para quienes me esforcé en, por lo menos, apreciar lo que hay detrás del tema sin que ello implicara que diseñar (cambiar o mejorar) un lenguaje de programación o implementarlo fuera algo que todo informático debiera hacer. Con algunos tuve éxito, con otros no. Pero desde entonces, parece que este rubro ha venido avivándose más.

Después de pasar por entornos de PC, cliente-servidor, clusters y mainframes, donde debí aprender muchos lenguajes de programación, de control de procesos, lenguajes para «reporteo», de scripting, y un largo etcétera (dejé de contarlos cuando llegué a 22 de ellos y eso fue hace hace más de 20 años), junto con las materias que he mencionado (y donde además yo diseñé el mio propio, pues ya había visto que hacerlo no era difícil, la dificultad se encontraba en innovar en ello) y en las que debía presentar y explicar algunos otros que jamás veremos (y espero no verlos) en la vida cotidiana. Mi postura es que (y así lo expresé en la entrada previa) uno debe ser políglota. No hay de otra.

Hace tiempo (casi 10 años, de hecho), Stephen Wolfram hablaba1 de poder tener un «lenguaje con el cual modelar al mundo» (supongo que a raíz del enorme éxito que tuvo con Mathematica y Wolfram Alpha). Un lenguaje universal y único si uno lee entre líneas. Nada nuevo si nos volteamos a ver a PL/I, y del que veremos similitudes en cuanto «al éxito» de la idea. Además de que la experiencia demuestra que ello es pesado (no solo computacionalmente) y complicado, podemos agregar a ello «costoso». Pocos invertirán en una idea comercial mientras haya todo un planeta enfocado en algo que es gratuito.

Como escribía hace poco también, el modelo de licenciamiento de software es de otra época. El mundo se ha volcado al desarrollo de código abierto. Habrá que ver que tanto aguantan compañías como Wolfram y Matlab. Mientras tanto, la riqueza del open source nos mostrará que las distintas formas de ver al mundo, serán reflejadas en distintas herramientas (y dentro de las recientes adiciones al ecosistema lingüístico de programación podemos mencionar a Go, Rust y Julia). Python se encuentra ahora donde estuvo Java hace 20 años (aunque Java es 4 años más joven que Python, Java tuvo un ascenso estrepitoso pero ya se estancó). Los recién llegados tienen aún un largo camino por recorrer.

Entonces, creo que se mantiene ese punto por el momento: no existe un lenguaje de programación único y universal (y quien sabe si llegará a existirlo), y los lenguajes van y vienen. Así que lo mejor que un profesional puede hacer cuando son éstos su trabajo y no su herramienta de trabajo (como podría ser para un físico aprender Fortran y con ello ser feliz, pues su trabajo es la física y Fortran es sólo un medio para expresarla) es aprender los más de ellos y lo más de ellos (su filosofía y diseño), que es lo que nos lleva al ¿cómo?

Referencias

  1. Jacob Kastrenakes, «Wolfram announces ‘most important’ project: a programming language that models the world«, theverge.com, web. Published: 2013.11.14; visited: 2023.06.01. URL: http://www.theverge.com/2013/11/14/5103446/wolfram-language-announced-intelligent-knowledge-based-programming.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.