Estudiamos los lenguajes de programación desaparecidos más raros por un motivo claro

Los lenguajes de programación pasan de moda, pero rara vez mueren. Al menos una vez que llegan a un cierto nivel de aceptación. Puede pasar mucho tiempo desde su apogeo, pueden aparecer nuevos lenguajes que llenen un nicho. Pero algunos lenguajes siguen ahí, décadas después de creerse que han quedado obsoletos.

Para algunos desarrolladores que trabajan con programas antiguos, mantener estos lenguajes puede ser una mejor opción que reescribirlo todo.

Ari Rabkin y Leo Meyerovich son investigadores de, respectivamente, Princeton y Berkeley. Ambos se dedicaron durante dos años a investigar por qué algunos siguen estudiando lenguajes pasados de moda y con poco recorrido en el mercado. Sus conclusiones se recogen en un documento, Empirical Analysis of Programming Language Adoption, donde describen su análisis de más de 200.000 proyectos Sourceforge y encuestas de más de 13,000 programadores.

¿Más vale malo conocido?

¿Su principal hallazgo? La mayoría de las veces los programadores eligen los lenguajes de programación que conocen.

“Hay idiomas que usamos porque siempre los hemos usado”, explica Rabkin. “Por ejemplo, los astrónomos usan históricamente IDL (Interactive Data Language) para sus programas informáticos, no porque tenga características especiales para el estudio de las estrellas o cualquier otra cosa, sino porque tiene una tremenda inercia. Tienen buenos programas que han construido con ese lenguaje que quieren conservar“.

En otras palabras, gracias en parte al reconocimiento de marca que los idiomas antiguos aún conservan, estos tienen un poder de permanencia monumental. Por supuesto, eso no significa que los idiomas populares no cambien. Rabkin asegura que el lenguaje C que usamos hoy no se parece en nada al lenguaje sobre el que escribía antes.

Es decir, no solo los desarrolladores antiguos se aferran a los clásicos; los jóvenes programadores también están descubriendo y adoptando lenguajes antiguos por primera vez. Eso podría deberse a que los idiomas tienen bibliotecas y características interesantes, o porque las comunidades en las que estos desarrolladores forman parte han adoptado el lenguaje como un grupo.

Menos oferta, más salario

Pero también hay programadores que deciden especializarse en estos lenguajes antiguos porque pueden beneficiarse de conocer lenguajes menos populares. Aunque al haber menos demanda pueden reducirse algunos opciones, conocer estos nichos minoritarios podrían terminar dando buenos resultados.

Al igual que con cualquier juego de cartas, el factor suerte tiene mucho que decir en este tipo de apuesta. Es decir, si para lograr un buen trabajo los desarrolladores deben convertirse en un experto en un lenguaje determinado, hay que invertir tiempo y trabajo sin que esto tenga garantía de resultados.

A la hora de decantarse por un lenguaje u otro, una buena estrategia es analizar la relación entre la oferta y la demanda. Algunos idiomas pueden no tener muchos trabajos disponibles, pero el que haya relativamente pocos candidatos que compiten por cada puesto hace que su remuneración aumente. Si una oferta de empleo se prolongan durante varios meses, existe una buena posibilidad de que las empresas tengan problemas para encontrar candidatos adecuados, lo que crea una buena oportunidad para alguien con las calificaciones adecuadas.

Cobol, el ejemplo más claro

Si hay un lenguaje que cumple a la perfección ese rol de cosa del pasado que, sin embargo, sigue siendo necesario hoy en día es Cobol.

En marzo de 1959, Mary Hawes, programadora de la Corporación Burroughs, llamó “a los usuarios y fabricantes de ordenadores para crear un nuevo lenguaje informático, uno que podría funcionar con diferentes marcas de ordenadores y realizar tareas de contabilidad como cálculos de nómina, control de inventarios y registros de créditos y débitos”, según el Museo Nacional de Historia Americana.

Fuente: Museo Nacional de Historia Americana.

Una reunión posterior, empujó al departamento de Defensa de Estados Unidos a patrocinar una conferencia para crear dicho idioma. En la reunión convocada por el Pentágono, a la que asistieron 41 personas, los participantes visualizaron un lenguaje de programación que haría uso de un tipo básico de inglés y permitiría a gerentes, programadores y analistas de sistemas comunicarse con cualquier ordenador disponible. También reduciría la necesidad de estandarizar el hardware y poder cambiarlo con relativa facilidad.

En una reunión de mediados de septiembre, Bemer sugirió el nombre de Cobol para el idioma (otras sugerencias incluían “BUSY” (Sistema de Negocios), “INFOSYL” (Lenguaje del Sistema de Información) y “COCOSYL” (Lenguaje Común de Sistemas Informáticos).

A lo largo de 1960, equipos de investigadores y programadores trabajaron para poner en marcha las aplicaciones COBOL, según el Museo Nacional de Historia Americana. “Escribieron compiladores de Cobol, programas altamente especializados que traducían las instrucciones generales de Cobol en un código específico de la máquina”, señala el museo en su web. “Luego probaron Cobol programas escritos en el código de máquina y COBOL para asegurarse de que funcionaran correctamente”.

El primer programa de Cobol funcionó con un RCA 501 el 17 de agosto de 1960. En los años siguientes, dice el museo, muchas compañías de ordenadores desarrollaron versiones de COBOL para sus máquinas. En 2016, varias agencias gubernamentales de Estados Unidos, como los departamentos de Agricultura, Seguridad Nacional, Salud y Servicios Humanos, Justicia, Tesorería y VA, siguen usando Cobol.

Otros lenguajes que se resisten a morir

Pero, además de Cobol, exigen otros lenguajes que van acumulando años y que, pese a todo, parecen estar en buena forma

SQL es un caso extraño. Por un lado, las bases de datos que usan SQL todavía están por todas partes, y SQL es a menudo la única forma de trabajar con ellas. Por lo tanto, no es de extrañar que el lenguaje SQL en sí mismo esté disponible. Lo que es una sorpresa es cuántos desarrolladores todavía están escribiendo una gran cantidad de código SQL. Con todos los diferentes sistemas de abstracción de bases de datos, como los ORM (Hibernate, Entity Framework, etc.) y otros sistemas (Active Records, LINQ), muchos desarrolladores encuentran la necesidad de escribir SQL.

Java, por su parte, no está ni cerca de estar aproximándose a su declive. Todavía es un ecosistema fuerte y vibrante. No es de extrañar que los observadores de la industria a menudo llamen a Java “el Cobol moderno”. Tiene una combinación de rasgos (como ejecutar en servidores y mainframes) que lo hacen atractivo para las mismas industrias a las que Cobol apela. Java ha hecho impresionantes avances en esas áreas, e incluso si los usos más llamativos de Java (como el desarrollo web) desaparecen, todavía tendrá un lugar privilegiado en el mundo de los grandes servidores y mainframes.