---------- Pascal ---------------------------------------------- 20-Okt-97


From: Björn Schmidt 

Echte Programmierer meiden PASCAL

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 erdste 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":


  o   Echte Programmierer haben keine Angst vor GOTOs.

  o   Echte  Programmierer schreiben 5 Seiten lange  DO-Schleifen,  ohne
      durcheinander zu geraten.

  o   Echte  Programmierer lieben arithmetische IF-Statements  (die  mit
      den  3  Ausgaengen,  A. d. Ue.),  weil sie  den  Code  interessanter
      machen.

  o   Echte  Programmierer  schreiben  selbstmodifizierende   Programme,
      speziell, wenn sie damit in einer kleinen Schleife 20  Nanosekunden
      einsparen koennen.

  o   Echte  Programmierer  brauchen keine Kommentare,  das  Programm  ist
      selbstdokumentierend.

  o   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 Sprunglabels
      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  Typ 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-System  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 Maschinen-
konsole 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 mua 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.  Eines  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 heiat  (auf  Nicht-IBM-Rechnern
entsprechend  anders).  Dies funktioniert so gut,  dass viele  laufende
Programme  auf IBM-Systemen keine Aehnlichkeit mit dem  urspruenglichen
FORTRAN-Quellpro -gramm haben.  In einigen Faellen ist nicht einmal  mehr
das Quellprogramm vorhanden.  Wenn dann der Zeitpunkt gekommen ist, ein
Programm zu aendern,  wuerde kein Manager 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
Arbeitssicherungsmaanahme.


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  auswenig.  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  pm 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,  daa 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:


 o   Auf   Parties  stehen  Echte  Programmierer  in  einer  Ecke   und
     diskutieren  ueber Sicherheitsmechanismen von  Betriebssystem  und
     wie man darum herumprogrammiert.

 o   Bei   Fussballspielen  vergleicht  der  Echte  Programmierer   die
     Ergebnisse   mit   seinen  auf   gruenliniertem   Leporello-Papier
     gedruckten Computer-Simulationsergebnissen.

 o   Am  Strand zeichnet der Echte Programmierer Flussdiagramme in  den
     Sand.

 o   Ein Echter Programmierer geht in die Disco, um sich die Lichtorgel
     anzusehen.

 o   Bei  Begraebnissen  sagt der  Echte  Programmierer  typischerweise
     "Armer Hans-Helmut.  Er war mit seinem Sortierprogramm schon  fast
     fertig, als ihn der Herzinfarkt erwischt hat".

 o   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  Echten
Programmierer  nicht  auf -- sie geben ihm eine  Chance,  zwischen  zwei
Kommandos  ein  bischen 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 Echten 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.  Schliealich 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.