Eine Programmiersprache entwickelt sich weiter Cobol lebt im 21. Jahrhundert weiter

Autor / Redakteur: Mathias Mezger * / Ulrich Roderer |

Cobol hat sich in den letzten Jahren stark weiterentwickelt. Die Programmiersprache lässt sich in modernen Entwicklungsumgebungen wie Eclipse oder Visual Studio einsetzen, und verfügt über alle Sprachelemente, die für die Integration in aktuelle Plattformen nötig sind.

Anbieter zum Thema

Sprachen, die zu nativem Code – Objekt-Code auf dem jeweiligen Betriebssystem – übersetzt werden, wie zum Beispiel C, können relativ einfach von Cobol aufgerufen werden oder selbst Cobol-Programme aufrufen.
Sprachen, die zu nativem Code – Objekt-Code auf dem jeweiligen Betriebssystem – übersetzt werden, wie zum Beispiel C, können relativ einfach von Cobol aufgerufen werden oder selbst Cobol-Programme aufrufen.
(Bild: Micro Focus)

In der Softwareentwicklung stehen derzeit Themen wie Apps und Mashups oder Frameworks für mobile Systeme wie Titanium oder Rhodes im Mittelpunkt der Aufmerksamkeit. Demgegenüber führt Cobol fast ein Schattendasein. Doch öffentliche Wahrnehmung und tatsächliche Bedeutung klaffen bei Cobol schon seit langem weit auseinander.

Nach wie vor ist Cobol eine der wichtigsten Programmiersprachen. Transaktionsintensive Anwendungen mit vielen parallel arbeitenden Nutzern, wie sie in Banken, Versicherungen, in Industrie und Handel oder bei Buchungssystemen in der Touristik zum Einsatz kommen, sind heute wie vor dreißig Jahren in Cobol programmiert.

Dementsprechend ist der Bestand an Cobol-Applikationen weiterhin immens; er wird auf weltweit mehr als 220 Milliarden Code-Zeilen geschätzt. Diese Basis sichert Cobol eine langfristige Zukunft, große Unternehmen sehen in Cobol weiterhin eine wichtige Säule für Geschäftsanwendungen, die sie in ihren langfristigen Planungen berücksichtigen.

Eine Abkehr von Cobol würde jedenfalls einen enormen Aufwand bedeuten und die Risiken, die mit zwangsläufig jedem neuen Softwareprojekt verbunden sind, wären unüberschaubar. Zudem sind die mit Cobol erstellten Anwendungen ausgetestet und langjährig bewährt, und sie sind hinsichtlich Stabilität, Performance und Verfügbarkeit nicht so leicht zu übertreffen.

Cobol im Generationswechsel

Natürlich entwickelt sich auch Cobol weiter. Dass diese Sprache über einen so langen Zeitraum eine führende Position in der Softwareentwicklung halten konnte, liegt nicht zuletzt daran, dass sie sich stets als außerordentlich flexibel gegenüber aktuellen Entwicklungen erwiesen hat und dass sie ständig an aktuelle Technologien angepasst wurde.

Bei dieser ständigen Weiterentwicklung macht sich seit einigen Jahren ein Faktor verstärkt geltend: In der Softwareentwicklung für die "großen" Systeme hat ein umfassender personeller Generationswechsel begonnen. Viele erfahrene Cobol-Entwickler, die in den 70er- und 80er-Jahren auf den damals üblichen Hostsystemen ihr Handwerk gelernt haben, sind bereits aus dem Berufsleben ausgeschieden und die verbliebenen werden in absehbarer Zeit folgen.

Die nachrückende Generation von Softwareentwicklern kommt aus einer ganz anderen Welt, sie ist an andere Prozesse, Methoden und Werkzeuge gewöhnt. Diese neue Entwicklergeneration auf eine klassische Entwicklungsumgebung für Mainframes mit Green-Screen und ohne Maus zu zwingen, kann keine Perspektive sein; gerade die kreativen Köpfe ließen sich so nur schwer an ein Unternehmen binden.

Diese Entwickler wollen, ob Host oder nicht, mit modernen IDEs wie Eclipse oder Visual Studio arbeiten. Dabei geht es nicht einfach um persönliche Vorlieben oder Aversionen: Diese Entwickler arbeiten mit ihren vertrauten Tools und Methoden deutlich produktiver.

Sprachunabhängigkeit

Mittlerweile zeigt sich jedoch immer mehr, dass es für die kommenden Entwicklergenerationen nicht mehr so sehr darauf ankommt, in welcher Sprache entwickelt wird, ob in Java, Cobol oder C#, sondern vielmehr darauf, dass die jeweilige Entwicklungsumgebung die Anforderungen einer modernen Tool-Landschaft erfüllt.

Die Entwicklungsprozesse oder auch Methoden wie die Agile Entwicklung sind vor diesem Hintergrund weitgehend sprachunabhängig. Damit kann der Know-how-Transfer beziehungsweise der Generationenwechsel auf sanfte Art durchgeführt werden.

Mit modernem Cobol ist das problemlos möglich, alle aktuellen IDEs und Methoden werden unterstützt. Selbst dezidierte Mainframe-Programme werden nur noch selten am Mainframe entwickelt, sondern per „Offload Development“ am PC und können bei Bedarf auch auf anderen Plattfomen wie Linux, Unix und Windows zum Einsatz gebracht werden, strikt nach dem alten Ansatz „write once, run anywhere“.

