Al lenguaje de programación COBOL lo quieren jubilar. Lo cierto es que ya tiene casi casi la edad (se creó en 1959, hace 64 años), pero es que su presencia en el mercado de la informática es tan sorprendente como, para según qué empresas, incómodo: no hay ya muchos profesionales que puedan programar en este lenguaje, así que IBM se ha propuesto tomar otro camino: traducirlo a Java.
Puede que los más jóvenes no hayan oído hablar del lenguaje de programación COBOL (Common Business Oriented Language), pero se trata de uno de los más veteranos y, sorprendentemente, uno de los más resilientes.
Una encuesta de 2022 revelaba que siguen existiendo 800.000 millones de líneas de código de COBOL en entornos de producción dando servicio a todo tipo de empresas, y lo curioso es que ese número creció notablemente desde 2017, cuando se estimaba que había 220.000 millones de líneas.
El problema, claro, es que los años pesan y el lenguaje es ineficiente para los tiempos que corren.
Las empresas que lo siguen utilizando han realizado procesos de migración cuando han podido, el Banco de Australia tardó 5 años e invirtió 700 millones de dólares en uno de esos procesos, pero hay algunos proyectos tan gigantes que adaptarlos ha sido hasta ahora imposible.
El Departamento de Defensa de EEUU lleva intentando hacer eso mismo con su sistema de gestión MOCAS desde hace años: cuando se comenzó a usar ni siquiera se usaba una pantalla y un teclado, sino tarjetas perforadas.
IBM ha anunciado estos días Code Assistant for IBM Z, una plataforma que usa un modelo de IA generativa capaz de traducir COBOL para convertirlo en código Java.
Se espera que esté disponible en el cuarto trimestre de 2023, y se postula como una opción prometedora a la hora de reemplazar proyectos veteranos que se basaban en ese lenguaje para adaptarlos a los nuevos tiempos en los mainframes donde esas aplicaciones suelen correr.
Code Assistant for IBM Z es el modelo de generación de código que no solo entiende COBOL y Java, sino otros 80 lenguajes de programación diferentes que permiten utilizarlo en otro tipo de escenarios.
Según los responsables de IBM, este sistema es capaz de mantener tanto el rendimiento como la seguridad de la aplicación original.
El modelo ha sido entrenado con 1,5 billones de tokens y tiene 20.000 millones de parámetros.
Acepta además ventanas de contexto de hasta 32.000 tokens, lo que permite introducir largas porciones de código COBOL que luego son traducidas.
Ruchir Puri, científico jefe de IBM Research, explicaba que aunque ya existían traductores de COBOL a Java, Code Assistant es superior al evitar el sacrificio de algunas de las ventajas proporcionadas por COBOL y produce código fácil de mantener, algo que por lo visto no está tan claro en productos de la competencia.
De hecho, es capaz de ofrecer un resultado mixto que combina Java con antiguas secciones de código COBOL que siguen pudiéndose aprovechar si se considera que son útiles para la plataforma traducida.
Un reciente estudio de Stanford indicó que este tipo de herramientas pueden introducir vulnerabilidades en el código, algo que Puri también admite.
Aún así, aclara, “es esencial que el código se analice con escáneres de vulnerabilidades de última generación para garantizar la seguridad del código“.
En la actualidad el 84% de los clientes que utilizan mainframes de IBM ejecutan en ellos aplicaciones en COBOL en segmentos como el financiero y el gubernamental.
Esta división de negocio sigue siendo crucial para IBM y la empresa está tratando de convertirla en una pasarela para su división más lucrativa, la de los entornos de computación híbrida (nube incluida) que la empresa está impulsando desde hace años.
Fuente: IBM NewsRoom