60 Jahre COBOL – obsolete Programmiersprache reif für die Rente?

| Autor: Sebastian Gerstl

Grace Hopper, Aufnahme aus dem jahr 1984. Die Programmiererin in Diensten der US Navy war Teil des CODASYL-Kommitees und Entwicklerin der datenzentrischen Computersprache FLOW-MATIC, welche eine der Grundlagen für die Programmiersprache COBOL bildete.
Grace Hopper, Aufnahme aus dem jahr 1984. Die Programmiererin in Diensten der US Navy war Teil des CODASYL-Kommitees und Entwicklerin der datenzentrischen Computersprache FLOW-MATIC, welche eine der Grundlagen für die Programmiersprache COBOL bildete. (Bild: gemeinfrei / CC0)

Diese Programmiersprache ist älter als die Diskette, aber aus vielen betriebswirtschaftlichen Anwendungen immer noch nicht wegzudenken: COBOL wird dieser Tage 60 Jahre alt. Das hohe Alter der Sprache bringt heutzutage viele Probleme mit sich – gerade was Modernisierung und Digitale Transformation betrifft.

In den 1950er Jahren waren Computer und Programmiersprachen noch nicht allgegenwärtig. So gab es etwa bis zum Jahr 1960 weniger als 15.000 sogenannte Solid-State-Computer in den gesamten Vereinigten Staaten, was mehr war als im gesamten Rest der Welt. Die meisten dieser Geräte wurden direkt in Assembler programmiert; für formulaische und numerische Berechnungen hatte sich ab 1957 immerhin Fortran als erste höhere Programmiersprache etabliert.

Trotz der beschränkten Anzahl an existierenden Rechnereinheiten machten sich aber bereits Mitte der 1950er Jahre sowohl Computerhersteller als auch Programmierer Sorgen über die rapide steigenden Kosten der Softwareentwicklung. Mit der zunehmenden Leistung neu entstehender Systeme stieg auch die Komplexität der zugrunde liegenden Software rapide an. Gerade aus unternehmerischer Seite wuchs der Wunsch nach einer hardwareunabhängigen und standardisierten Programmiersprache, die speziell auf betriebswirtschaftliche Ansprüche zugeschnitten war. Die Entwicklung kaufmännischer Software sollte auf diese Weise deutlich effizienter, schneller und kostengünstiger von der Hand gehen.

Am 8. April 1959 berief Mary K. Hawes, Informatikerin der Burroughs Corporation, ein Treffen von Vertretern der Wissenschaft, der Computeranwender und der Hersteller an der University of Pennsylvania ein, um ein formelles Treffen über gemeinsame Geschäftssprachen zu organisieren. Zu den geladenen Vertretern zählten unter anderem Jean Sammet, Saul Gorn und Grace Hopper, die Erfinderin der Datenverarbeitungssprache FLOW-MATIC (FLOW-Matic war eine der ersten existierenden, Compiler-basierten Computersprachen, welche in der Folge maßgeblichen Einfluss auf die Gestaltung von COBOL haben sollte).

Die daraus hervorgehende Conference on Data Systems Languages (CODASYL) machte sich daher die Entwicklung einer Programmiersprache zur Aufgabe, die sich speziell an betriebswirtschaftliche Ansprüche richten sollte: Hardwareunabhängigkeit, Portierbarkeit und die Fähigkeit zum Verwalten und Bearbeiten großer Datenmengen. Aus den dort beschlossenen Spezifikationen ging schließlich im September 1959 die „Common Business Oriented Language“, kurz COBOL, hervor – zehn Jahre, bevor die ersten Disketten-Laufwerke erschienen.

COBOL ist heute 60 – und immer noch im Einsatz

Es sollte zwar noch einige Jahre dauern, ehe COBOL den gewünschten Reifegrad erreichte. Da sich aber die Programmiersprache von Anfang an konsequent an Business-Anforderungen richtete, fand in COBOL geschriebene Software rasche Verbreitung. 1962 kündigte IBM an, für Programm-Code vorrangig COBOL zu verwenden; 1970 war es die weltweit am weitesten verbreitete Programmiersprache.

COBOL erfüllte dank seiner kaufmmännischen Ausrichtung einen Bedarf für den freien Markt, den zunächst keine andere existierende Programmiersprache abdecken konnte. Über ein Jahrzehnt war COBOL damit im Geschäfts- und Finanzwesen unangefochtener Spitzenreiter – die heute meist genutzte Programmiersprache, C, erschien erst 1972.

Diese Dominanz der frühen Jahre sorgt dafür, dass COBOL auch heute noch Beständigkeit besitzt – gerade im Finanzwesen. So stellte beispielsweise eine REUTERS-Erhebung 2017 fest, dass 43% aller Systeme im Bankwesen auf COBOL aufsetzen. 80% aller interpersonellen Bankgeschäfte basieren auf die eine oder andere Weise auf COBOL-Code – bei Geldautomaten waren es sogar 95%.

Im deutschsprachigen Raum ist der Anteil geringer, doch auch hierzulande stützen sich noch zahlreiche Anwendungen auf in den 60er- oder 70er-Jahren geschriebenem COBOL-Code – gerade im Bank- oder Versicherungswesen, wo Unternehmen als Erste Computer mit kaufmännischer Software im großen Stil einsetzten. Auch in zahlreichen Behörden, die sich schon in den 70er Jahren Systeme von IBM geholt haben, läuft im Kern häufig noch alter COBOL-Code.

Schattenseiten der Beständigkeit: Modernisierung und unflexible Modelle

