COBOL (Common Business Oriented Language) ist eine der ältesten verwendeten Programmiersprachen und geht auf das Jahr 1959 zurück. Sie verfügt über ein überraschendes Durchhaltevermögen; laut einem Jahr 2022 UmfrageIn Produktionssystemen sind über 800 Milliarden COBOL-Zeilen im Einsatz, gegenüber geschätzten 220 Milliarden im Jahr 2017.
Aber COBOL hat den Ruf, eine schwer zu navigierende und ineffiziente Sprache zu sein. Warum nicht auf eine neuere Version migrieren? Für große Organisationen ist es im Vergleich zu kleinen Unternehmen meist ein komplexes und kostspieliges Unterfangen Nummer der COBOL-Experten weltweit. Bei der Commonwealth Bank of Australia ersetzt Die Einführung der Kernplattform COBOL im Jahr 2012 dauerte fünf Jahre und kostete über 700 Millionen US-Dollar.
IBM möchte heute eine neue Lösung für das Problem der Modernisierung von COBOL-Apps vorstellen enthüllt Code Assistant für IBM Z, der ein codegenerierendes KI-Modell verwendet, um COBOL-Code in Java zu übersetzen. Code Assistant für IBM Z soll im vierten Quartal 2023 allgemein verfügbar sein und Anfang September auf der TechXchange-Konferenz von IBM in Las Vegas in die Vorschau gehen.
Laut Ruchir Puri, Chefwissenschaftler von IBM Research, soll Code Assistant für IBM Z Unternehmen bei der Umgestaltung ihrer Mainframe-Apps unterstützen, im Idealfall unter Beibehaltung von Leistung und Sicherheit. Code Assistant läuft lokal in einer lokalen Konfiguration oder in der Cloud als verwalteter Dienst und basiert auf einem Code-Generierungsmodell, CodeNet, das nicht nur COBOL und Java, sondern rund 80 verschiedene Programmiersprachen versteht.
„IBM hat ein neues, hochmodernes generatives KI-Codemodell entwickelt, um ältere COBOL-Programme mit einem hohen Maß an Natürlichkeit im generierten Code in Enterprise-Java umzuwandeln“, sagte Puri gegenüber Tech in einem E-Mail-Interview. „Zusätzlich zur Codetransformation unterstützt Code Assistant den gesamten Lebenszyklus der Anwendungsmodernisierung und hilft Entwicklern, den übersetzten Code in einer modernen Architektur zu verstehen, umzugestalten, zu transformieren und zu validieren.“
Puri sagt, dass CodeNet, das mit 1,5 Billionen Tokens trainiert wurde und über 20 Milliarden Parameter verfügt, mit einem großen Kontextfenster – 32.000 Tokens – entwickelt wurde, um „den breiteren Kontext zu erfassen“ für eine „effizientere COBOL-zu-Java-Transformation“. Parameter sind die Teile eines Modells, die aus historischen Trainingsdaten gelernt wurden, und definieren im Wesentlichen die Fähigkeiten des Modells bei einem Problem, beispielsweise der Generierung von Text, während „Tokens“ Rohtext darstellen – z. B. „fan“, „tas“ und „tic“ für das Wort „fantastisch“. Das Kontextfenster bezieht sich auf den Text, den das Modell berücksichtigt, bevor zusätzlicher Text generiert wird.
Heutzutage gibt es eine Reihe von Tools, Apps und Diensten zum Konvertieren von COBOL-Apps in Java-Syntax, von denen einige vollständig automatisiert sind. Puri erkennt dies an, argumentiert jedoch, dass Code Assistant Schritte unternimmt, um die Fähigkeiten von COBOL nicht zu opfern und gleichzeitig Kosten zu senken und einfach zu wartenden Code zu erstellen – im Gegensatz zu einigen Konkurrenzangeboten auf dem Markt.
„IBM hat den Code Assistant für IBM Z entwickelt, um COBOL- und Java-Dienste kombinieren zu können“, sagte Puri. „Wenn die ‚Verstehen‘- und ‚Refaktor‘-Funktionen des Systems empfehlen, dass ein bestimmter Unterdienst der Anwendung in COBOL bleiben muss, bleibt dies so und die anderen Unterdienste werden in Java umgewandelt.“ ”
Das soll nicht heißen, dass Code Assistant fehlerfrei ist. Eine aktuelle Stanford-Studie kommt zu dem Ergebnis, dass Softwareentwickler, die ähnliche codegenerierende KI-Systeme verwenden, mit größerer Wahrscheinlichkeit Schwachstellen in den von ihnen entwickelten Apps verursachen. Tatsächlich warnt Puri davor, von Code Assistant erstellten Code bereitzustellen, bevor er von menschlichen Experten überprüft wird.
„Wie bei jedem KI-System kann es einzigartige Nutzungsmuster eines Unternehmens geben COBOL „Eine Anwendung, die Code Assistant für IBM Z möglicherweise noch nicht beherrscht“, sagte Puri. „Es ist wichtig, dass der Code mit modernsten Schwachstellenscannern gescannt wird, um die Codesicherheit zu gewährleisten.“
Abgesehen von den Risiken sieht IBM zweifellos Tools wie Code Assistant als wichtig für sein zukünftiges Wachstum an. Heute, um 84 % der Mainframe-Kunden von IBM nutzen COBOL – hauptsächlich Kunden aus dem Finanz- und Regierungssektor. Und obwohl die Mainframe-Abteilung von IBM immer noch einen großen Teil des Gesamtgeschäfts ausmacht, betrachtet das Unternehmen den Mainframe als Brücke zu den umfangreichen, lukrativen Hybrid-Computing-Umgebungen, die es auch hostet und ermöglicht.
IBM sieht eine Zukunft auch in umfassenderen Code-generierenden KI-Tools – mit der Absicht, mit Apps wie GitHub Copilot und Amazon CodeWhisperer zu konkurrieren. Im Mai startete IBM fm.model.code innerhalb seines KI-Dienstes Watsonx, der den Watson Code Assistant unterstützt und es Entwicklern ermöglicht, Code mit einfachen englischen Eingabeaufforderungen in allen Programmen, einschließlich Ansible Lightspeed von Red Hat, zu generieren.