{"id":182584,"date":"2016-10-19T00:47:00","date_gmt":"2016-10-18T22:47:00","guid":{"rendered":"http:\/\/www.borncity.com\/blog\/?p=182584"},"modified":"2021-07-05T18:05:26","modified_gmt":"2021-07-05T16:05:26","slug":"60-jahre-fortran-der-dino-lebt-noch","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2016\/10\/19\/60-jahre-fortran-der-dino-lebt-noch\/","title":{"rendered":"60 Jahre Fortran &ndash; der Dino lebt noch"},"content":{"rendered":"<p>Es war der Artikel <a href=\"http:\/\/m.heise.de\/newsticker\/meldung\/Vor-60-Jahren-IBM-veroeffentlicht-erste-Sprachspezifikation-fuer-Fortran-3351318.html\" target=\"_blank\" rel=\"noopener noreferrer\">Vor 60 Jahren: IBM ver\u00f6ffentlicht erste Sprachspezifikation f\u00fcr Fortran<\/a> bei heise.de, der bei mir Erinnerungen weckte \u2013 und spontan einen Film zum Berufsleben (oder zumindest der Anf\u00e4nge) vor meinem geistigen Auge ablaufen lie\u00df. Quasi Geschichten aus dem \"Kartoffelkrieg 1778\" \u2026<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/e0d250b0b8114eb0a99f6709f6592fa0\" width=\"1\" height=\"1\"\/>F\u00fcr nicht Kundige: Wenn in meiner Jugend jemand etwas aus der fernen Vergangenheit erz\u00e4hlte, hie\u00df es bei uns Jungen \"der erz\u00e4hlt vom Kartoffelkrieg\" \u2013 ein 1778 stattgefundener <a href=\"https:\/\/www.martinschlu.de\/kulturgeschichte\/neunzehntes\/preussen\/1778.htm\" target=\"_blank\" rel=\"noopener noreferrer\">sinnloser Krieg<\/a>. Und so ist der Text hier nostalgisch, aber auch sinnlos.<\/p>\n<p>Bei heise.de (und <a href=\"https:\/\/de.wikipedia.org\/wiki\/Fortran\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a>) l\u00e4sst sich nachlesen, was es mit der Programmiersprache Fortran so auf sich hat. Als h\u00f6here Programmiersprache von John Backus konzipiert, wurde sie 1957 von IBM f\u00fcr ihre 704-Systeme eingef\u00fchrt. 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 \u00dcberarbeitungen der Sprache \u2013 und auch heute wird Fortran noch bei numerischen Berechnungen und f\u00fcr Simulationen eingesetzt. Soweit die Fakten \u2013 und nun meine eigene Geschichte. <\/p>\n<h3>Fortan war schuld \u2026<\/h3>\n<p>Die erste Ber\u00fchrung mit Fortran gab es f\u00fcr mich 20 Jahre nach dessen Einf\u00fchrung durch IBM &#8211; musste ich 1977 doch als junger Student eine Pflichtvorlesung in Fortran belegen (die angehenden Physik-Ingenieure sollten programmieren k\u00f6nnen). Hie\u00df 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.<\/p>\n<p>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\u00f6nnen. Diese Lochkarten wurden in einen Kasten gesteckt und von einem Boten t\u00e4glich zum damaligen Kernforschungszentrum J\u00fclich gekarrt. Am Folgetag gab es dann die Lochkarten samt den (Fehl-)Ausdrucken des Batch-Laufs zur\u00fcck. Die ersten Gehversuche waren frustrierend, da jeder Tippfehler zu Syntax-Error-Meldungen im Ausdruck f\u00fchrte. Der Dozent, den ich mit einem Fehlausdruck konsultierte, meinte \"Born, Sie m\u00fcssen sorgf\u00e4ltiger arbeiten, ein Komma ist kein Punkt und ein 0 kein o\". <\/p>\n<p>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 \u00fcber einem Fortran-Programm gebr\u00fctet zu haben, welches aus gef\u00fchlt 10 Zeilen mit einer FOR-Schleife und einem Feld bestand. <\/p>\n<p>Die meisten Kommilitonen haben diese Vorlesung gehasst und als l\u00e4stige 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\u00f6sung in Basic f\u00fcr einen programmierbaren Rechner. Gab damals m\u00e4chtig Stunk \u2013 und der Dozent f\u00fchlte sich verschaukelt. <\/p>\n<p>Aber in dieser Zeit passierten bei mir mehrere Sachen. Einmal stellte ich fest, dass man die R\u00fcckseite der Fehlausdrucke ganz prima f\u00fcr Vorlesungsmitschriften verwenden konnte. Ich brauchte ab da niemals mehr Bl\u00f6cke beim Asta f\u00fcr meine Vorlesungsmitschriften zu kaufen. Und ich gew\u00f6hnte 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\u00fchrte bald dazu, dass meine Programme sp\u00e4testens im zweiten Schuss liefen und ich bis zum Ende des Studium immer gen\u00fcgend Papier f\u00fcr Vorlesungsmitschriften hatte (zur Not habe ich einen zus\u00e4tzlichen Testlauf mit einer Endlosschleife und Druckausgabe gestartet \u2013 wodurch ich massig Papier bekam). Mangels programmierbarem Tastenrechner habe ich sp\u00e4ter auch bestimmte Berechnungen im Studium mittels Fortran-Programmen erledigt. <\/p>\n<p>Hat mich extrem gepr\u00e4gt und irgendwann muss ich mich mit dem \"Computer-Virus\" infiziert haben. Denn ich habe danach noch als Wahlf\u00e4cher noch Fortan 2 und PL-1 belegt. Zudem durfte ich, als Special Gust des Dozenten, an einem <a href=\"https:\/\/de.wikipedia.org\/wiki\/Krantz_Computer\" target=\"_blank\" rel=\"noopener noreferrer\">Kranz Mulby-Rechner<\/a> (f\u00fcllte 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.<\/p>\n<h3>Von PDPs, VAX-Rechnern und Projekten<\/h3>\n<p>War eine gute Schule, die Fortran-Programmierkurse w\u00e4hrend des Studium. Und in der Diplomarbeit kam ich dann noch mit dem ersten Digital Equipment <a href=\"https:\/\/en.wikipedia.org\/wiki\/PDP-11\" target=\"_blank\" rel=\"noopener noreferrer\">PDP<\/a> 11\/04-Rechner in Ber\u00fchrung. Ich lernte, dass es nicht nur Lochkarten zum Erstellen von Programmen gab. Nein, es gab auch Lochstreifen, \u00fcber die man Programme in PDP-Rechner laden konnte. Und ich hatte das Gl\u00fcck, mit einem ganz neuen PDP-Mini-Computer arbeiten zu d\u00fcrfen, der mit einem 8-Zoll-Diskettenlaufwerk ausgestattet war und das RT 11-Betriebssystem verwendete. Bedient wurde die PDP per <a href=\"http:\/\/www.height8.com\/wanted\/LA36\" target=\"_blank\" rel=\"noopener noreferrer\">DEC LA 36<\/a> Terminal (Tastatur und Drucker).<\/p>\n<p>War f\u00fcr mich das R\u00fcstzeug, um ein paar Jahre sp\u00e4ter nahtlos mit dem <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISIS_(operating_system)\" target=\"_blank\" rel=\"noopener noreferrer\">ISIS II<\/a>&#8211; und dem <a href=\"https:\/\/en.wikipedia.org\/wiki\/CP\/M\" target=\"_blank\" rel=\"noopener noreferrer\">CP\/M<\/a>-Betriebssystem umgehen zu k\u00f6nnen. F\u00fchrte auch dazu, dass ich im ersten Job als Ingenieur im Flugzeugbau pl\u00f6tzlich 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\u00fcfsoftware f\u00fcr Flugzeugteile, die <a href=\"https:\/\/web.archive.org\/web\/20210126145428\/https:\/\/www.instron.com\/en\/\" target=\"_blank\" rel=\"noopener noreferrer\">Instron-Pr\u00fcfmaschinen<\/a> ansteuerte zu modifizieren. Es sollten Pr\u00fcfzyklen zur Ermittlung der Belastungsgrenzen f\u00fcr Bauteile erm\u00f6glicht werden. Hab das auch hin bekommen, aber mein pers\u00f6nliches Waterloo erlebt. Ich hatte die Programmmodifikationen f\u00fcr 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\u00dfend einzugeben, zu \u00fcberpr\u00fcfen, eine Simulation zu fahren, und dann die Software am Pr\u00fcfling zu testen \u2026<\/p>\n<p>Als ich am n\u00e4chsten Morgen mit ziemlich vielen Pusteln und Jucken aufwachte, lachte meine Frau sich kaputt. Ich hatte mit 24 Jahren die Windpocken und musste f\u00fcr eine Woche in Quarant\u00e4ne. Doof: Mein damaliger Chef \u2013 der mit dem \"<a href=\"https:\/\/borncity.com\/blog\/2016\/10\/13\/fehlerhafter-windows-update-uefi-patch-killt-minix-pc\/\" target=\"_blank\" rel=\"noopener noreferrer\">Loch in Kniescheibe bohren, Stacheldraht drum wickeln und hei\u00dfe Milch rein gie\u00dfen<\/a>\" \u2013 hatte vorher mit seinen Programmierkenntnissen geprahlt. Und lie\u00df es sich nat\u00fcrlich nicht nehmen (obwohl der Leiter des Pr\u00fcflabors ihn bat, auf meine R\u00fcckkehr zu warten), die Programmmodifikationen selbst durchzuf\u00fchren. Statt das Ganze zu simulieren, lie\u00df er mein unfertiges und ungetestete Programm direkt auf den Pr\u00fcfling los. Da die Software irgendwann nicht mehr reagierte, musste er das Ganze abbrechen. Ich h\u00e4tte die Pr\u00fcfmaschine abschalten lassen und dann die Software unter Kontrolle gebracht. Er aber kam auf die Idee, den Reset-Taster am Rechner zu bet\u00e4tigen. Es machte \"Zuck\" und das Unikat des Pr\u00fcflings war zerrissen \u2013 was argen \u00c4rger brachte. Cheffe bekam Laborverbot. Die Geschichte wurde mir aber erst sp\u00e4ter zugetragen, als ich nach einer Woche wieder arbeiten konnte. <\/p>\n<p>Ich brauchte gut eine Stunde und das modifizierte Pr\u00fcfprogramm lief wie gefordert. Lie\u00df meinen Ruf als \"Programmierer\" nat\u00fcrlich steigen (und Cheffe richtig alt aussehen). Seit diesem Vorfall wurde ich quasi f\u00fcr weitere Modifikationen von der betreffenden Gruppe recht h\u00e4ufig ausgeborgt. War mir nicht unlieb, da ich Software-Entwicklung cooler fand, als irgendwelche Bauteile per Ultraschall auf Fehler zu pr\u00fcfen. Dadurch geriet ich unwissentlich zwischen die Fronten und Cheffe beorderte mich (quasi als \"Strafe\") immer h\u00e4ufiger zu Pr\u00fcfauftr\u00e4gen an Airbus 300-Maschinen. Er wusste, das ich es hasste, in zugigen Hangars an Flugh\u00e4fen wie Paris, Amsterdam etc. die Klebenietverbindungen zu \u00fcberpr\u00fcfen \u2013 und viel lieber programmierte. <\/p>\n<p>Das Ende vom Lied: Ich habe dann nach knapp 2 Jahren den Abflug aus dem Flugzeugbau gemacht, um in einer gro\u00dfen Chemiefirma anzuheuern und Mikroprozessoren mit den damals neuen 8085-CPUs zu programmieren. Waren geile Geschosse, diese Mikrocomputer, mit 4 KByte EPROM f\u00fcr den Programmcode und 1 KByte RAM f\u00fcr die Daten. Damit steuerten und kontrollierten wir Chemieanlagen \u2013 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\u00fcr die Mikroprozessorsysteme. Ich sollte das Betriebssystem als Basis f\u00fcr mein neues Projekt verwenden. Ich habe das Ganze recht fix verworfen, zumal ich mitbekam, dass die Projekte mit dieser Software f\u00fcr viel \u00c4rger sorgten. Die Rechner blieben irgendwann einfach stehen und musste neu gestartet werden \u2013 bei Prozesssteuerungen nicht so gut. <\/p>\n<p>Also habe ich ganz fix mein eigenes Betriebssystem geschrieben. Es brauchte nicht viel: Einen Scheduler, verfasst in Fortan, eine Bediensoftware f\u00fcr 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 \u2013 und ich hatte f\u00fcr 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\u00e4ft \"von der Pieke auf gelernt\" und konnte quasi im Schlaf den Maschinencode debuggen. Hilft mir auch heute noch bei der Analyse bestimmter Windows-Funktionen. <\/p>\n<p>Irgendwann hatte ich ein Team aus Entwicklungsingenieuren und konzipierte eine, heute nennt man das wohl <a href=\"https:\/\/de.wikipedia.org\/wiki\/Supervisory_Control_and_Data_Acquisition\" target=\"_blank\" rel=\"noopener noreferrer\">SCADA<\/a>-System, Software zur Prozessdatenerfassung und Auswertung. Lief auf Digital Equipment <a href=\"https:\/\/de.wikipedia.org\/wiki\/Virtual_Address_eXtension\" target=\"_blank\" rel=\"noopener noreferrer\">VAX-Rechnern<\/a>. 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 <a href=\"https:\/\/www.amazon.de\/Referenzhandbuch-Dateiformate-Datenbanken-Tabellenkalkulation-Softwareentwicklung\/dp\/3827312418\" target=\"_blank\" rel=\"noopener noreferrer\">Buch zu Dateiformaten<\/a> verfasst hatte, existierte bald auch eine Exportschnittstelle f\u00fcr Lotus 1-2-3. Diese wurde von den Nutzern geliebt, konnten sie doch mit Lotus ihre eigenen Auswertungen auf dem PC erledigen. F\u00fchrte 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. <\/p>\n<p>1993 habe ich dann den Abflug gemacht, um mich als Autor ganz der Schreibe zu widmen (Beweggr\u00fcnde sind <a href=\"http:\/\/www.borncity.de\/autor\/BornIntr.htm\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a> etwas offen gelegt). Und nein, entgegen b\u00f6swilliger Ger\u00fcchte, 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\u00dfeinheiten) oder der Ariane 5 verursachten. Von daher: War eine coole Zeit mit diesem Fortan \u2013 aber geiler waren die folgenden 23 Jahre als Autor. Und immerhin hat Fortan mich indirekt bis nach Japan gebracht. Die Eindr\u00fccke waren offenbar so intensiv, dass mir 40 Jahre sp\u00e4ter die obigen Episoden spontan einfielen und ich ein viertel Jahrhundert sp\u00e4ter \u00fcber die \"fr\u00fchberuflichen\" Erlebnisse in Japan <a href=\"http:\/\/borncity.com\/japan\/\" target=\"_blank\" rel=\"noopener noreferrer\">blogge<\/a>. Und damit beende ich die Erz\u00e4hlungen aus dem \"Kartoffelkrieg\" \u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es war der Artikel Vor 60 Jahren: IBM ver\u00f6ffentlicht erste Sprachspezifikation f\u00fcr Fortran bei heise.de, der bei mir Erinnerungen weckte \u2013 und spontan einen Film zum Berufsleben (oder zumindest der Anf\u00e4nge) vor meinem geistigen Auge ablaufen lie\u00df. Quasi Geschichten aus &hellip; <a href=\"https:\/\/borncity.com\/blog\/2016\/10\/19\/60-jahre-fortran-der-dino-lebt-noch\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5502],"class_list":["post-182584","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-fortan"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/182584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=182584"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/182584\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=182584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=182584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=182584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}