COBOL, ou Common Business Oriented Language, est l’un des langages de programmation les plus anciens utilisés, datant d’environ 1959. Il a eu une endurance surprenante ; selon une enquête de 2022, plus de 800 milliards de lignes COBOL sont utilisées sur les systèmes de production, contre environ 220 milliards en 2017.
Mais COBOL a la réputation d’être un langage difficile à naviguer et inefficace. Pourquoi ne pas migrer vers un système plus récent ? Pour les grandes organisations, cela a tendance à être une proposition complexe et coûteuse, étant donné le petit nombre d’experts COBOL dans le monde. Lorsque la Commonwealth Bank of Australia a remplacé sa plate-forme principale COBOL en 2012, cela a pris cinq ans et a coûté plus de 700 millions de dollars.
Cherchant à présenter une nouvelle solution au problème de la modernisation des applications COBOL, IBM a dévoilé aujourd’hui Code Assistant pour IBM Z, qui utilise un modèle d’IA générateur de code pour traduire le code COBOL en Java. Prévu pour être généralement disponible au quatrième trimestre 2023, Code Assistant pour IBM Z entrera en version préliminaire lors de la conférence TechXchange d’IBM à Las Vegas début septembre.
Code Assistant pour IBM Z est conçu pour aider les entreprises à refactoriser leurs applications mainframe, idéalement tout en préservant les performances et la sécurité, selon Ruchir Puri, scientifique en chef d’IBM Research. S’exécutant localement dans une configuration sur site ou dans le cloud en tant que service géré, Code Assistant est alimenté par un modèle de génération de code, CodeNet, qui peut comprendre non seulement COBOL et Java, mais également environ 80 langages de programmation différents.
« IBM a construit un nouveau modèle de code d’IA génératif à la pointe de la technologie pour transformer les anciens programmes COBOL en Java d’entreprise avec un degré élevé de naturel dans le code généré », a déclaré Puri à TechCrunch dans une interview par e-mail. « En plus de la transformation du code, Code Assistant prend en charge le cycle de vie complet de la modernisation des applications et aide les développeurs à comprendre, refactoriser, transformer et valider le code traduit dans une architecture moderne. »
Puri dit que CodeNet, qui a été formé avec 1,5 billion de jetons et possède 20 milliards de paramètres, a été conçu avec une grande fenêtre contextuelle – 32 000 jetons – pour « capturer le contexte plus large » pour « une transformation COBOL vers Java plus efficace ». Les paramètres sont les parties d’un modèle apprises à partir des données de formation historiques et définissent essentiellement la compétence du modèle sur un problème, comme la génération de texte, tandis que les « jetons » représentent le texte brut (par exemple, « fan », « tas » et « tic » pour le mot « fantastique »). Quant à la fenêtre contextuelle, elle fait référence au texte que le modèle considère avant de générer du texte supplémentaire.
Il existe aujourd’hui un certain nombre d’outils, d’applications et de services permettant de convertir les applications COBOL en syntaxe Java, dont certains sont entièrement automatisés. Puri le reconnaît, mais fait valoir que Code Assistant prend des mesures pour éviter de sacrifier les capacités de COBOL tout en réduisant les coûts et en produisant un code facile à maintenir, contrairement à certaines offres concurrentes du marché.
« IBM a créé Code Assistant pour IBM Z afin de pouvoir mélanger et assortir les services COBOL et Java », a déclaré Puri. « Si les capacités de « compréhension » et de « refactorisation » du système recommandent qu’un sous-service donné de l’application doive rester en COBOL, il restera ainsi et les autres sous-services seront transformés en Java. ”
Cela ne veut pas dire que Code Assistant est parfait. Une étude récente de Stanford révèle que les ingénieurs logiciels qui utilisent des systèmes d’IA générateurs de code similaires sont plus susceptibles de provoquer des vulnérabilités dans les applications qu’ils développent. En effet, Puri met en garde contre le déploiement de code produit par Code Assistant avant de l’avoir revu par des experts humains.
« Comme tout système d’IA, il peut y avoir des modèles d’utilisation uniques du système d’une entreprise. COBOL une application que Code Assistant pour IBM Z n’a peut-être pas encore maîtrisée », a déclaré Puri. « Il est essentiel que le code soit scanné avec des scanners de vulnérabilité à la pointe de la technologie pour garantir la sécurité du code. »
Risques mis à part, IBM considère sans aucun doute des outils comme Code Assistant comme importants pour sa croissance future. Aujourd’hui, environ 84 % des clients mainframe d’IBM utilisent COBOL, principalement des clients des secteurs financier et gouvernemental. Et même si la division mainframe d’IBM représente encore une grande partie de son activité globale, la société considère le mainframe comme un pont vers les environnements informatiques hybrides expansifs et lucratifs qu’elle héberge et facilite également.
IBM voit également un avenir dans des outils d’IA générant du code plus larges, avec l’intention de concurrencer des applications telles que GitHub Copilot et Amazon CodeWhisperer. En mai, IBM a lancé fm.model.code au sein de son service Watsonx AI, qui alimente Watson Code Assistant, permettant aux développeurs de générer du code à l’aide d’invites en anglais simple dans tous les programmes, y compris Ansible Lightspeed de Red Hat.