¿Es Java el próximo COBOL?

En nuestra manía por lo nuevo, es conveniente olvidar cuánto tiempo lo “viejo” permanece con nosotros. Tome COBOL, por ejemplo. El venerable lenguaje de programación cumple 60 años este mes y, como escribió Steven J. Vaughan-Nichols, bien podría "sobrevivirnos a todos".

De hecho, COBOL ofrece un gran ejemplo del verdadero ritmo de progreso dentro de nuestra industria, mientras que quizás también ofrece algunas pistas sobre cuáles serán los COBOL del mañana. Java y SQL, ¿alguien? ¿O quizás Python?

COBOL el caballo de batalla

La mayoría de las personas que leen esta publicación no nacieron en 1959, el año en que a Mary Hawes se le ocurrió la idea de COBOL (Common Business-Oriented Language), que Grace Hopper (y otros) formalizaron y promocionaron. El objetivo de Hawes, como nos recuerda Vaughan-Nichols, era crear “un vocabulario similar al inglés que pudiera usarse en diferentes computadoras para realizar tareas comerciales básicas”, un verdadero lenguaje neutral para el proveedor.

Si bien el apogeo de COBOL se agotó en la década de 1980, continúa alimentando el 70 por ciento de los sistemas de procesamiento de transacciones globales, según Micro Focus (la compañía que mantiene COBOL), en una entrevista con Vaughan-Nichols. ¿Sacó dinero de un cajero automático? Estabas usando COBOL. ¿Pagó una hipoteca? COBOL. ¿Llamaste a un centro de llamadas? Sí, eso también fue COBOL. Incluso la reserva de sus vacaciones depende de COBOL.

COBOL supuestamente ha estado expirando durante décadas, sin embargo, 220 mil millones de líneas de COBOL viven en los mainframes de nuestras vidas. Según Lero, un centro de investigación de ingeniería de software, las transacciones COBOL eclipsaron las búsquedas de Google en 200 veces en 2014. ¿Google alguna vez se pondrá al día?

COBOL es más que un loco que vive en el piso de un pensionista de mainframe. Además de ser fácil de leer, el idioma se ha mantenido actualizado con sus vecinos. En la actualidad, COBOL se integra con contenedores Docker y Java, mientras se ejecuta en la nube o en Linux o Windows, o prácticamente en cualquier lugar. Es un lenguaje altamente portátil que permite a los desarrolladores concentrarse en escribir sus aplicaciones mientras COBOL se encarga de las complejidades del sistema operativo subyacente.

Hoy en día, el mayor riesgo para COBOL es que cada vez es más difícil encontrar programadores calificados. El lenguaje puede tener décadas más para vivir con nosotros, dado el costo y el riesgo de reemplazar los sistemas basados ​​en COBOL con alternativas, pero eso no significa que los desarrolladores estén creciendo soñando con escribir su primer programa COBOL. Es un problema, pero no uno que pretenda resolver aquí en esta publicación. (¡Lo siento!)

En cambio, revisar los 60 años de historia de COBOL me hizo pensar en los idiomas de hoy que podrían convertirse en los “COBOL” del mañana. Es decir, ¿cuáles son los lenguajes / tecnologías que todavía se moverán bajo el capó de una amplia gama de tecnología del mañana?

COBOL de mañana hoy

Es difícil predecir el futuro, por supuesto, pero hay casos sólidos para SQL, Python y Java. Dave Kellogg ha llamado durante años a SQL el nuevo COBOL. Eso puede ser cierto en términos de longevidad y la percepción de que está desactualizado, pero el paralelo finalmente se desvanece. Solo hay un COBOL. A pesar de todas sus pretensiones de estandarización, SQL habla un dialecto diferente según el proveedor de la base de datos. Si bien eso no ha impedido que SQL se quede (y seguramente seguirá siendo relevante durante las próximas décadas), no se siente como un espíritu afín a COBOL.

Ciertamente no de la misma manera que lo hace Java.

Java, como COBOL, es relativamente fácil de leer y escribir. También como COBOL, Java ha mantenido su modernidad. Cada vez que parecía que Java se estaba desvaneciendo, algo lo animaba. Según Brian Leroux, Android es definitivamente parcialmente responsable de la relevancia continua de [Java] ". Un poco más tarde, los macrodatos revivieron aún más Java. Como ha destacado Nitin Borwankar, “Java recibió [un] segundo impulso debido a Hadoop y todo el ecosistema de ciencia de datos, incluidos Hive, HBase, Spark, Cassandra, Kafka y lenguajes JVM como Groovy y Clojure. Todo eso no va a desaparecer pronto ".

De hecho, al igual que con COBOL, una de las principales razones por las que es probable que veamos Java grabado en nuestras lápidas es porque, como escribe Jonathan Eunice, está "desplegado profunda y ampliamente en aplicaciones críticas, lo que lo hace digno de una crítica sistemática". Cuantas más empresas incorporen Java en sus aplicaciones de misión crítica, menos probable es que sea extraído y reemplazado por alternativas modernas. El costo y el riesgo mitigan hacerlo.

De la misma manera, Python bien puede demostrar su poder de permanencia. En opinión de Lauren Cooney, Python perdurará porque es un "lenguaje GSD [hacer las cosas] frente a un lenguaje genial". No es "lujoso". "Simplemente funciona". Es importante destacar que, al igual que Java, Python es cada vez más fundamental para la ciencia de datos moderna, entre otras cosas, que bien pueden llegar a ser las cargas de trabajo transaccionales del mañana que sustentan los sistemas financieros (que, como se mencionó, es una gran razón por la que COBOL sigue siendo cool hoy).

¿Algo más? Bueno, existe la respuesta no tan irónica de que tal vez COBOL sea el futuro COBOL. Como dice Andrew Oliver, “Hace años dije que Java es el COBOL del futuro. Todos me miraron con extrañeza. Creo que es el futuro ".