Software: Selbst in modernen Computersystemen schlummert uralter Code

Eine alte Bekannte der KI-Szene ist Anfang 2025 quasi wieder auferstanden: ELIZA, der weltweit erste Chatbot mit künstlicher Intelligenz aus den 1960er Jahren. ELIZA hatte die Fachwelt begeistert, weil sie scheinbar sinnvolle Gespräche führen konnte. Jahrzehntelang galt der Chatbot als verschollen, weil sein Schöpfer – Joseph Weizenbaum vom Massachusetts Institute of Technology – die 420 Codezeilen nie veröffentlicht hatte. »Zu dieser Zeit war es eigentlich nicht üblich, Code zu veröffentlichen«, sagt Jeffrey Shrager von der Stanford University in Kalifornien. Vielleicht dachte Weizenbaum sogar, dass der Code niemanden interessiere.
Aber spätestens mit dem Hype um Chatbots hat sich das geändert. Der Computer- und Kognitionswissenschaftler Shrager und seine Kollegen waren von Weizenbaums Leistung so fasziniert, dass sie das ELIZA Archaeology Project gründeten, in dem sie die Geschichte des alten Chatbots erforschen. Vor einigen Jahren fanden sie sogar den fehlenden Code in einer Kiste mit Weizenbaums alten Dokumenten am MIT. Jetzt kann man also wieder mit ELIZA sprechen. Das ist ziemlich beeindruckend, wenn man bedenkt, wie alt der Code hinter dem Chatbot ist. Tatsächlich basieren aber überraschend viele unserer aktuellen Computersysteme auf erstaunlich altem Code.
Spürt man einigen von ihnen nach, gelangt man in das Herz moderner Betriebssysteme und, zumindest im übertragenen Sinn, in die Weiten des Sonnensystems. Denn auch im All finden sich Satelliten mit antiquiertem Code. Interessant sind zudem die Reaktionen auf die Recherche für diesen Artikel: Kaum jemand möchte offen über den alten Code sprechen, der im eigenen System steckt, außer jenen betagten Programmierern, die ihn beherrschen. Sie werden immer wieder von modernen Unternehmen engagiert, um Systeme zu warten, die heute kaum noch jemand versteht.
Eine Liebe für alte Dinge
Die ältesten Technologien der Welt sind in der Regel nicht allzu schwer zu finden. Menschen mögen Superlative – und historische Objekte. Wer im Internet nach dem ältesten Flugzeug sucht, findet im Vereinigten Königreich ein restauriertes Gerät vom Typ Blériot XI, das mehr als 115 Jahre nach seinem Bau noch flugfähig ist. Fragt man nach der ältesten funktionierenden Glühbirne der Welt, wird man zur Centennial Bulb geleitet, einem Exemplar, das auch 124 Jahre nach seiner ersten Inbetriebnahme im kalifornischen Livermore noch leuchtet. Auf der Suche nach dem ältesten funktionierenden Computercode sind die Antworten allerdings nicht ganz so leicht zu finden.
Sind es die Notizen, die Ada Lovelace in den 1840er Jahren gemacht hat? Allerdings wurde der mechanische Computer, für den das Programm der Mathematikerin gedacht war – Charles Babbage's Analytical Engine – nie gebaut, so dass Lovelaces Code nie ausgeführt wurde.
Ein anderer Anwärter für den ältesten Code der Welt ist der des Electronic Delay Storage Automatic Calculator (EDSAC); das ist einer der ersten Allzweckcomputer, der an der University of Cambridge entwickelt wurde. Leider gibt es aktuell kein aktives Modell mehr, um zu testen, ob der Code aus den 1940er und 1950er Jahren tatsächlich funktioniert. Doch da Mitarbeiter des britischen National Museum of Computing in Bletchley Park gerade eine Nachbildung eines EDSAC-Rechners bauen, wird man den Code bald testen können.
Womöglich gibt es aber einen anderen, eher überraschenden Ort, an dem man nach altem – aber noch funktionierendem – Code suchen kann: in moderner Software.
Die Idee ist gar nicht so weit hergeholt, wie es vielleicht klingt. Etwa zur gleichen Zeit, als die EDSAC-Computer in Gebrauch waren, veränderte sich die Art und Weise, wie Informatiker Code schreiben. Damals entstanden die ersten »Hochsprachen« – also Computercode, der ähnlich wie menschliche Sprachen strukturiert ist und das Programmieren zu einem intuitiven Prozess macht. Es wurden viele verschiedene Hochsprachen entwickelt, darunter Fortran (1957), COBOL (1959) und JavaScript (1995). In einigen Computerprogrammen, die wir heute verwenden, sind noch Schnipsel dieser alten Codes vergraben.
Die Suche für diesen Text beginnt mit dem Guinness-Buch der Rekorde. Denn darin wird behauptet, dass die modernen Flugbuchungs-Websites in der Regel auf der Software Sabre Global Distribution System basieren, die 1960 von American Airlines entwickelt wurde. Ein Teil des Codes in der heutigen Version der Software ist also möglicherweise älter als ELIZA. Leider antwortete Sabre nicht auf Anfragen, ebenso wenig Delta Airlines (die nach Umsatz größte Fluggesellschaft der Welt), American Airlines, United Airlines, Lufthansa oder British Airways.
Technologieunternehmen und Banken sprechen ungern über ihren alten Code
Die Suche nach dem ältesten Code in moderner Software entpuppt sich als harte Nuss. Technologieunternehmen wie Apple, Microsoft, HP und Texas Instruments reagierten nicht auf Interviewanfragen. Die »Big Four« des britischen Bankwesens – HSBC Holdings, Lloyds Banking Group, NatWest Group und Barclays – antworteten ebenfalls nicht, ebenso wenig Lloyd's of London und Paypal. Visa und Mastercard zeigten sich zwar zunächst interessiert, sagten aber schließlich ab: Sie könnten dazu nichts sagen. Woher kommt diese rätselhafte Abneigung, über alten Code zu sprechen?
»Wahrscheinlich sind sie nervös«, sagt Vincent Bodsworth, ein Treuhänder der LEO Computers Society. Die gemeinnützige Organisation will die Geschichte einer nicht mehr existierenden Computermarke aus dem Vereinigten Königreich bewahren. Bodsworth spekuliert, dass Unternehmen möglicherweise deshalb nicht über alten Code in ihren Produkten sprechen wollen, weil sie nicht wissen, wie er funktioniert oder wie man ihn wartet.
Um das zu veranschaulichen, erzählt Bodsworth eine Geschichte, die er zu Beginn seiner Laufbahn über eine Londoner Bank gehört hat: Als das Vereinigte Königreich 1971 auf eine Dezimalwährung umstellte, hatte die Bank ein Problem. Denn ihr Computerprogramm rechnete mit der vordezimalen Währung, die nicht in Zehnerpotenzen unterteilt war – und leider hatte jemand den Quellcode verloren. Daher war es unmöglich, die Software zu ändern, damit sie mit der neuen Dezimalwährung umgehen konnte.
Anstatt die Programme mit großem Aufwand von Grund auf neu zu schreiben, fand die Bank eine Abkürzung. Sie entwickelte einen Code, der Beträge in dezimalen Pfund und Pence in vordezimale Pfund, Shillings und Pence umrechnete. Die umgewandelten Summen konnten dann in das alte Programm eingegeben werden, um die Kalkulationen dort durchzuführen. Schließlich wandelte ein weiteres Programm die Ergebnisse dieser Berechnungen von vordezimalen in dezimale Werte um.
»Man hört so manche solcher Geschichten«, sagt Bodsworth. Und genau diese Art von Flickschusterei könnte der Grund sein, dass heute noch Teile von uraltem Code in modernen Systemen sind.
Wenn Softwareingenieure in Rente gehen
Selbst wenn der Quellcode nicht verschwindet, kann das zugehörige Fachwissen verloren gehen. Beispielsweise war die Programmiersprache COBOL Mitte des 20. Jahrhunderts für Unternehmen unerlässlich. Bill Hinshaw – Mitbegründer des texanischen Beratungsunternehmens COBOL Cowboys – soll darin im Jahr 1970 die allererste Software für einen Geldautomaten geschrieben haben. Heute ist COBOL nicht mehr die Sprache der Wahl für Programmierer. Sie spielt jedoch nach wie vor eine kleine, aber entscheidende Rolle in einigen Anwendungen. Hinshaw schätzt, dass heute noch 800 Milliarden Zeilen COBOL im Einsatz sind.
Allerdings sind heute nur wenige Programmierer mit der Sprache vertraut – und die wenigen, die es noch sind, werden bald in den Ruhestand gehen. Wenn Unternehmen Hilfe bei COBOL brauchen, fragen sie Hinshaws Experten an. Aber auch dort ist der Altersschnitt hoch: Der jüngste Mitarbeiter ist 40 Jahre alt, die meisten sind in ihren 60ern und 70ern. Hinshaw selbst ist Anfang 80. »Wir sehen kein Problem darin, jetzt noch mit COBOL zu arbeiten. In zehn Jahren sieht das aber vielleicht anders aus«, sagt er.
Rein theoretisch dürfte das keine allzu großen Probleme verursachen. Computercode wird ja nicht schlecht; er nutzt sich nicht ab oder geht kaputt. Aber wenn Software aktualisiert wird, können Teile des alten Codes unbeabsichtigt mit dem Rest des Programms inkompatibel werden. So legte im Juli 2024 ein Problem mit einem Software-Update des Cybersecurity-Unternehmens CrowdStrike Millionen von Computern in Flughäfen, Krankenhäusern und Banken auf der ganzen Welt lahm. In diesem speziellen Fall wurde die Störung schnell erkannt und ein neues Update aufgespielt, so dass die meisten Computer innerhalb weniger Stunden wieder online waren. Wenn mit einer solchen Code-Inkompatibilität nur wenige Programmierer umgehen können, fiele die Behebung der Störung deutlich aufwändiger aus.
Das erklärt, weshalb Technologieunternehmen nicht allzu gerne über den alten Code in ihren Systemen sprechen. Immer wieder versuchen Unternehmen, ihn aus moderner Software zu entfernen. Das berühmteste Beispiel für diesen Prozess brachte die Softwarewelt vor rund 25 Jahren in Aufruhr. Damals wurde klar, dass die meisten Systeme, weil sie die Jahreszahlen in der Regel mit nur zwei Ziffern darstellten, das Jahr 2000 nicht vom Jahr 1900 unterscheiden könnten. Die Befürchtung: Die Jahrtausendwende könnte von massiven Computerproblemen begleitet werden. Was folgte, so Bodsworth, war ein verzweifeltes Ringen darum, problematischen Code rechtzeitig zu entfernen. So gelang es tatsächlich, den so genannten Y2K-Bug weitgehend zu vermeiden.
Trotzdem bleiben Teile alter Codes in überraschend wichtiger Software in Gebrauch. Laut Stuart Mackintosh, Präsident der Perl Foundation – welche die Entwicklung der gleichnamigen Programmiersprache beaufsichtigt – enthält die neueste Version von Perl einige Codeschnipsel der ersten Version von 1987.
Die Programmiersprache Perl klingt für die meisten wahrscheinlich fremd, aber tatsächlich verlassen sich viele Menschen täglich darauf: Sie treibt die Amazon Web Services an, die von Websites wie Booking.com und von Apple zur Ausführung der iCloud-Software verwendet werden. Auch wichtige Organisationen nutzen Perl, darunter die NASA, der US-Geheimdienst CIA oder der britische MI5 und MI6. Wann immer wir – oder Mitglieder dieser Organisationen – Amazon Web Services nutzen, vertrauen wir auf Codezeilen, die vor fast 40 Jahren geschrieben wurden.
»Alter Code funktioniert einfach«Stuart Mackintosh, Softwareexperte
Einige moderne Software verwendet sogar noch älteren Code. Mike McGrath ist ein leitender Entwickler bei Red Hat, einem Softwareunternehmen, das eine Version des Open-Source-Betriebssystems Linux vertreibt. Er sagt, dass ein Befehl namens »indent«, der in vielen Versionen von Linux enthalten ist, Code aus dem Jahr 1976 verwendet: »Es ist unglaublich, dass wir im Zeitalter von KI und Cloud-Computing immer noch eine Sprache von vor fast 50 Jahren verwenden.«
Laut Mackintosh gibt es einen einfachen Grund, warum solch alter Code überlebt: »Er funktioniert einfach.« Denn entgegen der allgegenwärtigen Sorge, dass der Code problematische Inkompatibilitäten entwickeln könnte, war das im Lauf der Jahrzehnte fast nie der Fall. Daraus ergibt sich eine Art Paradoxon: Über die Jahre machen sich Softwareingenieure immer mehr Sorgen, dass alter Code Probleme verursachen könnte, aber je länger es gut geht, umso überzeugter sind sie davon, dass er zuverlässige und genaue Ergebnisse liefert.
Alte Software für die Raumfahrtindustrie
Der beste Beweis dafür ist die Raumfahrtindustrie. James Eggleston arbeitet an Computersystemen bei der Europäischen Weltraumorganisation (ESA). Er betont, dass Weltraummissionen teuer sind – in der Entwicklung, im Bau und im Start. Deshalb sei es sinnvoll, sie mit lange erprobtem Code zu betreiben, anstatt zu riskieren, dass neuer Code Probleme verursacht. »Es handelt sich um milliardenschwere Satelliten, und die Leute, die sie steuern, sind nicht besonders erpicht darauf, etwas zu probieren, das nicht garantiert funktioniert«, sagt er. »Wenn man es vermasselt, ist das Raumfahrzeug kaputt. Ende der Mission.«
Von daher befinden sich einige der ältesten noch verwendeten Codes möglicherweise gar nicht mehr auf unserem Planeten – oder in unserem Sonnensystem. Auf den Voyager-Sonden, die inzwischen mehr als 20 Milliarden Kilometer von der Erde entfernt sind, läuft heute noch im Wesentlichen die gleiche Software wie beim Start im Jahr 1977. Ein anonymer Insider der Raumfahrtindustrie berichtet, dass die NASA gelegentlich alte Programmierer engagieren muss, um Code zu warten oder zu ändern, so wie Hinshaw es bei Versicherungs- und Bankunternehmen tut.
Gleichzeitig scheint die Raumfahrtindustrie nur ungern über ihre Abhängigkeit von antiquiertem Code zu sprechen. Die NASA antwortete nicht auf Anfragen – und selbst Eggleston gibt zu, dass die ESA angesichts des Interviews für diese Geschichte etwas nervös war. Schließlich könnte die Tatsache, dass alter Code verwendet wird, den Eindruck erwecken, dass die Missionen weniger finanzierungswürdig sind.
Alles in allem hegen Unternehmen und Organisationen offenbar widerstreitende Gefühle und Gedanken zu altem Code. Während einige ihm misstrauen, setzen andere gerade darauf. Und fast alle scheinen sich zu scheuen, darüber zu sprechen.
Was bedeutet das für die Suche nach dem ältesten heute noch laufenden Code? Wir können nur spekulieren, aber Bodsworth vermutet, dass er vielleicht still und leise auf einem uralten Computer läuft und Jahr für Jahr die gleiche Aufgabe erfüllt. Vielleicht befindet sich der fragliche Rechner in einem Büro der Regierung und führt eine wichtige Steuerberechnung durch – so zuverlässig und effektiv, dass alle damit zufrieden sind und ihn munter weiterlaufen lassen.
Wenn Sie inhaltliche Anmerkungen zu diesem Artikel haben, können Sie die Redaktion per E-Mail informieren. Wir lesen Ihre Zuschrift, bitten jedoch um Verständnis, dass wir nicht jede beantworten können.