IBM recurre a la IA para traducir el código COBOL a Java


COBOL, o lenguaje común orientado a los negocios, es uno de los lenguajes de programación más antiguos en uso, que se remonta aproximadamente a 1959. Ha tenido una sorprendente capacidad de permanencia; Según una encuesta de 2022, hay más de 800 mil millones de líneas de COBOL en uso en los sistemas de producción, frente a los 220 mil millones estimados en 2017.

Pero COBOL tiene la reputación de ser un lenguaje ineficiente y difícil de navegar. ¿Por qué no migrar a uno más nuevo? Para las grandes organizaciones, tiende a ser una propuesta compleja y costosa, dada la pequeña cantidad de expertos en COBOL en el mundo. Cuando el Commonwealth Bank of Australia reemplazó su plataforma principal COBOL en 2012, tardó cinco años y costó más de 700 millones de dólares.

Con el objetivo de presentar una nueva solución al problema de la modernización de las aplicaciones COBOL, IBM presentó hoy Code Assistant para IBM Z, que utiliza un modelo de inteligencia artificial generador de código para traducir el código COBOL a Java. Code Assistant para IBM Z, que estará disponible de forma general en el cuarto trimestre de 2023, entrará en versión preliminar durante la conferencia TechXchange de IBM en Las Vegas a principios de septiembre.

Code Assistant para IBM Z está diseñado para ayudar a las empresas a refactorizar sus aplicaciones de mainframe, idealmente preservando el rendimiento y la seguridad, según el científico jefe de IBM Research, Ruchir Puri. Code Assistant, que se ejecuta localmente en una configuración local o en la nube como un servicio administrado, funciona con un modelo de generación de código, CodeNet, que puede comprender no solo COBOL y Java, sino también alrededor de 80 lenguajes de programación diferentes.

«IBM construyó un nuevo modelo de código de IA generativo de última generación para transformar los programas COBOL heredados en Java empresarial con un alto grado de naturalidad en el código generado», dijo Puri a TechCrunch en una entrevista por correo electrónico. «Además de la transformación del código, Code Assistant respalda el ciclo de vida completo de modernización de la aplicación y ayuda a los desarrolladores a comprender, refactorizar, transformar y validar el código traducido en una arquitectura moderna».

Puri dice que CodeNet, que fue entrenado con 1,5 billones de tokens y tiene 20 mil millones de parámetros, fue diseñado con una gran ventana de contexto (32,000 tokens) para «capturar el contexto más amplio» para una «transformación más eficiente de COBOL a Java». Los parámetros son las partes de un modelo aprendidas de los datos de entrenamiento históricos y esencialmente definen la habilidad del modelo en un problema, como generar texto, mientras que los «tokens» representan texto sin formato, por ejemplo, «fan», «tas» y «tic» para la palabra “fantástico”. En cuanto a la ventana de contexto, se refiere al texto que el modelo considera antes de generar texto adicional.

Actualmente existen varias herramientas, aplicaciones y servicios para convertir aplicaciones COBOL a sintaxis Java, algunas de las cuales están completamente automatizadas. Puri reconoce esto, pero argumenta que Code Assistant toma medidas para evitar sacrificar las capacidades de COBOL y al mismo tiempo reduce los costos y produce código que es fácil de mantener, a diferencia de algunas de las ofertas rivales en el mercado.

«IBM creó Code Assistant para IBM Z para poder combinar y combinar servicios COBOL y Java», dijo Puri. “Si las capacidades de ‘comprender’ y ‘refactorizar’ del sistema recomiendan que un determinado subservicio de la aplicación debe permanecer en COBOL, se mantendrá así y los demás subservicios se transformarán en Java. «

Eso no quiere decir que Code Assistant sea perfecto. Un estudio reciente de Stanford encuentra que los ingenieros de software que utilizan sistemas de inteligencia artificial que generan códigos similares tienen más probabilidades de causar vulnerabilidades en las aplicaciones que desarrollan. De hecho, Puri advierte contra la implementación de código producido por Code Assistant antes de que expertos humanos lo revisen.

“Como cualquier sistema de IA, puede haber patrones de uso únicos de una empresa. COBOL aplicación que Code Assistant para IBM Z quizás aún no haya dominado”, dijo Puri. «Es esencial que el código se escanee con escáneres de vulnerabilidades de última generación para garantizar la seguridad del código».

Dejando a un lado los riesgos, IBM sin duda considera que herramientas como Code Assistant son importantes para su crecimiento futuro. Hoy en día, alrededor del 84% de los clientes de mainframe de IBM ejecutan COBOL, en su mayoría clientes de los sectores financiero y gubernamental. Y si bien la división mainframe de IBM sigue siendo una gran parte de su negocio general, la compañía ve el mainframe como un puente hacia los entornos informáticos híbridos expansivos y lucrativos que también aloja y facilita.

IBM también ve un futuro en herramientas de inteligencia artificial más amplias para la generación de código, con la intención de competir con aplicaciones como GitHub Copilot y Amazon CodeWhisperer. En mayo, IBM lanzó fm.model.code dentro de su servicio Watsonx AI, que impulsa Watson Code Assistant, lo que permite a los desarrolladores generar código utilizando indicaciones en inglés sencillo en programas como Ansible Lightspeed de Red Hat.



Source link-48