Echte Programmierer meiden PASCAL oder "Lang lebe FORTRAN!"
Echte Programmierer meiden PASCAL
Aus DATAMATION 7/83, uebersetzt durch Bernd Leeds
Vor langer Zeit, in der goldenen Aera der Computer, war es noch
einfach, die Maenner von den Memmen zu trennen (mitunter auch ``Echte
Maenner'' und ``Muesli-Fresser'' genannt). Echte Maenner programmierten
Computer, und Muesli-Fresser liessen es bleiben. Ein echter Computer-
Programmierer sagte Dinge wie ``DO 10 I=0,10'' oder ``ABEND'', und der Rest
der Welt quengelte ``Computer sind mir zu kompliziert'' oder ``Ich kann zu
Computern keine gefuehlsmaessige Bindung aufbauen - sie sind zu
unpersoenlich''. Dabei zeigt schon Remy Eyssen's Buch ``Echte Maenner
moegen kein Muesli'' (Heine TB 6290), dass echte Maenner zu nichts und
niemandem eine ``gefuehlsmaessige Bindung'' aufbauen, und dass sie auch
keine Angst haben, unpersoenlich zu sein.
Aber die Zeiten aendern sich. Heute stehen wir einer Welt gegenueber,
in der kleine alte Damen vollcomputerisierte Mikrowellenherde kaufen
koennen, in der 12 Jahre alte Dreikaesehochs gestandene Maenner bei
ASTEROIDS und PACMAN sattmachen, und in der jeder seinen eigenen
Heimcomputer kaufen und sogar verstehen kann. Der Echte Programmierer
ist gefaehrdet, von Studenten mit einem igITT 2020 (deutsche Version
des ABFALL II, A.d.Ue.) im Gepaeck ersetzt zu werden!
Es gibt allerdings einige Unterschiede zwischen dem typischen PACMAN-
spielenden Gymnasiasten und einem Echten Programmierer. Die Kenntnis
dieser Unterschiede wird den Heranwachsenden ein Ziel geben, nach dem
sie streben koennen - ein Vorbild, eine Vaterfigur. Ausserdem schuetzt
sie die Echten Programmierer vor der Arbeitslosigkeit.
Der einfachste Weg, um einen Echten Programmierer zu erkennen, fuehrt
ueber die von ihm benutzte Programmiersprache. Echte Programmierer
benutzen FORTRAN. Muesli-Fresser benutzen Pascal. Niklaus Wirth, der
Schoepfer von Pascal, wurde einmal gefragt, wie man seinen Namen
ausspreche. ``You can either call me by name, pronouncing it 'Veert', or
call me by value, 'worth''', antwortete er. Diese Bemerkung zeigt
sofort, dass Wirth ein Muesli-Fresser ist. Der einzige
Parameteruebergabemechanismus, den Echte Programmierer akzeptieren, ist
call-by-value-return (call-by-result, A.d.Ue.), wie er in den IBM/370
Fortran-G und -H-Compilern implementiert ist. Echte Programmierer
brauchen schliesslich keine abstrakten Konzepte; sie sind vollkommen
gluecklich mit einem Lochkartenstanzer, einem Fortran-IV-Compiler und
einem Bier. Echte Programmierer erledigen Listenverarbeitung,
Zeichenketten-Manipulationen, Abrechnungswesen (wenn ueberhaupt) und
kuenstliche Intelligenz in FORTRAN. Was sie mit FORTRAN nicht machen
koennen, machen sie mit Assembler; was sie mit Assembler nicht machen
koennen, lassen sie veraechtlich liegen.
Akademische Computerspezialisten sind in den letzten Jahren aufs
Abstellgleis der strukturierten Programmierung geraten. Sie behaupten,
dass Programme verstaendlicher werden, wenn bestimmte Sprachkonstrukte
und Programmiertechniken benutzt werden. Sie koennen sich natuerlich
nicht einigen, welche Konstrukte am besten geeignet sind, und die
Beispiele, an denen sie ihren speziellen Standpunkt aufzeigen wollen,
passen ausnahmslos auf eine einzige Seite irgendeines obskuren
Journales. Als ich aus der Schule kam, dachte ich, ich sei der beste
Programmierer der Welt. Ich konnte ein unschlagbares TIC-TAC-TOE-Spiel
schreiben, beherrschte 5 verschiedene Programmiersprachen und schrieb
fehlerfreie 1000-Zeilen-Programme. Dann kam ich in die Wirklichkeit.
Meine erste Aufgabe bestand darin, ein 200000-Zeilen-FORTRAN-Programm
zu lesen, zu verstehen und um den Faktor 2 zu beschleunigen. Jeder
Echte Programmierer wird einem versichern, dass die gesamte
strukturierte Programmierung der Welt in einem solchen Fall nicht hilft
- hier braucht man wirklich Talent.
Einige Beobachtungen zum Thema ``Echte Programmierer und strukturierte
Programmierung'':
* Echte Programmierer haben keine Angst vor GOTOs.
* Echte Programmierer schreiben 5 Seiten lange DO-Schleifen, ohne
durcheinander zu geraten.
* Echte Programmierer lieben arithmetische IF-Statements (die mit
den 3 Ausgaengen, A.d.Ue.), weil sie den Code interessanter
machen.
* Echte Programmierer schreiben selbstmodifizierende Programme,
speziell wenn sie damit in einer kleinen Schleife 20 Nanosekunden
einsparen koennen.
* Echte Programmierer brauchen keine Kommentare, das Programm ist
selbstdokumentierend.
* Da FORTRAN strukturierte IF-, REPEAT...UNTIL- oder CASE-
Anweisungen nicht kennt, braucht sich der Echte Programmierer
nicht zu sorgen, dass er sie nicht benutzt. Ausserdem kann man
sie noetigenfalls ueber "Assigned GOTOs" (Zuweisung eines Sprung-
labels auf eine Variable, A.d.Ue.) simulieren.
Auch Datenstrukturen waren in der letzten Zeit in der Diskussion.
Abstrakte Datentypen, Records, Pointer, Listen und Zeichenketten sind
in gewissen Kreisen populaer geworden. Wirth, der Muesli-Fresser,
verfasste sogar ein ganzes Buch ("Algorithmen und Datenstrukturen",
Teubner 1975), in dem er behauptete, dass man Programme schreiben
koenne, die auf Datenstrukturen aufbauen, statt es umgekehrt zu machen.
Wie jeder Echte Programmierer weiss, gibt es nur eine wirklich
nuetzliche Datenstruktur, das Array. Zeichenketten, Listen, Records und
Mengen sind allesamt Sonderfaelle von Arrays und koennen auch so
behandelt werden, ohne dadurch die Sprache zu verkomplizieren. Das
Schlimmste an den ganzen schoenen Typen ist ausserdem, dass man sie
deklarieren muss, waehrend Echte Programmiersprachen, wie man weiss,
den Type anhand des ersten Buchstabens eines maximal 6 Zeichen langen
Bezeichners implizit festlegen.
Welches Betriebssystem der Echte Programmierer benutzt? CP/M? Gott
bewahre! Das ist doch im Grunde ein Spielzeug-Betriebssystem. Selbst
kleine alte Damen und Hauptschueler koennen CP/M benutzen und
verstehen.
UNIX ist natuerlich schon viel komplizierter - der typische UNIX-Hacker
weiss nie, wie das PRINT-Kommando diese Woche heisst - aber wenn man es
genau nimmt, ist UNIX auch nur ein verherrlichtes Telespiel. Niemand
arbeitet auf UNIX-Systemen an ernstzunehmenden Dingen - man schickt
kleine Witzchen ueber USENET rund um die Welt, oder schreibt ein neues
Adventure-Spiel oder Forschungsberichte.
Nein, der Echte Programmier benutzt OS/370. Ein guter Programmierer
kann die Beschreibung des Fehlers IJK305I in seinem JCL (Job Control
Language, A.d.Tippers)-Manual finden und verstehen. Ein grossartiger
Programmierer kann JCL schreiben, ohne je das Manual zu sehen. Ein
wahrhaft ausserordentlich guter Programmierer kann Fehler in einem 6-
Megabyte-Hexdump finden, ohne einen Taschenrechner zu benutzen.
OS/370 ist wirklich ein bemerkenswertes Betriebssystem. Mit einem
einzigen falsch plazierten Leerzeichen kann man die gesamte Arbeit
mehrerer Tage zerstoeren, was die Wachsamkeit im Programmierteam
ungemein foerdert. Der beste Weg zum System ist der Kartenstanzer. Zwar
behaupten einige Leute, es gaebe ein Timesharing-System unter OS/370,
aber nach sorgfaeltigen Nachforschungen bin ich zu dem Schluss
gekommen, dass sie sich irren.
Welche Werkzeuge kann ein Echter Programmierer benutzen? Nun,
theoretisch koennte er seine Programme ueber die Maschinenkonsole
eingeben und laufen lassen. In den fruehen Tagen der Computerei, als
Computer noch Maschinenkonsolen hatten, wurde dies auch gelegentlich
getan. Der typische Programmierer wusste den System-Urlader Bit fuer
Bit auswendig und tastete ihn ein, sobald er von seinem Programm
zerstoert worden war. Damals war Speicher auch noch Speicher - der war
nicht einfach leer, wenn der Strom ausfiel. Hauptspeicher von heute
hingegen vergessen entweder Dinge, die sie behalten sollen, oder halten
Informationen, die schon lange weg sein sollten. Aber zurueck zum
Thema. Die Legende sagt, dass Seymour Cray, der Erfinder des Cray-I-
Supercomputers und der meisten anderen Rechner von Control Data, selbst
das erste Betriebssystem fuer die CDC 7600 an der Maschinenkonsole
eingetastet hat, als sie das erste Mal eingeschaltet wurde. Cray ist
selbstverstaendlich ein echter Programmierer.
Einer der Programmierer, die ich am meisten bewundere, arbeitet als
Systemprogrammierer fuer Texas Instruments. Eines Tages erhielt er ein
Ferngespraech von einem Benutzer, dessen System mitten in einer
wichtigen Arbeit abgestuerzt war. Der Typ reparierte dann den Schaden
ueber's Telefon. Er brachte den Benutzer dazu, an der Maschinenkonsole
Disk-I/O-Instruktionen einzutasten, Systemtabellen in Hexadezimal zu
reparieren und Registerinhalte ueber's Telefon durchzugeben. Die Moral
von der Geschichte: Obwohl ein echter Programmierer normalerweise
Kartenlocher und Schnelldrucker benutzt, kommt er im Notfall auch mit
Maschinenkonsole und Telefon aus.
In einigen Firmen besteht die Programmeingabe allerdings nicht mehr aus
10 schlangestehenden Ingenieuren, die auf einen 029-Locher warten. In
meiner Firma zum Beispiel steht kein einziger Kartenlocher. Der Echte
Programmierer muss in diesem Fall seine Arbeit mit einem Texteditor
erledigen. Auf den meisten Rechnern stehen verschiedene Editoren zur
Verfuegung, und der Echte Programmierer muss aufpassen, dass er einen
erwischt, der seinen persoenlichen Stil wiedergibt. Viele Leute
glauben, dass die besten Editoren der Welt im Xerox Palo Alto Research
Center geschrieben wurden und auf Alto- und Dorado-Computern laufen.
Ungluecklicherweise wuerde jedoch kein Echter Programmierer einen
Computer mit einem Betriebssystem benutzen, das Smalltalk (Geplapper,
A.d.Ue.) heisst, und sicherlich auch nicht ueber eine Maus mit einem
Rechner kommunizieren.
Einige Konzepte der Xerox-Editoren sind mittlerweile in Editoren
eingeflossen, die unter sinnvoller benannten Betriebssystemen arbeiten,
so wie EMACS und VI. Das Problem mit diesen Editoren ist, dass Echte
Programmierer das Prinzip "Du kriegst, was du siehst" fuer schlecht
halten. Der Echte Programmierer will einen "Du hast es so gewollt, da
hast du's"-Editor, einen, der kompliziert ist, kryptisch,
leistungsfaehig, gnadenlos und gefaehrlich. TECO, um genau zu sein.
Es wurde beobachtet, dass TECO-Kommandofolgen dem Leitungsrauschen
aehnlicher sind sind als lesbarem Text. Eins der unterhaltsameren
Spiele, die mit TECO moeglich sind, besteht darin, den eigenen Namen
als Kommando einzugeben und zu raten, was dann passiert. So ungefaehr
jeder moegliche Tippfehler kann dank TECO das gerade editierte Programm
zerstoeren, oder schlimmer noch, kann kleine mysterioese Fehler in
einstmals funktionierende Unterprogramme einbringen.
Aus diesem Grund editieren Echte Programmierer nur sehr widerwillig
Programme, die schon fast laufen. Sie finden es viel einfacher, den
binaeren Objektcode direkt zu aendern, fuer gewoehnlich mit einem
wundervollen Programm, das SUPERZAP heisst (auf Nicht-IBM-Rechnern
entsprechend anders). Dies funktioniert so gut, dass viele laufende
Programme auf IBM-Systemen keine Aehnlichkeit mit dem urspruenglichen
FORTRAN-Quellprogramm haben. In einigen Faellen ist nicht einmal mehr
das Quellprogramm vorhanden. Wenn dann der Zeitpunkt gekommen ist, ein
Programm zu aendern, wuerde kein Mananger auch nur daran denken, einem
geringeren als einem Echten Programmierer diese Arbeit zu uebertragen -
kein Muesli-fressender strukturierter Programmierer wuesste auch nur,
wo er mit der Arbeit anfangen sollte. Man nennt das
Arbeitssicherungsmassnahme.
Hier eine Liste der wichtigsten Programmierhilfen, die der Echte
Programmierer nicht benutzt:
* FORTRAN-Praeprozessoren wie MORTRAN oder RATFOR. Diese Haute
Cuisine der Programmierung eignet sich hervorragend, um Muesli zu
produzieren.
* Quellcodeorientierte Debugger. Echte Programmierer lesen Hexdumps.
* Compiler, die Code fuer Array-Indexpruefung zur Laufzeit erzeugen.
Sie ersticken jede Kreativitaet, zerstoeren die meisten der
interessanteren Anwendungen der EQUIVALENCE-Vereinbarung, und
machen Aenderungen des Betriebssystems mittels negativer Indizes
unmoeglich. Und, schlimmer noch, solcher Code ist ineffizient.
* Programm-Pflege-Systeme. Ein Echter Programmierer haelt seine
Software als Kartenstapel unter Verschluss, denn dies zeigt, dass
der Besitzer seine wichtigen Programme nicht unbewacht lassen
kann.
Wo der typische Echte Programmierer arbeitet? Welche Art von Programmen
derart talentierter Individuen wuerdig ist? Nun, man kann sicher sein,
dass man nie einen Echten Programmierer beim Schreiben von
Buchhaltungsprogrammen in COBOL erwischen wird, oder gar beim Sortieren
der Abonnentenadressen des SPIEGEL. Nein, ein echter Programmierer
braucht Aufgaben von weltbewegender Bedeutung.
Echte Programmierer arbeiten fuer das Los Alamos National Laboratory
und schreiben dort Atomkriegs-Simulationen auf Cray-I-Supercomputern,
oder sie arbeiten bei der National Security Agency und entschluesseln
russische Funksprueche. Nur weil tausende Echter Programmierer fuer die
NASA gearbeitet haben, waren "unsere Jungs" eher auf dem Mond als die
Kosmonauten. Die Computer im Space Shuttle wurden von Echten
Programmierern programmiert, und auch die Betriebssysteme der Cruise
Missiles der Firma BOEING wurden von diesen echten Professionals
entworfen.
Einige der ehrfurchtseinfloessendsten Echten Programmierer arbeiten im
Jet Propulsion Laboratory in Kalifornien. Viele von ihnen kennen das
gesamte Betriebssystem der Pioneer- und Voyager-Sonden auswendig. Mit
einer Kombination von grossen, bodengebundenen FORTRAN-Programmen und
kleinen, von den Sonden mitgefuehrten Assembler-Programmen vollbringen
sie unglaubliche Kunststuecke der Navigation und Improvisation. So
treffen sie nur 10 Kilometer grosse Fenster nahe Saturn nach 6 Jahren
Flug durch den Weltraum, oder reparieren bzw. umgehen defekte Sensoren,
Sender oder Batterien. Angeblich soll es einem Echten Programmierer
gelungen sein, in ein paar hundert Byte unbenutzten Speichers innerhalb
der Voyager-Sonde ein Mustererkennungsprogramm zu pressen, das einen
neuen Mond des Jupiters suchte, fand und fotografierte.
Fuer die Galileo-Sonde ist vorgesehen, dass sie auf ihrem Weg zum
Jupiter entlang einer schwerkraftgelenkten Bahn am Mars vorbeizieht.
Diese Bahn fuehrt in einer Entfernung von 80 +/- 3 km an der
Marsoberflaeche vorbei. Kein Mensch wuerde diese Art der Navigation
einem Pascal-Programm oder gar -Programmierer anvertrauen.
Viele der Echten Programmierer dieser Welt arbeiten fuer die
amerikanische Regierung, meist fuer das Verteidigungsministerium. So
soll es sein. In letzter Zeit erscheinen dunkle Wolken am Horizont der
Echten Programmierer. Es scheint, als haetten einige einflussreiche
Muesli-Fresser im Verteidigungsministerium entschieden, dass in Zukunft
alle Verteidigungsprogramme in so einer Art von grosser,
vereinheitlichter Programmiersprache namens ADA geschrieben werden
muessten. Lange Zeit schien es, als laege ADA's Bestimmung im Verstoss
gegen alle Regeln der Echten Programmierung. Es ist eine Sprache mit
Strukturen, Datentypen, strenger Typbindung und Semikolons. Kurz, sie
ist wie geschaffen, um die Kreativitaet des typischen Echten
Programmierers zu verkrueppeln.
Gluecklicherweise hat die jetzt vom DoD (Department of Defense,
A.d.Tippers) ausgewaehlte Sprache noch genuegend interessante
Eigenschaften, um dem Echten Programmierer eine Annaeherung zu
ermoeglichen: Sie ist unglaublich komplex, sie enthaelt Moeglichkeiten,
um mit dem Betriebssystem herumzumachen, und Edgar Dijkstra mag sie
nicht. Dijkstra ist, wie man wissen sollte, der Autor von "GOTOs
Considered Harmful", einem Meilenstein der Programmiermethodologie, der
von Pascal-Programmierern und Muesli-Fressern gleichermassen bewundert
wird. Und ausserdem, ein zu allem entschlossener Echter Programmierer
kann in jeder Sprache FORTRAN-Programme schreiben.
Der Echte Programmierer kann allerdings auch Kompromisse in Bezug auf
seine Prinzipien eingehen und an etwas geringeren Aufgaben als der
Vernichtung des Lebens arbeiten, sofern er dafuer entsprechend bezahlt
wird. Viele Echte Programmierer schreiben z.B. Telespiele fuer Atari,
allerdings spielen sie nicht damit. Ein Echter Programmierer weiss, wie
er die Maschine jedesmal schlagen kann, und damit ist es keine
Herausforderung mehr. Jeder bei Lucas-Film ist ein Echter
Programmierer, denn es waere doch verrueckt, das Geld von 50 Millionen
Star-Wars-Fans auszuschlagen.
Der Anteil der Echten Programmierer im Bereich der Computer Graphics
ist etwas niedriger als anderswo, was wahrscheinlich daran liegt, dass
noch niemand irgendeinen Nutzen der Computer Graphic entdeckt hat.
Andererseits werden Computer Graphics vornehmlich in FORTRAN
abgehandelt, daher gibt es einige Leute, die so das Schreiben von
COBOL-Programmen vermeiden.
Im Allgemeinen spielt der Echte Programmierer, wie er arbeitet - mit
Computern. Er ist staendig darueber erheitert, dass sein Arbeitgeber
ihn tatsaechlich fuer etwas bezahlt, was er nur so zum Spass ebenso tun
wuerde - allerdings achtet er darauf, diese Meinung nicht zu laut zu
aeussern. Gelegentlich kommt der Echte Programmierer auch aus seinem
Buero heraus, um sich ein wenig frische Luft und ein oder zwei Bierchen
zu genehmigen. Hier daher einige Hinweise, wie man den Echten
Programmierer ausserhalb des Computerraums erkennt:
* Auf Parties stehen Echte Programmierer in einer Ecke und
diskutieren ueber Sicherheitsmechanismen von Betriebssystemen und
wie man darum herumprogrammiert.
* Bei Fussballspielen vergleicht der Echte Programmierer die
Ergebnisse mit seinen auf gruenliniertem Leporello-Papier
gedruckten Computer-Simulationsergebnissen.
* Am Strand zeichnet der Echte Programmierer Flussdiagramme in den
Sand.
* Ein Echter Programmierer geht in die Disco, um sich die Lichtorgel
anzusehen.
* Bei Begraebnissen sagt der Echte Programmierer typischerweise
"Armer Hans-Helmut. Er war mit seinem Sortierprogramm schon fast
fertig, als ihn der Herzinfarkt erwischt hat".
* Im Supermarkt besteht der Echte Programmierer darauf, seine
Bierdosen selber ueber das Fenster des Strichcodelesers zu
schieben, weil er keinem Kassierer zutraut, dies beim ersten
Versuch richtig zu machen.
In welcher Umgebung der Echte Programmierer am besten funktioniert?
Nun, dies ist eine sehr wichtige Frage fuer die Manager von Echten
Programmierern. Wenn man bedenkt, wie teuer es ist, einen von ihnen in
Betrieb zu halten, dann sollte man ihn oder sie in eine optimale
Arbeitsumgebung versetzen.
Der typische Echte Programmierer lebt vor einem Computerterminal. Rund
um dieses Terminal liegen Ausdrucke von jedem Programm, an dem er je
gearbeitet hat, sie stapeln sich grob chronologisch geordnet auf jeder
ebenen Flaeche des Bueros. Im Zimmer verteilt finden sich ueber ein
Dutzend mit kaltem Kaffee mehr oder minder gefuellte Tassen.
Gelegentlich schwimmen Zigarettenkippen darin herum, in einigen Faellen
auch Reste von Orangenschalen. Irgendwo liegen Kopien des OS JCL
Manuals und der "Principles of Operation" an einer besonders
interessanten Stelle aufgeschlagen herum, ausser bei extrem guten
Leuten. An der Wand klebt ein Schnelldrucker-Kalender mit Snoopy drauf
aus dem Jahre 1969. Ueber den Boden verteilt liegen Reste der
Verpackungen von gefuellten Keksen (der Typ, der schon in der Fabrik so
furztrocken gebacken wird, dass er auch bei laengerem Liegen im
Automaten nicht schlechter wird). Schliesslich, in der linken, oberen
Schublade des Schreibtischs, unter der Schachtel mit den Muntermachern,
liegt eine Schablone fuer Flussdiagramme, die sein Vorgaenger dort
vergessen hat. Echte Programmierer schreiben Programme und keine
Dokumentation, das ueberlaesst man den Typen von der Wartung.
Der Echte Programmierer ist in der Lage, 30, 40, ja sogar 50 Stunden in
einem Rutsch zu arbeiten, und das unter hohem Zeitdruck. Genaugenommen
mag er es so am liebsten. Schlechte Antwortzeiten regen den Echte
Programmierer nicht auf - sie geben ihm eine Chance, zwischen zwei
Kommandos ein bisschen Schlaf zu ergattern. Wenn die Planung nicht
genuegend Zeitdruck bereithaelt, dann tendiert der Echte Programmierer
dazu, seine Arbeit herausfordernder zu machen, indem er sich die ersten
neun Wochen mit einem kleinen, aber sehr interessanten Teil des
Problems befasst, um dann in der letzten Woche seine Aufgabe in zwei
oder drei 50-Stunden-Marathonsitzungen zu beenden. Dies beeindruckt
nicht nur den Manager, sondern schafft gleichzeitig eine hervorragende
Entschuldigung fuer das Fehlen der Dokumentation. Und ueberhaupt: Kein
Echter Programmierer arbeitet von 9 bis 5, ausser denen von der
Nachtschicht. Echte Programmierer tragen keine Schlipse. Echte
Programmierer tragen keine hochhackigen Schuhe. Echte Programmierer
kommen zur Arbeit, wenn andere zum Mittagessen gehen. Ein Echter
Programmierer vergisst vielleicht den Vornamen seiner Angetrauten, aber
niemals den Inhalt der gesamten ASCII- (bzw. EBCDIC-) Tabelle. Echte
Programmierer koennen nicht kochen. Da Supermaerkte um 3 Uhr morgens
selten geoeffnet haben, muessen sie sowieso von Kaffee und Keksen
leben.
Die Zukunft betrachtend machen sich eine Reihe von Echten
Programmierern Sorgen, dass die juengste Programmierergeneration nicht
mehr mit der gleichen Lebensperspektive aufwaechst wie sie selbst.
Viele der Juengeren haben noch nie einen Computer mit Maschinenkonsole
gesehen. Kaum ein Schulabgaenger kann heute noch hexadezimal rechnen,
ohne einen Taschenrechner zu benutzen. Die Studenten von heute sind
weich - geschuetzt vor den Realitaeten der Programmierung durch
symbolische Debugger, Texteditoren, die Klammern zaehlen, und
benutzerfreundliche Betriebssysteme. Und das schlimmste ist, einige
dieser angeblichen Computer-Spezialisten kommen zu Rang und Namen, ohne
je FORTRAN zu lernen! Sind wir dazu verdammt, eine Industrie von UNIX-
Hackern und Pascal-Programmierern zu werden?
Nun, aus meiner Erfahrung heraus glaube ich, behaupten zu duerfen, dass
das Schicksal den Echten Programmierern wohlgesonnen ist. Weder OS/370
noch FORTRAN zeigen irgendwelche Symptome des Aussterbens, trotz aller
Anstrengungen der Pascal-Programmierer. Selbst subtilere Tricks wie das
Hinzufuegen strukturierter Schleifen zu FORTRAN sind fehlgeschlagen.
Sicher, einige Computerhersteller liefern FORTRAN-77-Compiler, aber
jeder einzelne von ihnen laesst sich ueber eine einzige Compiler-Option
in einen FORTRAN-66-Compiler verwandeln - mit DO-Schleifen, wie von
Gott geschaffen.
Selbst UNIX scheint fuer den Echte Programmierer nicht mehr so schlecht
zu sein wie frueher. Die neueste UNIX-Version hat das Potential eines
Betriebssystems, das eines Echten Programmierers wuerdig ist. Sie hat
zwei verschiedene, leicht inkompatible Benutzerschnittstellen, einen
geheimnisvollen und komplizierten Teletype-Treiber und virtuellen
Speicher. Und wenn der Echte Programmierer die Strukturierung
ignoriert, kann er sich sogar mit C anfreunden. Schliesslich gibt es
keine Typenbindung, Bezeichner sind sieben (Zehn? Acht?) Zeichen lang,
und man hat Zeiger als Bonus. Das ist, als haette man die besten Teile
von FORTRAN und Assembler vereinigt, von den kreativeren Moeglichkeiten
des #define ganz zu schweigen.
Nein, die Zukunft ist nicht voellig schlecht. So hat sich in den
vergangenen Jahren die populaere Presse sogar ueber die clevere neue
Brut von Computer-Schraten und -Hackern geaeussert, die Plaetze wie
Stanford und MIT zugunsten der Wirklichkeit verlassen haben. Allen
Anzeichen nach lebt der Geist der Echten Programmierung weiter in
diesen jungen Maennern und Frauen. Und solange es schlecht beschriebene
Ziele, bizarre Fehler und unrealistische Zeitplaene gibt, solange wird
es Echte Programmierer geben, die bereit sind, einzuspringen und das
Problem zu loesen, und die sich die Dokumentation fuer spaeter
aufheben.
Lang lebe FORTRAN!
Zur Hauptseite
Zur Witze-Übersicht