Conecta con nosotros

A Fondo

COBOL: un lenguaje cada vez más desconocido del que dependen aún sistemas críticos

Publicado el

COBOL: un lenguaje cada vez más desconocido del que dependen aún sistemas críticos

Los estudiantes de informática en los años 80 y anteriores contaban en sus planes de estudio, en prácticamente todos los casos, con asignaturas relacionadas con un lenguaje de programación ya entonces muy particular: COBOL. Su nombre quiere decir Common Business Oriented Language, y por sus características, muy utilizado en mainframes y sistemas de grandes empresas y entidades bancarias.

Por todo el mundo, empresas de finanzas, automoción, seguros y sanidad, e incluso instituciones gubernamentales, confiaban muchos de sus sistemas y transacciones más relevantes a herramientas y rutinas desarrolladas en COBOL. Poco a poco, este lenguaje iba cumpliendo años, y mientras tanto, la informática, el desarrollo y la tecnología iban avanzando. Pero este lenguaje no.

A pesar de ello, el COBOL fue desapareciendo progresivamente de planes de estudio y centros de enseñanza de informática. Los estudiantes tampoco mostraban interés en aprenderlo. Muchos alegaban que era un lenguaje complejo, farragoso y poco atractivo. Poco a poco, el número de profesionales de TI que lo conocían, y que además sabían desarrollar con él con soltura se fue reduciendo.

Esto, no obstante, no ha hecho que las empresas y entidades que lo utilicen modernicen sus sistemas para pasar de COBOL a otros lenguajes y herramientas. De hecho, a día de hoy, cuando COBOL ya ha cumplido nada menos que 64 años, hay a diario transacciones por valor de 3 billones de dólares gestionadas mediante sistemas que utilizan COBOL.

El problema de COBOL: nadie quiere aprenderlo y sus profesionales se jubilan

La realidad es que sigue siendo uno de los lenguajes principales en el desarrollo para mainframes. Tanto, que según la Revista de Investigación Avanzada de Ciencia, Comunicaciones y Tecnología (IJARSCT), el 43% de todos los sistemas bancarios lo utilizan todavía.

Solo en Estados Unidos, se controla a base de COBOL el 95% de todas las actividades realizadas en los cajeros automáticos, y el 80% de todas las transacciones realizadas en persona mediante tarjeta de crédito. Una cifra tan importante que no se pueden descuidar los sistemas basados en COBOL, aun más de seis décadas después de su nacimiento.

El problema es que ya no hay prácticamente nadie interesado en aprender COBOL, por lo engorroso que resulta programar en dicho lenguaje, la meticulosidad del formato de su código y lo inflexibles que es. Además, tarda mucho más en compilar que otros lenguajes. Y lo que es peor: los que lo saben hace años que empezaron a jubilarse.

Esto lleva a que quienes tienen que trabajar con COBOL sean profesionales extremadamente valorados, porque son imprescindibles para mantener y gestionar su código. Encontrar sustitutos para ellos es cada vez más complicado, lo que pone a muchas empresas en una situación complicada. Muchas, con buen criterio, han decidido buscar una alternativa. Aunque dar con ella no es ni mucho menos sencillo. Encontrar la clave para modernizar el código en el que se apoyan gran cantidad de empresas y entidades del mundo de las finanzas no va a ser tampoco algo rápido.

IBM al rescate con ayuda de la IA

Entre las tecnológicas que están intentando dar una solución a este problema, quizá la más avanzada sea IBM, que se ha empeñado en arreglarlo utilizando Inteligencia Artificial. Su enfoque es bastante directo, y en vez de depender en exclusiva de un conjunto limitado de programadores humanos para solucionar el problema, propone utilizar un asistente de generación de código impulsado por IA que ha desarrollado, mediante watsonx.

Este asistente se encarga de convertir todo el código antiguo en COBOL a uno más moderno, lo que ahora a los desarrolladores gran cantidad de horas de reprogramación. El proceso para conseguirlo, explicado con sencillez, es parecido a pasar a ChatGPT un texto escrito en un idioma y pedir al chatbot que traduzca varios de sus párrafos a otra lengua.

