Es war der Artikel Vor 60 Jahren: IBM veröffentlicht erste Sprachspezifikation für Fortran bei heise.de, der bei mir Erinnerungen weckte – und spontan einen Film zum Berufsleben (oder zumindest der Anfänge) vor meinem geistigen Auge ablaufen ließ. Quasi Geschichten aus dem “Kartoffelkrieg 1778” …
Für nicht Kundige: Wenn in meiner Jugend jemand etwas aus der fernen Vergangenheit erzählte, hieß es bei uns Jungen “der erzählt vom Kartoffelkrieg” – ein 1778 stattgefundener sinnloser Krieg. Und so ist der Text hier nostalgisch, aber auch sinnlos.
Bei heise.de (und hier) lässt sich nachlesen, was es mit der Programmiersprache Fortran so auf sich hat. Als höhere Programmiersprache von John Backus konzipiert, wurde sie 1957 von IBM für ihre 704-Systeme eingeführt. Zu diesem Zeitpunkt wusste ich nicht mal, dass es Computer gab. Und mit der Backus-Naur-Form habe ich mich erst Mitte der 80er Jahre herumgeschlagen. Im Laufe der Zeit gab es mehrere Überarbeitungen der Sprache – und auch heute wird Fortran noch bei numerischen Berechnungen und für Simulationen eingesetzt. Soweit die Fakten – und nun meine eigene Geschichte.
Fortan war schuld …
Die erste Berührung mit Fortran gab es für mich 20 Jahre nach dessen Einführung durch IBM – musste ich 1977 doch als junger Student eine Pflichtvorlesung in Fortran belegen (die angehenden Physik-Ingenieure sollten programmieren können). Hieß erst einmal, sich ein paar Vorlesungsstunden mit der Sprachnomenklatur befassen und dann Programme entwickeln. Damals keine einfache Sache, hatte ich doch bis 1973 mit dem Rechenschieber und ab 1974/1975 mit ersten Taschenrechnern gearbeitet. Algorithmisches Denken war Fehlanzeige.
Zum Programmieren musste man sich in eine Liste eintragen, um in einem kleinen Rechnerraum an zwei IBM-Kartenstanzern Lochkarten mit den Fortran-Anweisungen erstellen zu können. Diese Lochkarten wurden in einen Kasten gesteckt und von einem Boten täglich zum damaligen Kernforschungszentrum Jülich gekarrt. Am Folgetag gab es dann die Lochkarten samt den (Fehl-)Ausdrucken des Batch-Laufs zurück. Die ersten Gehversuche waren frustrierend, da jeder Tippfehler zu Syntax-Error-Meldungen im Ausdruck führte. Der Dozent, den ich mit einem Fehlausdruck konsultierte, meinte “Born, Sie müssen sorgfältiger arbeiten, ein Komma ist kein Punkt und ein 0 kein o”.
Ich habe es dann irgendwann gefressen, um dann schnell festzustellen, dass ein syntaktisch korrektes Programm oft keine sinnvollen Ergebnisse ergab oder meist nicht das lieferte, was man erwartet hatte. Ich erinnere mich Stunden über einem Fortran-Programm gebrütet zu haben, welches aus gefühlt 10 Zeilen mit einer FOR-Schleife und einem Feld bestand.
Die meisten Kommilitonen haben diese Vorlesung gehasst und als lästige Pflicht abgehakt. In Erinnerung geblieben ist mir noch, dass wir eine Seminaraufgabe in Fortran zu erledigen hatten und beim Dozenten einreichen mussten. Ein Mitstudent kam auf die glorreiche Idee, das von einem Kumpel anfertigen zu lassen. Dummerweise lieferte dieser eine Lösung in Basic für einen programmierbaren Rechner. Gab damals mächtig Stunk – und der Dozent fühlte sich verschaukelt.
Aber in dieser Zeit passierten bei mir mehrere Sachen. Einmal stellte ich fest, dass man die Rückseite der Fehlausdrucke ganz prima für Vorlesungsmitschriften verwenden konnte. Ich brauchte ab da niemals mehr Blöcke beim Asta für meine Vorlesungsmitschriften zu kaufen. Und ich gewöhnte mir an, die Programme mit Bleistift auf dem Papier zu entwerfen und im Kopf zu simulieren, und die erwarteten Ausgaben ebenfalls auf Papier zu notieren. Führte bald dazu, dass meine Programme spätestens im zweiten Schuss liefen und ich bis zum Ende des Studium immer genügend Papier für Vorlesungsmitschriften hatte (zur Not habe ich einen zusätzlichen Testlauf mit einer Endlosschleife und Druckausgabe gestartet – wodurch ich massig Papier bekam). Mangels programmierbarem Tastenrechner habe ich später auch bestimmte Berechnungen im Studium mittels Fortran-Programmen erledigt.
Hat mich extrem geprägt und irgendwann muss ich mich mit dem “Computer-Virus” infiziert haben. Denn ich habe danach noch als Wahlfächer noch Fortan 2 und PL-1 belegt. Zudem durfte ich, als Special Gust des Dozenten, an einem Kranz Mulby-Rechner (füllte einen ganzen Schrank im Rechnerraum) mit Basic rum machen (letzteres fand ich aber nicht so spannend). Aber ich hing, bildlich gesprochen, ab da “an der Nadel” der Computertechnik.
Von PDPs, VAX-Rechnern und Projekten
War eine gute Schule, die Fortran-Programmierkurse während des Studium. Und in der Diplomarbeit kam ich dann noch mit dem ersten Digital Equipment PDP 11/04-Rechner in Berührung. Ich lernte, dass es nicht nur Lochkarten zum Erstellen von Programmen gab. Nein, es gab auch Lochstreifen, über die man Programme in PDP-Rechner laden konnte. Und ich hatte das Glück, mit einem ganz neuen PDP-Mini-Computer arbeiten zu dürfen, der mit einem 8-Zoll-Diskettenlaufwerk ausgestattet war und das RT 11-Betriebssystem verwendete. Bedient wurde die PDP per DEC LA 36 Terminal (Tastatur und Drucker).
War für mich das Rüstzeug, um ein paar Jahre später nahtlos mit dem ISIS II– und dem CP/M-Betriebssystem umgehen zu können. Führte auch dazu, dass ich im ersten Job als Ingenieur im Flugzeugbau plötzlich nach England geschickt wurde. Dort sollte ich einen Kurs in Intran (einem Echtzeit-Fortran) belegen. Ziel war es, auf einer PDP 11/04 unter RT-11 laufende, Prüfsoftware für Flugzeugteile, die Instron-Prüfmaschinen ansteuerte zu modifizieren. Es sollten Prüfzyklen zur Ermittlung der Belastungsgrenzen für Bauteile ermöglicht werden. Hab das auch hin bekommen, aber mein persönliches Waterloo erlebt. Ich hatte die Programmmodifikationen für die erste Anpassung nach Analyse des Quellcodes auf Papier skizziert und bereits weitgehend den Quellcode an einem DEC LA 36 Terminal eingegeben. Am Folgetag plante ich den Code abschließend einzugeben, zu überprüfen, eine Simulation zu fahren, und dann die Software am Prüfling zu testen …
Als ich am nächsten Morgen mit ziemlich vielen Pusteln und Jucken aufwachte, lachte meine Frau sich kaputt. Ich hatte mit 24 Jahren die Windpocken und musste für eine Woche in Quarantäne. Doof: Mein damaliger Chef – der mit dem “Loch in Kniescheibe bohren, Stacheldraht drum wickeln und heiße Milch rein gießen” – hatte vorher mit seinen Programmierkenntnissen geprahlt. Und ließ es sich natürlich nicht nehmen (obwohl der Leiter des Prüflabors ihn bat, auf meine Rückkehr zu warten), die Programmmodifikationen selbst durchzuführen. Statt das Ganze zu simulieren, ließ er mein unfertiges und ungetestete Programm direkt auf den Prüfling los. Da die Software irgendwann nicht mehr reagierte, musste er das Ganze abbrechen. Ich hätte die Prüfmaschine abschalten lassen und dann die Software unter Kontrolle gebracht. Er aber kam auf die Idee, den Reset-Taster am Rechner zu betätigen. Es machte “Zuck” und das Unikat des Prüflings war zerrissen – was argen Ärger brachte. Cheffe bekam Laborverbot. Die Geschichte wurde mir aber erst später zugetragen, als ich nach einer Woche wieder arbeiten konnte.
Ich brauchte gut eine Stunde und das modifizierte Prüfprogramm lief wie gefordert. Ließ meinen Ruf als “Programmierer” natürlich steigen (und Cheffe richtig alt aussehen). Seit diesem Vorfall wurde ich quasi für weitere Modifikationen von der betreffenden Gruppe recht häufig ausgeborgt. War mir nicht unlieb, da ich Software-Entwicklung cooler fand, als irgendwelche Bauteile per Ultraschall auf Fehler zu prüfen. Dadurch geriet ich unwissentlich zwischen die Fronten und Cheffe beorderte mich (quasi als “Strafe”) immer häufiger zu Prüfaufträgen an Airbus 300-Maschinen. Er wusste, das ich es hasste, in zugigen Hangars an Flughäfen wie Paris, Amsterdam etc. die Klebenietverbindungen zu überprüfen – und viel lieber programmierte.
Das Ende vom Lied: Ich habe dann nach knapp 2 Jahren den Abflug aus dem Flugzeugbau gemacht, um in einer großen Chemiefirma anzuheuern und Mikroprozessoren mit den damals neuen 8085-CPUs zu programmieren. Waren geile Geschosse, diese Mikrocomputer, mit 4 KByte EPROM für den Programmcode und 1 KByte RAM für die Daten. Damit steuerten und kontrollierten wir Chemieanlagen – und zwar in Projekten, wo Standard-Technik nicht einsetzbar war. Zum Einsatz kamen Fortran und PL/M, Assembler gab es auch noch. Beim ersten Projekt kippte der Chef einen Ordner auf den Tisch und meinte “arbeiten Sie sich ein”. War ein undokumentiertes, in Assembler erstelltes, Projekt mit einem Betriebssystem für die Mikroprozessorsysteme. Ich sollte das Betriebssystem als Basis für mein neues Projekt verwenden. Ich habe das Ganze recht fix verworfen, zumal ich mitbekam, dass die Projekte mit dieser Software für viel Ärger sorgten. Die Rechner blieben irgendwann einfach stehen und musste neu gestartet werden – bei Prozesssteuerungen nicht so gut.
Also habe ich ganz fix mein eigenes Betriebssystem geschrieben. Es brauchte nicht viel: Einen Scheduler, verfasst in Fortan, eine Bediensoftware für eine Zehnertastatur und ein Hex-Display als fertige Bibliothek, sowie ein paar Assemblerroutinen zur Ansteuerung der Hardware und des Interrupt-Controllers. Nach zwei Wochen lief die Choose samt Projekt-Software – und ich hatte für alles eine saubere Dokumentation, inklusive Entwickler- und Anwender-Manual verfasst. War offenbar so transparent, dass fortan diese Software auch von den Kollegen in allen neuen Projekten eingesetzt wurde. Man kann sagen, damals habe ich das Geschäft “von der Pieke auf gelernt” und konnte quasi im Schlaf den Maschinencode debuggen. Hilft mir auch heute noch bei der Analyse bestimmter Windows-Funktionen.
Irgendwann hatte ich ein Team aus Entwicklungsingenieuren und konzipierte eine, heute nennt man das wohl SCADA-System, Software zur Prozessdatenerfassung und Auswertung. Lief auf Digital Equipment VAX-Rechnern. Implementiert wurde das Ganze in Fortran, Anwender konnten die Funktionen aber ohne Programmierkenntnisse konfigurieren. Es gab Schnittstellen zu Steuerungs- und Prozessleitsystemen. Zudem konnte Modellsoftware zur Simulation chemischer Prozesse eingebunden werden. Und da ich gerade ein Buch zu Dateiformaten verfasst hatte, existierte bald auch eine Exportschnittstelle für Lotus 1-2-3. Diese wurde von den Nutzern geliebt, konnten sie doch mit Lotus ihre eigenen Auswertungen auf dem PC erledigen. Führte dazu, dass ich die Software bis nach Japan und Thailand verkaufte. Und die Software war wohl so erfolgreich, dass sie nach meinem Abgang in modifizierter Form m.W. bis heute immer noch im Einsatz ist.
1993 habe ich dann den Abflug gemacht, um mich als Autor ganz der Schreibe zu widmen (Beweggründe sind hier etwas offen gelegt). Und nein, entgegen böswilliger Gerüchte, ich war es nicht, der den Fortan-Programmierfehler verursachte, wodurch Venus Mariner 1962 verloren ging. Und ich hatte auch nicht meine Finger in den Programmen drin, die den Absturz des Mars Climate Orbiter (wegen falscher Maßeinheiten) oder der Ariane 5 verursachten. Von daher: War eine coole Zeit mit diesem Fortan – aber geiler waren die folgenden 23 Jahre als Autor. Und immerhin hat Fortan mich indirekt bis nach Japan gebracht. Die Eindrücke waren offenbar so intensiv, dass mir 40 Jahre später die obigen Episoden spontan einfielen und ich ein viertel Jahrhundert später über die “frühberuflichen” Erlebnisse in Japan blogge. Und damit beende ich die Erzählungen aus dem “Kartoffelkrieg” …
Wie sich die „Lebensläufe“ ähneln ;-)
Ich erinnere an „Real programmers don’t use Fortran“
Ach, da kommen mir auch viele Erinnerungen hoch.
Fortran in der Version V (5) war meine erste Programmiersprache, welche ich mir 1978 mit Hilfe eines Fachbuches im Selbststudium aneignete. Das war auf einer Höllenmaschine Univac 1110.
Das war noch die Zeit in welcher Firmen auch ausbildeten. Das weckte in mir die Lust auf das Programmieren und führte mich in die Tiefen von Betriebsystemen und Compilern.
Oh man, seid ihr alt… ;-)
Ach, ich habe auch noch die Lochstreifen eingefädelt… 100te… ach was, 1000de…
Für die erwarteten Y2K-Bugs wurden viele der „alten“ Fortran-Programmierer wieder aufgesucht und reaktiviert. Einige jüngere mussten sich auch diese Codes aneignen und nicht wenige haben sich darauf hin in Fortran spezialisiert.
Ja, früher wurde alles noch für die Ewigkeit gemacht – Happy Birthday Fortran
> bis zum Ende des Studium immer genügend
> Papier für Vorlesungsmitschriften hatte
> (zur Not habe ich einen zusätzlichen Testlauf
> mit einer Endlosschleife und Druckausgabe
> gestartet – wodurch ich massig Papier bekam).
hehe, man muss sich nur zu helfen wissen :-)
Danke für diesen interessanten Artikel.