Ein in COBOL verfasstes „Hallo Welt“-Programm: Die 60 Jahre alte Programmiersprache dominierte in den 1960er- und 1970er-Jahren die Software-Landschaft. Ihre Beständigkeit sorgt dafür, dass sie heute noch im Kern zahlreicher Anwendungen steckt – was problematisch ist. Nicht nur wird COBOL modernen Ansprüchen nicht mehr gerecht – COBOL-versierte Programmierer sterben regelrecht aus.
Ein in COBOL verfasstes „Hallo Welt“-Programm: Die 60 Jahre alte Programmiersprache dominierte in den 1960er- und 1970er-Jahren die Software-Landschaft. Ihre Beständigkeit sorgt dafür, dass sie heute noch im Kern zahlreicher Anwendungen steckt – was problematisch ist. Nicht nur wird COBOL modernen Ansprüchen nicht mehr gerecht – COBOL-versierte Programmierer sterben regelrecht aus. (Bild: COBOL-syntax / Joliv / CC BY-SA 3.0)

Eine solche langlebige Beständigkeit hat natürlich auch seine Nachteile. Viele Unternehmen haben heute Software im Einsatz, die in ihrem Kern jahrzehntealt ist. Auch wenn alles weiterentwickelt wurde und kaum noch Code aus der Anfangszeit in den Programmen steckt, bleibt doch die strukturelle Basis dieselbe: viele Anwendungen mögen in moderneren Sprachen geschrieben worden sein, stützen sich aber auf Host-Systeme, die einst in COBOL erstellt wurden. Die Nutzer arbeiten zwar mit neuen grafischen Interfaces, doch diese bilden nur ein modernes Frontend für uralte Architektur.

Allerdings sind solche Lösungen nicht für die schnelllebige digitale Welt von heute gemacht. Neue und schnell wechselnde Anforderungen, sowie sich verändernde Geschäftsmodelle und -prozesse lassen sich in diesen Enterprise-Applikationen oft nicht mehr adäquat abbilden, zumindest nicht in vertretbarer Zeit. Auch Sicherheitsaspekte spielen eine große Rolle: Als COBOL entstand, rechneten die Entwickler der Sprache nicht mit einer Zeit, in der Millionen von Rechnersystemen miteinander vernetzt sein könnten.

Zwar wurden regelmäßig Versuche unternommen, COBOL auf modernere Ansprüche anzupassen. Doch diese Versuche blieben eher sporadisch – die Furcht, Kompatibilität zu älterem Code zu verlieren und damit kostspielige Neuentwicklungen von Software zu forcieren, bremsten Modernisierungsbemühungen häufig aus. Über die Jahre hinweg erschienen immerhin diverse modernere COBOL-Standards wie COBOL-74, COBOL-85 oder – zuletzt – COBOL ISO/IEC 1989:2014. Erst seit 2002 sind Dinge wie Rekursion oder Floating-Point-, Bit- und Boolean-Datentypen möglich. Einem Leistungsumfang modernerer Sprachen wie C++ oder auch nur dem grundlegenden C wird dies aber kaum gerecht.

Auch mit modernen Entwicklungsmethoden kommt COBOL nicht zurecht – oder vielleicht eher anders herum: Mit den stabilen, aber unflexiblen IT-Systemen auf COBOL-Basis ist es kaum möglich, agil zu arbeiten, da Dinge wie Continuous Integration und Deployment in COBOL nicht vorgesehen sind. Vielerorts ist daher eine neue, moderne IT entstanden. Vertrieb, Kommunikation und Customer Relationships laufen über moderne Anwendungen, die teilweise Cloud-basiert sind – doch elementare Kern-Systeme laufen weiterhin auf COBOL.

Dieses Nebeneinander von verschiedenen IT-Strukturen kann kein Dauerzustand bleiben. Schließlich geht es doch immer darum, Daten aus ihren Silos zu befreien. Darüber hinaus brauchen moderne Web-Applikationen häufig auch Daten aus Transaktionssystemen, die noch viel Legacy-Code enthalten. Darunter leidet nicht nur die Effizienz, es öffnet auch Hackern Einfallstore in empfindliche Datenbanken.

Fachkräfte ein besonderes Dilemma

Laut dem aktuellen Tiobe-Index (Stand: August 2019) liegt COBOL in der Verbreitung der weltweit eingesetzten Programmiersprachen mit schätzungsweise 0,37% des weltweit bestehenden Codes auf Rang 32 – Ende 2016 lag es noch mit knapp einem Prozent auf Platz 20. Neuentwicklungen in COBOL gibt es kaum noch. Das hat zur Folge, dass die Programmiersprache auch an Hochschulen kaum noch ein Thema ist. Eine Studie von Micro Focus ergab, dass von 119 weltweit untersuchten Hochschulen nur noch 27% die Programmiersprache überhaupt auf dem Lehrplan haben.

Das kann für Unternehmen zum Problem werden. Mitarbeiter, die sich sehr gut mit COBOL auskennen, gehen nach und nach in den Ruhestand. Dem nachrückenden Nachwuchs fehlen entsprechende Fachkenntnisse. Firmen sind häufig darauf angewiesen, erfahrene IT-Veteranen aus dem Ruhestand zurückzuholen, um überhaupt in der Lage zu sein, ihre alten Systeme auf modernere Sprachen umzustellen.

Zwar hat sich bei immer mehr Unternehmen inzwischen die Erkenntnis durchgesetzt, dass eine Modernisierung bzw. ein Umstieg weg von COBOL langfristig unausweichlich ist. Andere sind immer noch darauf angewiesen, firmenintern oder von Dienstleistern Schulungsprogramme für COBOL-Code in Anspruch zu nehmen. Denn auch wenn die einst geschriebene Software beständig scheint – die Menschen, die ihren Code noch beherrschen, sterben langsam aber sicher aus.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46124956 / Software & Tools)