Gracias a que IBM ha preparado a watsonx para actualizar código en COBOL,  los desarrolladores tomen fragmentos de código escrito con dicho lenguaje, y pasárselo a watsonx para que lo transformen en Java. Eso sí, en la práctica, conseguirlo no es tan sencillo como podría parecer con el ejemplo de ChatGPT y las traducciones.

watsonx es, según Keri Olson, Vicepresidenta de Gestión de producto y de Automatización TI de IBM, una solución de extremo a extremo que utiliza un procedimiento de varios pasos para realizar estas tareas de traducción de código, que son bastante complejas. Pero antes, IBM y el cliente tienen que tener un nivel de comprensión exhaustivo de cómo funciona y se comporta la aplicación, así como de todas sus implicaciones.

También del flujo de datos y las dependencias existentes. Solo entonces, con watsonx se ayuda al cliente a refactorizar sus aplicaciones. ¿Qué quiere decir esto? Que se dividen estas en fragmentos más pequeños, que el cliente puede elegir de manera activa, para modernizar su código y pasarlo de COBOL a Java.

Eso sí, es necesario tener en cuenta, como recalca Skyla Loomis, Vicepresidenta de Sosftware de IBM, que watsonx, en cuanto a la modernización de código de COBOL, «es una herramienta de asistencia al desarrollo. Cuenta con la ayuda de la Inteligencia Artificial, pero necesita al desarrollador. Así que sí, el desarrollador está implicado en la técnica, así como en la ayuda a los clientes en la selección de los servicios«.

Una vez que se establece el «contacto» entre la máquina y el sistema encargado del proceso, y el humano encargado de supervisarlo, la Inteligencia Artificial que ayuda en el proceso empieza su intervención en él, identifica el código a transformar y realiza la operación. Eso sí, es muy probable que el desarrollador tenga que revisar el código que ofrecerá después la IA como resultado, y editarlo para corregirlo y optimizarlo.

Loomis, no obstante, no cree que el trabajo que haay que hacer una vez realizada la conversión sea muy elevada, ya que en su opinión, el código en Java puede responder a las necesidades de la empresa que quiere modernizar su código «en un 80% o 90%«. Pero sí será necesaria la intervención humana para dejarlo completamente listo y funcional.

Por ahora, el asistente de código watsonx está probando esta función de modernización de código en COBOL, pero si tiene éxito, tanto este asistente como otros que puedan surgir para modernizar código de COBOL o de otros lenguajes antiguos pueden tener muchas implicaciones para el futuro. Por ahora, no todo el mundo está convencido de que sea tan bueno como dicen en IBM.

La propia IBM admite que la tecnología que utilizan es nueva y no se ha probado lo suficiente ni se han publicado todavía estudios sobre su funcionamiento y eficiencia, pero son optimistas sobre su futuro. A pesar de todo, la traducción de código mediante IA es una idea prometedora, sobre todo en casos como el del código en COBOL, pero todavía habrá que esperar para ver si puede desplegarse y tener un impacto positivo en el mundo real.

Según un informe de Gartner, «para 2028, la combinación de humanos y asistentes de IA trabajando en equipo podría reducir el tiempo necesario para completar tareas de codificación complejas en un 30%«. También señala que un 80% utilizarán la IA en alguna de sus formas. Pero al paso que va la evolución de esta tecnología, cada vez hay más personas que piensan que esto llegará antes de lo previsto. Por ahora, pase lo que pase, habrá todavía que esperar un poco para poder contar con este tipo de asistentes para facilitar la tarea de los desarrolladores, tanto con el nuevo código como con el legado.

Redactora de tecnología con más de 15 años de experiencia, salté del papel a la Red y ya no me muevo de ella. Inquieta y curiosa por naturaleza, siempre estoy al día de lo que pasa en el sector.

Lo más leído