Real programmers don’t use PASCAL
UrUrquelle: Ed Post, Wilsonville, Oregon/USA; Datamation 7/83.
UrQuelle: FORTHTREE/Hamburg
Quelle: Peter Glaser (Übersetzung),CCC Datenschleuder 20-22
EDV-Text: Terra
Überarbeitung: Daniel Annen, 22.08.1989 & 06.0.2022
Im goldenen Zeitalter des Computers war es einfach, die Männer (bisweilen «richtige Männer» genannt) von den Bubis (bisweilen «Müslifresser» genannt), zu unterscheiden. Zu dieser Zeit waren die richtigen Männer die, die etwas vom Programmieren verstanden und die Müslifresser die, die nichts kapierten. Ein richtiger Computerprogrammierer sagte Sachen wie «DO 10 I=1,10» und «ABEND», und der Rest der Welt sagte «Computer sind mir zu kompliziert» und «Ich habe keine BEZIEHUNG zu Computern – sie sind so unpersönlich». Ein vorausschauendes Werk, B. Feirstein’s «Richtige Männer essen kein Müsli», ein Taschenbuch aus dem Jahre 1982, wies darauf hin, dass richtige Männer sich auf nichts beziehen und ausserdem keine Angst davor haben, unpersönlich zu sein.
Aber die Zeiten ändern sich. Heute sehen wir eine Welt, in der kleine ältere Damen einen computerisierten Mikrowellenherd haben, zwölfjährige Kids einen richtigen Mann bei Asteroids oder PacMan spielend in die Tasche stecken, und jedermann seinen höchstpersönlichen Personal Computer kaufen und verstehen kann. Der richtige Programmierer droht von Studenten mit TRASH-80ern deklassiert zu werden!
Es gibt, wie auch immer, Unterschiede zwischen dem typischen jugendlichen PacMan-Spieler und einem richtigen Programmierer. Diese Unterschiede zu begreifen, könnte den Kids eine Perspektive geben – ein Persönlichkeitsbild, eine Vaterfigur. Ausserdem würde es deutlich machen, dass weiterhin richtige Programmierer gebraucht werden.
Der einfachste Weg, um zu bestimmen, wer die richtigen Programmierer sind, geht über die Programmiersprache, die sie verwenden. Richtige Programmierer verwenden FORTRAN. Müslifresser verwenden Pascal. Nicklaus Wirth, der Erfinder von Pascal, wurde einmal gefragt «Wie sprechen Sie Ihren Namen aus?». «You can either call me by name, pronouncing it ‹Veert›, or call me by value, ‹Worth›», sagte er. Man kann aus dieser Antwort unmittelbar ersehen, dass Nicklaus Wirth ein Müslifresser ist. Die einzige Form der Wertübergabe, die ein richtiger Programmierer gutheisst, ist call-by-value-return, wie es in den IBM/370 FORTRAN G- und H-Compilern implementiert ist. Richtige Programmierer haben keine abstrakten Konzepte nötig, um ihre Arbeit zu erledigen; sie sind vollkommen glücklich mit einer Lochkartenstanze, einem FORTRAN IV- Compiler und einem Bier. Richtige Programmierer programmieren Listenverwaltung, Stringmanipulationen, Buchführung (falls sie es überhaupt machen) und Künstliche Intelligenz in FORTRAN.
Wenn Du es nicht in FORTRAN machen kannst, mach es in Assembler. Wenn du es nicht in Assembler machen kannst, ist es nicht wert, gemacht zu werden.
Akademische Informatiker sind in den letzten Jahren zunehmend dem strukturierten Programmieren verfallen. Sie sagen, dass Programme viel einfacher zu verstehen sind, wenn man spezielle Techniken und Sprachkonstruktionen benutzt. Welche Konstruktionen genau, darüber sind sie sich nicht ganz einig, und die Beispiele, die sie bringen, um ihre Ansichten zu belegen, passen immer auf jeweils eine Seite irgendeiner obskuren Zeitschrift.
Als ich mit der Schule fertig war, dachte ich, dass ich der beste Programmierer der Welt bin. Ich konnte ein unschlagbares Tic-Tac-Toe-Programm schreiben, fünf verschiedene Programmiersprachen verwenden und 1000 Zeilen lange Programme abfassen, die funktionierten. Dann geriet ich ins richtige Leben hinaus. Meine erste Aufgabe war, ein 200’000 Zeilen langes FORTRAN-Programm zu lesen und zu verstehen, um es anschliessend um einen Faktor zwei zu beschleunigen. Jeder richtige Programmierer wird dir sagen, dass kein strukturierter Code der Welt dir dabei helfen wird, ein Problem wie das zu lösen – dazu braucht man wirkliches Talent.
Einige Anmerkungen zu richtigen Programmierern und strukturierter Programmierung:
- Richtige Programmierer haben keine Angst, GOTOs zu verwenden;
- Richtige Programmierer können fünf Seiten lange DO-Schleifen schreiben ohne nervös zu werden;
- Richtige Programmierer lieben arithmetische IF-Statements, weil sie den Code interessanter machen;
- Richtige Programmierer schreiben selbstmodifizierenden Code, speziell wenn sich dadurch 20 Nanosekunden im Inneren einer engen Schleife einsparen lassen;
- Richtige Programmierer brauchen keine Kommentierungen: Der Code spricht für sich;
- Das Standardwerk für richtige Programmierer ist «Murphy’s Laws» in der ungebundenen Ausgabe, da es den grössten Realitätsbezug zum Programmieren hat.
- Das FORTRAN keine strukturierten IF, REPEAT..UNTIL oder CASE-Statements kennt, braucht einen richtigen Programmierer nicht zu sorgen. Nebenbei, man kann sie nötigenfalls durch zugewiesene GOTOs simulieren.
«Datenstrukturen» gehen seit kurzer Zeit auch durch die Presse. Abstrakte Datentypen, Strukturen, Pointer, Listen und Strings sind in bestimmten Kreisen populär geworden. Wirth, der schon erwähnte Müslifresser, hat ein ganzes Buch geschrieben («Algorithms + Data Structures = Programms», Prentice Hall, 1976), das behauptet, man könne Programme basierend auf «Datenstrukturen» schreiben, anstatt die anderen Wege zu benutzen. Wie jeder richtige Programmierer weiss, ist der einzige nützliche Datentyp das Array. Strings, Listen, Strukturen und Mengen sind alles spezielle Fälle von Arrays und können als solche behandelt werden, ohne einem die Programmiersprache zu komplizieren. Das Schrecklichste an den wunderlichen Datentypen ist, dass man sie deklarieren muss; richtigen Programmiersprachen implizit ist – wie wir alle wissen – eine Schreibweise, die auf dem ersten Buchstaben des sechs Zeichen langen Variablennamen basiert.
Was für eine Art Betriebssystem verwendet ein richtiger Programmierer? CP/M? Gott behüte. Im Grunde ist das ein Spielzeug-Betriebssystem. Auch kleine ältere Damen und Oberschüler können CP/M benutzen und verstehen.
Unix ist selbstverständlich ein wenig komplizierter – der typische Unix-Hacker weiss nie, wie der PRINT-Befehl diese Woche heisst – aber wenn es um die Wurst geht, ist Unix ein herrliches Videospiel. Die Leute machen nichts Seriöses auf Unix-Systemen; sie schicken Scherzchen via USENET um die Erde oder schreiben Adventure Games und Forschungsberichte.
Nein, der richtige Programmierer verwendet OS/370. Ein guter Programmierer kann die Beschreibung eines IJK3051-Errors, der gerade aufgetreten ist, in seinem JCL-Handbuch finden und verstehen. Der grossartige Programmierer kann JCL schreiben ohne einen Blick ins Handbuch zu werfen. Ein wirklich aussergewöhnlicher Programmierer kann Bugs finden, die in sechs Megabyte Core Dump vergraben sind, ohne auch nur einen Hex-Taschenrechner zu benutzen.
OS/370 ist ein wahrhaft bemerkenswertes Betriebssystem. Es ermöglicht die Vernichtung der Arbeit von einigen Tagen durch einen einzigen, falsch gesetzten Blank, also ist es beim Programmieren angesagt, aufgeweckt zu sein. Die beste Art, an das System ranzugehen, ist über eine Lochkartenstanze. Einige Leute behaupten, es gäbe ein Timesharing-System, das auf OS/370 läuft, aber nach sorgfältigen Studien bin ich zur Ansicht gelangt, dass sie unrecht haben.
Was für Tools benutzt der richtige Programmierer? Theoretisch kann ein richtiger Programmierer seine Programme zum Laufen bringen, indem er sie direkt über die Schalttafel in den Computer eingibt. In den frühen Tagen, als die Computer noch Schalttafeln hatten, wurde das gelegentlich so gemacht. Der typische, richtige Programmierer hat den gesamten Bootstrap Loader in Hex im Gedächtnis und gibt ihn neu ein, wenn er von seinem Programm zerstört worden ist. In dieser Zeit war Speicher noch Speicher – er verschwand nicht, wenn der Strom weg war. Heutzutage vergisst der Speicher Dinge, auch wenn du es nicht willst, oder er behält Dinge, die er längst hätte vergessen sollen.
Die Legende sagt, dass Seymour Cray, der Erfinder des Cray-I-Supercomputers und der meisten Control Data Computer, das erste Betriebssystem für den CDC 7600 aus dem Gedächtnis über die Schalttafel eingab, als sie zum ersten Mal hochgefahren wurde. Cray ist selbstverständlich ein richtiger Programmierer.
Einer meiner Lieblings-Richtiger-Programmierer war Systemprogrammierer bei Texas Instruments. Eines Tages erreichte ihn ein Ferngespräch von einen User, dessen System mitten in einer wichtigen Arbeit zusammengebrochen war. Jim behob den Schaden über das Telefon, indem er den User dazu brachte, Disk I/O- Instruktionen über die Schalttafel einzugeben, nach seinen Anweisungen System Tables in Hex zu reparieren und Registerinhalte auszulesen. Die Moral der Geschichte: Obwohl ein richtiger Programmierer nützlicherweise eine Lochkartenstanze und einen Printer zu seinem Werkzeug zählt, kann er im Notfall mit einer Schalttafel und einem Telefon auskommen.
In einigen Firmen besteht das Editieren von Programmtext nicht länger darin, dass zehn Ingenieure Schlange stehen, um eine 029-Lochkartenstanze zu benutzten. Tatsächlich ist es so, dass in dem Gebäude, in dem ich arbeite, keine einzige Lochkartenstanze steht.
Der richtige Programmierer hat in dieser Situation seine Arbeit mit einem Text Editor-Programm zu machen. Die meisten Systeme sind mit verschiedenen Editoren ausgestattet, aus denen man wählen kann, und der richtige Programmierer muss achtgeben, dass er sich den aussucht, der seinem persönlichen Stil entspricht.
Viele Leute glauben, dass die besten Editoren der Welt im Xerox Palo Alto Research Center, zur Verwendung auf Altos- und Dorado-Computern geschrieben werden. Unglücklicherweise wird kein richtiger Programmierer jemals einen Computer mit einem Betriebssystem, das SmallTalk heisst, kenennenlernen, und bestimmt seinem Computer keine Mitteilungen mit einer Maus machen.
Einige der Konzepte dieser Xerox-Editoren sind in Editoren aufgenommen worden, die auf Betriebssystemen mit etwas vernünftigeren Bezeichnungen, wie etwa EMACS oder VI, laufen. Das Problem mit den Editoren ist, dass richtige Programmierer meinen, «what you see is what you get» sei ein schlechtes Konzept für Texteditoren. Der richtige Programmierer will einen «you asked for it, you got it»-Editor; einen, der kompliziert, kryptisch, mächtig, unnachsichtig und gefährlich ist; TECO, um genau zu sein.
Man hat festgestellt, dass eine TECO-Kommandofolge eher an Zeichensalat durch Übertragungsrauschen erinnert, als an lesbaren Text. Eines der unterhaltsamsten Spiele mit TECO besteht darin, dass man seinen Namen als Kommandozeile eintippt und Vermutungen darüber anstellt, was dadurch passiert. So gut wie jeder mögliche Tippfehler wird bei der Kommunikation mit TECO kurzerhand dein Programm zerstören, oder schlimmer noch, subtile und mysteriöse Bugs in Subroutinen einschleusen, die einst funktionierten.
Aus diesem Grund widerstrebt es richtigen Programmierern, ein Programm zu editieren, das kurz davor steht, zu funktionieren. Sie finden es viel einfacher, den binären Objektcode direkt zu patchen, indem sie ein wunderbares Programm benutzen, das SUPERZAP (oder das entsprechende Äquivalent auf Nicht-IBM-Maschinen) heisst. Das funktioniert so gut, dass viele Programme, die auf IBM-Systemen laufen, keinerlei Verwandschaft mehr mit dem Original-FORTRAN-Code haben. In einer Anzahl von Fällen ist der Source Code nicht länger verfügbar. Wenn es an der Zeit ist, ein derartiges Programm zu korrigieren, wird kein Manager jemand geringeren als einen richtigen Programmierer mit dem Job betrauen – kein müslifressender, strukturierter Programmierer würde wissen, wo anfangen. Das nennt man Arbeitsplatzsicherung.
Einige Programmier-Tools, die nicht von richtigen Programmiern benutzt werden:
- FORTRAN-Präprozessoren wie MORTRAN und RATFOR. Derartige Programmierrezepte sind gut zum Müslimachen;
- Source Language Debugger. Richtige Programmierer können Core Dumps lesen;
- Compiler mit Array Bounds Checking. Sie ersticken die Kreativität, vernichten die meisten der interessanten Verwendungsweisen für EQUIVALENCE und machen es unmöglich, den Betriebssystemcode mit negativen Vorzeichen zu modifizieren. Das Schlimmste: Bounds Checking ist ineffizient.
- Source Code-Pflegesysteme. Ein richtiger Programmierer hält seinen Code in einem Karteikasten verschlossen, denn er geht davon aus, dass der Eigentümer seine wichtigen Programme nicht unbewacht zurücklassen kann.
Wo arbeitet der typische richtige Programmierer? Was für eine Art von Programmen sind solcher talentierter Individuen würdig? Man kann sicher sein, dass sich kein richtiger Programmierer totschreibt an einem Programm für die Debiterenbuchhaltung in COBOL, oder für die Sortierung von Mailing-Listen für die Zeitschrift «People». Ein richtiger Programmierer will Aufgaben von Welt erschütternder Wichtigkeit (im wörtlichen Sinn!).
Richtige Programmierer arbeiten für das Los Alamos National Laboratory und schreiben Atombomben-Simulationen, die auf Cray-I-Supercomputern laufen. Sie arbeiten auch für die National Security Agency und decodieren russische Funksprüche. Es war eine grossartige Belohnung für die Anstrengung tausender richtiger Programmierer bei der NASA, dass unsere Jungs vor den Kosmonauten auf den Mond und wieder zurück gekommen sind. Die Computer im Space Shuttle sind von richtigen Programmierern programmiert, und diese wahren Profis sind auch bei Boing an der Arbeit, um Steuerungssysteme für Cruise Missiles zu entwerfen.
Einige der ehrfurchtgebietendsten richtigen Programmierer arbeiten im Jet Populution Laboratory in Kalifornien. Viele von ihnen kennen das gesamte Betriebssystem der Pioneer- und Voyager-Sonden wie ihre Westentasche. Mit einer Kombination von grossen, in den Bodenstation verfügbaren FORTRAN-Programmen und kleinen, in den Rechnern der Sonden untergebrachten Assembler-Programmen können sie unglaubliche Kunststücke an Navigation und Improvisation vollbringen – wie etwa nach sechs Jahren im All zehn Kilometer grosse «Fenster» am Saturn zu treffen, oder beschädigte Sensor-Plattformen, Funkgeräte oder Batterien zu reparieren oder zu überbrücken. Einer der richtigen Programmierer brachte es fertig, ein Bildverarbeitungsprogramm in einigen hundert Bytes unbenutzten Speichers in einer der Voyager-Sonden zu quetschen, das anschliessend einen neuen Jupitermond suchte, lokalisierte und fotografierte. Ein Plan für die Galileo-Sonde geht dahin, auf dem Weg zum Jupiter eine Gravitations-Ablenkung hinter dem Mars zu benutzten. Diese Route verläuft, +/- 3 Kilometer, 80 Kilometer über die Marsoberfläche. Kein Mensch wird sich für diese Art von Navigation einem Pascal-Programm oder -Programmierer anvertrauen.
Viele der richtigen Programmierer arbeiten für das U.S.-Goverment, vor allem für das Verteidigungsministerium. Das ist so, wie es sein soll. Vor kurzem hat sich eine schwarze Wolke am Horizont der richtigen Programmierer zusammengeballt. Es scheint, dass ein paar höhergestellte Müslifresser im Verteidigungsministerium entschieden haben, dass alle Verteidigungsprogramme in einer grossen vereinheitlichten Sprache namens Ada geschrieben werden sollen. Für eine Weile schien es, als ob Ada ausersehen worden wäre, sämtliche Regeln des richtigen Programmierers nichtig zu machen. Es ist eine Sprache mit Struktur, Datentypen, Grossschreibung und Semikolons. Kurz gesagt, wie geschaffen, die Kreativität des richtigen Programmierers zu verkrüppeln. Glücklicherweise hat die Sprache, derer sich das Department of Defence angenommen hat, genügend interessante Features, um sie annehmbar zu machen – sie ist unglaublich komplex, beinhaltet Methoden, um Schweinereien mit dem Betriebssystem anzustellen und Speicher nachträglich einzurichten, und Edgar Dijkstra mag sie nicht. Dijkstra, wie man wissen muss, verfasste «GOTOs Considered Harmful», ein Meilenstein der Programmiermethoden, auf die Pascal-Programmierer und Müslifresser abfahren. Nebenbei, ein richtiger Programmierer kann FORTRAN-Programme in jeder Sprache schreiben.
Der richtige Programmierer kann einem Kompromiss mit seinem Prinzipien eingehen und an geringfügig trivialeren Dingen als der Zerstörung des Lebens arbeiten, vorausgesetzt, dabei ist genug Geld zu holen. Es gibt einige richtige Programmierer, die beispielsweise bei Atari Videospiele programmieren. Aber sie spielen die Spiele nicht. Ein richtiger Programmierer weiss, wie man die Maschine zu jeder Zeit schlagen kann, und dass darin keine Herausforderung steckt. Jeder, der bei Lucasfilm arbeitet, ist ein richtiger Programmierer, denn es wäre verrückt, das Geld von 50 Millionen Star Wars Fans sinnlos zu verplempern. Der Anteil von richtigen Programmierern in der Computergrafik ist etwas niedriger als die Norm, grossteils weil noch niemand herausgefunden hat, wofür die Computergrafik nützlich sein könnte. Andererseits ist die ganze Computergrafik in FORTRAN gemacht, sodass es Leute gibt, die Grafik machen nur um dem COBOL-Programmieren aus dem Weg zu gehen.
Im allgemeinen spielt der richtige Programmierer auf die selbe Weise wie er arbeitet – mit Computern. Es amüsiert ihn unausgesetzt, dass sein Auftraggeber ihn für das bezahlt, was er ohnehin zu seinem Vergnügen tun würde, obgleich er es natürlich sorgfältig vermeidet, seine Auffassung laut zu äussern. Gelegentlich geht der richtige Programmierer aus dem Büro, um ein wenig frische Luft zu sich zu nehmen, oder ein oder zwei Bier.
Hier ein paar Tips, um richtige Programmierer ausserhalb eines Rechenzentrums zu erkennen:
- Auf Parties sind die richtigen Programmierer diejenigen in der Ecke, die über Betriebssystemsicherheit plaudern, und wie man sie umgehen kann;
- Bei einem Fussballmatch ist der richtige Programmierer derjenige, welcher den Spielverlauf mit seiner Simulation, gedruckt auf grünweissem Endlospapier, vergleicht;
- Ein richtiger Programmierer geht in eine Discothek, um sich die Lightshow anzusehen.
- Bei einem Begräbnis ist der richtige Programmierer derjenige, der sagt: «Armer Gregor. Und er hatte die Sortierroutine kurz vor der Vollendung.»
- In einem Lebensmittelgeschäft ist der richtige Programmierer derjenige, der darauf besteht, seine Dosen selbst an dem Barcode-Scanner vorbeizuschieben, weil er nicht daran glaubt, dass Lochkartentippsen es die ersten Male richtig machen.
In was für einer Art von Umgebung fühlt sich ein richtiger Programmierer am besten? Das ist eine wichtige Frage für den Auftraggeber von richtigen Programmierern. In Anbetracht der Stange Geld, die ein Stab von Mitarbeitern kostet, erscheint es am besten, sie oder ihn in einer optimalen Umgebung unterzubringen.
Der typische richtige Programmierer lebt vor einem Computerterminal. Um das Terminal herum liegen die Listings aller Programme, an denen er jemals gearbeitet hat. Diese sind in grob chronologischer Ordnung auf jeder ebenen Fläche des Büros gestapelt. Ebenfalls zu finden ist etwa ein halbes Dutzend halbvoller Tassen mit kaltem Kaffee. Gelegentlich schwimmen Zigarettenstummel in dem Kaffee. In einigen Fällen enthalten die Tassen auch Orangensaft. Weiter, ausser er ist wirklich SEHR gut, werden sich Kopien des OS-JCL-Handbuchs finden, sowie die «Principles of Operation», aufgeschlagen auf teilweise sehr interessanten Seiten. An die Wand geheftet befindet sich ein auf einem Uralt-Printer gedruckter Snoopy-Kalender aus dem Jahre 1969. über den Boden verstreut liegen die Verpackungen diverser mit Erdnussbutter gefüllter Käsebrote. Schliesslich, in der linken obersten Schreibtischschublade, unter einer Schachtel Kekse, befinden sich Flussdiagramm-Formulare, die ein Vorgänger da zurückgelassen hat. Richtige Programmierer schreiben Programme, keine Dokumentationen, die für das Wartungspersonal hinterlassen werden.
Der richtige Programmierer ist, unter grossem Druck, in der Lage, 30, 40, sogar 50 Stunden in einem durch zu arbeiten. Er schätzt es, so zu arbeiten. Leerlaufzeiten sind für den richtigen Programmierer kein Problem; sie geben ihm die Möglichkeit, ein Mützchen Schlaf zwischen zwei Compilerdurchgängen zu nehmen. Wenn nicht genug Termindruck auf dem richtigen Programmierer lastet, tendiert er dazu, die Zügel schleifen zu lassen, indem er in den ersten neun Wochen an einem kleinen, aber interessanten Bereich des Problems herumbastelt. Dann schliesst er die gesamte Arbeit in der letzten Woche ab, in zwei oder drei 50-Stunden-Marathons. Das beeindruckt nicht nur seinen Auftraggeber, sondern liefert gleichzeitig eine bequeme Ausrede dafür, dass keinerlei Dokumentation vorhanden ist. Generell: Kein richtiger Programmierer arbeitet von 9 bis 5, ausser in der Nacht. Richtige Programmierer tragen auch keine Krawatten. Richtige Programmierer tragen keine hochhackigen Cowboystiefel. Richtige Programmierer treffen gegen Mittag im Büro ein. Ein Richtiger Programmierer weiss den Namen seiner Frau, oder er weiss ihn auch nicht. Was er auf jeden Fall weiss, ist die gesamte ASCII- (oder EBCDIC)-Codetabelle. Richtige Programmierer wissen nicht, wie man kocht. Lebensmittelgeschäfte sind selten um 3 Uhr morgens geöffnet, also müssen sie mit Keksen und Kaffee überleben.
Wirft man einen Blick in die Zukunft, so ziehen einige richtige Programmierer in Betracht, dass die jüngste Programmierer-Generation nicht mit denselben Aussichten gross geworden ist wie ihre Eltern. Viele von ihnen haben nie einen Computer mit Schalttafel gesehen. Nur wenige, die heute von der Schule kommen, beherrschen Sedezimalarithmetik ohne einen Taschenrechner. Die heutigen Universitätsabsolventen sind gegenüber der harten Programmier-Wirklichkeit wie in Watte gepackt durch Source Level Debugger, Text-Editoren, die Klammern zählen, und benutzerfreundliche Betriebssysteme. Am schlimmsten ist, dass einige dieser angeblichen Computerwissentschaftler eine Graduation schaffen, ohne FORTRAN zu lernen! Steht uns bevor, eine Gesellschaft von Unix-Hackern und Pascal- (oder Modula-) Programmierern zu werden?
Nach meinem Dafürhalten sieht die Zukunft für richtige Programmierer nach wie vor glänzend aus. Weder OS/370 noch FORTRAN zeigen Anzeichen auszusterben, den boshaften Bemühungen von Pascal-Programmierern zum Trotz. Auch sehr subtile Tricks wie etwa der Versuch, FORTRAN strukturierte Code-Konstrukte unterzujubeln, sind fehlgeschlagen. Ja sicher, ein paar Computerhändler sind mit FORTRAN 77-Compilern rausgekommen, aber in jedem von denen gibt es einen Weg, auf dem er sich selbst in einem FORTRAN 66-Compiler zurückverwandeln kann – um DO-Schleifen zu compilieren wie Gott es vorgesehen hat.
Sogar Unix scheint nicht mehr ganz so schlimm für richtige Programmierer zu sein, wie es einmal war. Die letze Version von Unix hat die Stärken eines Betriebssystems, das einem richtigen Programmierer würdig ist. Es hat zwei unterschiedliche und subtil inkompatible User Interfaces, einen überzogenen und komplizierten DFÜ-Treiber, und virtuellen Speicher. Wenn man von der Tatsache absieht, dass es strukturiert ist, kann sogar das Programmieren in C für einen richtigen Programmierer annehmbar werden. Es gibt kein Type Checking, Variablennamen sind sieben (10? acht?) Zeichen lang, und das Bonbon des Pointer-Datentypes ist noch hinzugefügt. Es ist als hätte man die besten Teile von FORTRAN und Assembler in einer Sprache; noch ohne an einige der mehr künstlerischen Anwendungen für «define» zu denken.
Nein, die Zukunft ist nicht dunkel. In den letzten Jahren hat die Presse auch die glänzende Schar neuer Computerleuchten und Hacker bemerkt, die aus Orten wie Stanford oder MIT in die richtige Welt rausgehen. Allem Anschein nach lebt der Geist des richtigen Programmierens in all diesen jungen Männern und Frauen weiter. Solange es abartig definerte Sprungziele, bizarre Bugs und unrealistische Tabellen gibt, wird es richtige Programmierer geben, gewillt einzuspringen, das Problem zu klären und die Dokumentation auf später zu verschieben.
Lang lebe FORTRAN!