Voraussetzung dafür war, dass sich Cobol in den letzten beiden Jahrzehnten mehr und mehr von der Mainframe-Plattform gelöst hat. Die hohe Standardisierung der Sprache erlaubt es, ein Cobol-Programm in der Regel ohne Veränderungen auf jeden beliebigen Rechner zu portieren.

Re-Hosting des produktiven Betriebs

Durch die Verlagerung nicht nur der Entwicklung, sondern auch des produktiven Betriebs auf die offenen Plattformen Linux, Unix und Windows, werden zum einen die Anforderungen der neuen Entwicklergeneration erfüllt, zum anderen können Unternehmen so bestehende Investitionen in Cobol nun in neuen Architekturen wie JVM oder .NET gleichwertig einbinden. Damit wird also ein hohes Maß an Investitionssicherheit für bestehende Cobol-Systeme geschaffen.

In der offenen Welt von Windows, Unix und Linux sind für Cobol-Compiler Schnittstellen zu anderen Sprachen, insbesondere zu C, Visual Basic, zur Windows API und zu Java, unverzichtbar. Sprachen wie zum Beispiel C, die zu nativem Code (Objekt-Code auf dem jeweiligen Betriebssystem) übersetzt werden, können relativ einfach von Cobol aufgerufen werden oder selbst Cobol-Programme aufrufen.

Neuste Cobol-Compiler sind beispielsweise in der Lage, den jeweiligen Code für die Zielplattform beziehungsweise das jeweilige Framework zu generieren, also nativen Code unter Windows, Unix und Linux zum Beispiel für die Verbindung zu C, Microsoft Intermediate Language (MSIL) für das .NET-Framework unter Windows sowie Java Byte Code für die Java Virtual Machine (JVM).

Dadurch kann ein Cobol-Programm sowohl in der .NET Common Language Runtime als auch in der JVM laufen und unterscheidet sich zur Laufzeit fast nicht mehr von einem Java oder C#-Programm. Die Syntax des objektorientierten Cobol (OO-Cobol) ermöglicht dabei die Definition und den Aufruf von Klassen und Methoden über die Sprachgrenzen hinweg.

Verbunden mit Frameworks

Das heutige Cobol spiegelt diese Entwicklung schon in seiner eigenen Ausgestaltung wider. So hat Visual Cobol von Micro Focus die Einbindung von Code in die Manged-Welt sehr stark vereinfacht, indem es dem Entwickler bereits eine passende Syntax dafür zur Verfügung stellt (vgl. Code-Beispiel). Modernes Cobol verzichtet auf unnötigen Ballast und implementiert die Syntax-Notationen der modernen Programmiersprache. Formal steht Cobol daher heute mit C# und Java auf einer Stufe.

Durch solche Erweiterungen der Cobol-Sprache können nun Anwendungen gebaut werden, die aus vorhandenen Cobol-Geschäftsprozessen und einer C#- oder Java-Oberfläche bestehen und in einer gemeinsamen Laufzeitumgebung wie JVM oder .NET genutzt werden können.

Damit lassen sich Altsysteme, nach einer Migration, mit ihrem hohen Cobol-Anteil in den Geschäftsprozessen in die Zukunft übernehmen und gleichzeitig modernisieren. Auf dieser Basis ist es dann auch problemlos möglich neue Plattformen etwa der mobilen Systeme oder des Cloud Computing mit in Cobol geschriebener Geschäftslogik zu versorgen.

Angesichts umfassender Integration in andere Technologien stellt sich natürlich die Frage, weshalb Unternehmen überhaupt noch an Cobol festhalten sollten, beziehungsweise ob dann nicht gleich ein kompletter Wechsel auf diese neuen Technologien erfolgen sollte – also der mitunter geforderte "saubere" Schnitt.

Effizienz der Tools

Aus Sicht des Entwicklers ist es, wie ausgeführt, tatsächlich weitgehend egal, ob er Anwendungen erstellt, die am Ende als Cobol- oder etwa als Java-Programme ausgeführt werden. Für Entwickler unterscheiden sich die Arbeitsweisen und Werkzeuge nur wenig, so dass der Umstellungsaufwand überschaubar bleiben würde.

Hier ist jedoch an den vorhandenen Bestand an Anwendungscode und die darin enthaltenen Werte zu erinnern. Durch die Verwendung von Cobol innerhalb einer Entwicklungsumgebung wie Eclipse oder Visual Studio ersparen sich Unternehmen nicht weniger als das komplette Re-Write ihrer geschäftskritischen Anwendungen mit all seinen Risiken und Kosten. Sie können stattdessen eine evolutionäre Modernisierung einleiten, die den Modernisierungsbedarf des Business stärker in den Vordergrund stellt ohne gleichzeitige risiko-reiche Projekte zur Neuentwicklung zu starten.

Wenn Anwendungen in kritischen Teilen auf einer erprobten Cobol-Logik basieren, wird das Gesamtrisiko der Bereitstellung neuer Anwendungen geringer. Software-Projekte können dann nicht nur mit weniger Aufwand durchgeführt, sondern insbesondere schneller abgeschlossen werden. Diesen Mehrwert bietet Cobol seinen Anwendern exklusiv.

* Mathias Mezger ist Senior Solution Architect bei Micro Focus in München.

(ID:44367256)