Africa Studio - stock.adobe.com
Warum Entwickler COBOL weiterhin im Auge behalten sollten
Angesichts der starken Nachfrage nach COBOL-Expertise ist es für Entwickler an der Zeit, darüber nachzudenken, wie viel sie wirklich über diese Sprache wissen.
Auch wenn moderne Programmiersprachen wie Java und .NET verbreiteter sind, ist COBOL immer noch lebendig. Ähnlich wie andere alte, imperative Sprachen wie Fortran und Basic gilt COBOL als ein Relikt aus den frühen Tagen der Programmierung. Heute gibt es jedoch eine überwältigende Anzahl von Organisationen, die COBOL-Code tief in ihren wichtigsten Anwendungssystemen vergraben haben.
Die Common Business Oriented Language (COBOL) wird nach Angaben des Beratungsunternehmens COBOL Cowboys von 90 Prozent der Fortune-500-Unternehmenssoftware-Umgebungen verwendet.
Ihre Popularität rührt von der Verwendung englischer Wörter und Ausdrücke her, die für allgemeine Geschäftsanwender leichter zu verstehen sind als Programmierbegriffe. Die Sprache ist besonders in Finanzinstituten und Regierungsbehörden verbreitet, da diese neben der Verteidigungsindustrie zu den ersten Anwendern gehörten. Später, in den 1990er Jahren, wurde COBOL auch für den Transportsektor populär.
Die Banken bewältigen eine enorme Menge an umfangreichen Batch- und Transaktionsverarbeitungsaufträgen damit. Laut Reuters basieren 43 Prozent der Bankensysteme auf COBOL, 80 Prozent der persönlichen Banktransaktionen verwenden COBOL, und Geldautomaten verwenden den COBOL-Code zum Lesen von 95 Prozent der Kontoabzüge. Darüber hinaus schätzt IBM, dass derzeit 240 Milliarden Zeilen COBOL-Code in Produktion sind, und jedes Jahr kommen weitere fünf Milliarden hinzu.
Da die Sprache seit Jahrzehnten aktiv verwendet wird, sollten Softwareteams den Platz für modernes COBOL im Unternehmen, die damit verbundenen Karrieremöglichkeiten und Strategien verstehen, um entsprechende Systeme am Laufen zu halten.
Architekturstrategien für die Modernisierung von COBOL
In den späten 1990er Jahren gab es eine große Nachfrage nach COBOL, als Unternehmen ihren Code in Vorbereitung auf den gefürchteten Jahr-2000-Fehler überprüften. Als die webbasierten Aktivitäten in den 2000er Jahren zunahmen und die Unternehmen begannen, die Systemkommunikation durch Protokolle wie TCP/IP und Sprachen wie JSON zu erleichtern, verlor COBOL die Gunst vieler Unternehmen. Die Übersetzung von COBOL-Systemen in die neueren Sprachen und Hosting-Optionen stand für die große Mehrheit der Organisationen oben auf der Prioritätenliste.
Es gibt einige Möglichkeiten, wie Unternehmen eine COBOL-Modernisierung durchführen können, jede mit ihren eigenen Vorteilen und einer Reihe von Vorbehalten. Die Strategien reichen von einem Code-Rewrite oder Refactoring über Codekonvertierung oder Datentransfer von einem System in ein anderes bis hin zur Cloud-Migration.
Rewrite und Refactoring von Code. Eine Möglichkeit, wie Unternehmen Aktualisierungen von COBOL-Systemen handhaben, sind das Neuschreiben und Refactoring des Codes. Bei dieser Modernisierungsoption handelt es sich jedoch nicht nur um eine Codekonvertierung, sondern um die Konvertierung eines gesamten Anwendungssystems und seiner Abhängigkeiten. Dieser Ansatz ist kostspielig, und alten COBOL-Anwendungen fehlt wahrscheinlich die erforderliche Dokumentation, wie zum Beispiel funktionale Spezifikationen.
Tools zur Codekonvertierung verwenden. Es ist möglich, Tools zu verwenden, die alten COBOL-Quellcode in Alternativen wie Java oder C# konvertieren. Die Ergebnisse sind jedoch unterschiedlich.
Konvertierter Code kann schwierig zu lesen und zu debuggen sein. Die alte Plattform muss von IBM CICS und Job Control Language mit COBOL zu Microsoft Windows oder Linux mit der neuen Sprache wechseln.
Eine Tool-basierte Codekonvertierung ist kein schlechter Weg, um mit der Modernisierung bestimmter Mengen von COBOL-Code für eine Anwendung zu experimentieren, aber rechnen Sie damit, dass Sie für technische Berater und Vertragsentwickler zahlen müssen, damit die Konvertierung funktioniert.
Daten von COBOL-Systemen übertragen. Wenn Unternehmen eine Fusion, Übernahme oder eine andere größere Umstrukturierung durchmachen, haben Softwarearchitekten die Möglichkeit, Geschäftskonten, Rechnungen, Benutzer und andere Unternehmensinformationen in ein moderneres Softwaresystem zu übertragen.
Diese Migration erfordert etwas kundenspezifischen Code, damit die neuen Systeme wie die alten funktionieren. Sie erfordert auch einen energischen Ansatz – Kunden müssen möglicherweise einige komplexe Funktionen streichen. Es wird sich jedoch wahrscheinlich als wesentlich billiger erweisen, COBOL-Systeme durch neuere Systeme zu ersetzen, als ein massives Code-Neuschreibungsprojekt.
Umstieg auf die Cloud. Eine andere Möglichkeit ist die Verlagerung des COBOL-Codes auf ein OpenVMS-Betriebssystem, ein ursprünglich von Digital Equipment Corporation freigegebenes Verarbeitungsbetriebssystem, das eine x86-Architektur unterstützen kann.
Es könnte sogar auf ein Linux-Betriebssystem portiert werden, das Docker und Kubernetes ausführen kann. Dieser Ansatz eignet sich gut für Organisationen, die bereits Webserver und verteilte Anwendungsdienste in die Cloud verlagert haben und mit dem Prozess vertraut sind. Diese Art der COBOL-Modernisierung kann auch die Lizenzgebühren, die Ausgaben für die Verwaltung von Rechenzentren und die Zeit für das Debugging von Code reduzieren.
Ein Cloud-basierter Ansatz ist die am wenigsten riskante Option für eine Migration weg von der COBOL-Programmierung, da Sie das alte Rechenzentrum ausfallsicher weiter betreiben können. Auf diese Weise kann Ihr COBOL-Kernsystem weiterhin das tun, was es am besten kann – nämlich Transaktionen verarbeiten – während Komponenten und Dienste langsam auf eine angeschlossene Cloud-Plattform verlagert werden. Nicht-COBOL-Funktionen, wie zum Beispiel Lohn- und Gehaltsabrechnung und Buchhaltung, werden wahrscheinlich relativ leicht auf eine webbasierte Plattform übertragen.
COBOL-Fähigkeiten und Karriereoptionen
COBOL-Experte zu werden bedeutet eine intensive Spezialisierung auf eine Sprache. Eine intensive Beschäftigung mit COBOL kann Ihre Fähigkeit, andere Sprachen und Anwendungsstile zu erforschen, möglicherweise beeinträchtigen. COBOL ist zudem unglaublich wortreich, ganz zu schweigen davon, dass der grundlegende COBOL-Code keine prozedurale Rekursion, Unterstützung funktionaler Programmierung oder integrierte Unterstützung für reguläre Ausdrücke enthält. Es erfordert einfach mehr Tipparbeit.
Mit COBOL können Entwickler jedoch auch einen Mittelweg finden. Wenn Sie genug lernen können, um sich zum Beispiel in einer Krise weiterzuentwickeln, dann bringen Sie Ihrem Team immer noch einen großen Mehrwert. IBM beziffert das typische Alter der COBOL-Programmierer auf 58 Jahre, und Hochschulen haben COBOL nicht prominent genug in ihren Lehrplänen, um eine neue Generation von COBOL-Programmierern heranzuziehen. Gleichzeitig ist der Bedarf für COBOL-Programmierung aber weiterhin gegeben. Für Entwickler bietet sich hier eine Chance.
Denken Sie darüber nach, dem Schreiben von COBOL-Code Zeit zu widmen, falls dies erforderlich sein sollte, aber lassen Sie sich nicht in eine Schublade stecken, indem Sie nicht auch andere Sprachen lernen. Nehmen Sie an Kursen zu COBOL teil, wie sie zum Beispiel von Udemy und Coursera angeboten werden. Diese Online-Lernplattformen bieten oft auch Schulungen in COBOL-basierten IBM-Mainframe-Managementsprachen und -Tools an.
Hier sind ein paar Beispiele, wo es sich lohnt, Wissen aufzufrischen:
- Time-Sharing-Option-Umgebungen
- Job Control Language
- CICS-Software
- DB2-Datenbanken
Denken Sie daran, es ist nie zu spät, COBOL zu lernen. Tatsächlich könnte es sogar die Eintrittskarte zu einer stärkeren Karriere in der Softwareentwicklung sein.