🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: dnet.witze
Article #546

Real Programmers ...

#546
From: Frank Simon
Date: Sat, 19 Aug 1989 08:00
459 lines
27038 bytes
Hallo !

Jetzt folgt der Text von den vielleicht viele gehoert haben, aber doch nicht
alle gelesen haben:


               Real Programmers Don`t use PASCAL

UrUrquelle: Ed Post,Wilsonville,Oregon/USA;Datamation 7/83.
UrQuelle  : FORTHTREE/Hamburg
Quelle    : Peter Glaser (Uebersetzung),CCC Datenschleuder 20-22
EDV-Text  : Terra

Im  goldenen  Zeitalter des Computers war es einfach,  die  Maenner
(bisweilen  `richtige  Maenner` genannt) von den  Bubis  (bisweilen
`Mueslifresser` genannt),zu unterscheiden. Zu dieser Zeit waren die
richtigen  Maenner die,  die etwas vom Programmieren verstanden und
die  Mueslifresser  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 unpersoehnlich".  Ein vorausschauendes Werk,  B.Feirstein's
"Richtige Maenner essen kein Muesli",  ein Taschenbuch aus dem Jahre
1982,  wies  darauf  hin,  dass  richtige  Maenner sich  auf  nichts
beziehen  und ausserdem keine Angst davor haben,  unpersoehnlich  zu
sein.

Aber  die  Zeiten aendern sich.  Heute sehen wir eine Welt,  in der
kleine aeltere Damen einen computerisierten Mikrowellenherd  haben,
zwoelfjaehrige  Kids einen richtigen Mann bei Asteroids oder  PacMan
spielend   in   die   Tasche   stecken,   und   jedermann   seinen
hoechstpersoehnlichen  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,  koennte den Kids eine Perspektive
geben - ein Persoehnlichkeitsbild,  eine Vaterfigur. Ausserdem wuerde
es deutlich machen, dass weiterhin richtige Programmierer gebraucht
werden.

Der   einfachste   Weg,   um  zu  bestimmen,   wer  die  richtigen
Programmierer  sind,  geht  ueber die Programmiersprache,  die  sie
verwenden.  Richtige Programmierer verwenden FORTRAN. Mueslifresser
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 Mueslifresser ist. Die einzige Form
der  Wertuebergabe,  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 noetig,  um ihre Arbeit zu erledigen;  sie sind
vollkommen gluecklich mit einer Lochkartenstanze, einem FORTRAN IV-
Compiler  und  einem Bier.  Richtige  Programmierer  programmieren
Listenverwaltung,  Stringmanipulationen, Buchfuehrung (falls sie es
ueberhaupt machen) und Kuenstliche 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
Sprach-konstruktionen   benutzt.   Welche  Konstruktionen   genau,
darueber 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,   fuenf  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 loesen - dazu braucht man wirkliches Talent.

Einige Anmerkungen zu richtigen Programmierern und  strukturierter
Programmierung:
  - Richtige Programmierer haben keine Angst, GOTO`s zu verwenden
  - Richtige Programmierer koennen fuenf Seiten lange  DO-Schleifen
    schreiben ohne nervoes 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 fuer sich;
  - Das Standardwerk fuer Richtige Programmierer ist `Murphy's Laws`
    in der ungebundenen Ausgabe, da es den groessten Realitaetsbezug
    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 noetigenfalls simulieren
    durch zugewiesene GOTO`s.

"Datenstrukturen"  gehen seit kurzer Zeit auch durch  die  Presse.
Abstrakte Datentypen, Strukturen, Pointer, Listen und Strings sind
in bestimmten Kreisen populaer geworden.  Wirth, der schon erwaehnte
Mueslifresser,  hat ein ganzes Buch geschrieben (`Algorithms + Data
Structures = Programms`,  Prentice Hall,1976),  da behauptet,  man
koenne Programme basierend auf "Datenstrukturen" schreiben, anstatt
die  anderen  Wege zu benutzen.  Wie jeder richtige  Programmierer
weiss,  ist  der  einzige  nuetzliche Datentyp das  Array.  Strings,
Listen,  Strukturen  und  Mengen  sind alles spezielle  Faelle  von
Arrays  und  koennen 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   fuer   eine  Art  Betriebssystem  verwendet   ein   richtiger
Programmierer ? CP/M ?
Gott behuete.  Im Grunde ist das ein Spielzeug-Betriebssystem. Auch
kleine  aeltere  Damen  und Oberschueler koennen  CP/M  benutzen  und
verstehen.

Unix ist selbstverstaendlich 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 serioeses 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-error, der grade
aufgetreten ist,  in seinem JLC-Handbuch finden und verstehen. Der
grossartige  Programmierer kann JCL schreiben ohne einen Blick  ins
Handbuch zu werfen.  Ein wirklich aussergewoehnlicher Programmierer
kann Bugs finden,  die in sechs Megabyte Core Dump vergraben sind,
ohne auch nur einen Hex-Taschenrechner zu benutzten.

OS/370   ist  ein  wahrhaft  bemerkenswertes  Betriebssystem.   Es
ermoeglicht  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 ueber eine Lochkartenstanze.  Einige Leute
behaupten,  es gaebe ein Timesharing System,  das auf OS/370 laeuft,
aber  nach sorgfaeltigen Studien bin ich zur Ansicht  gelangt,  dass
sie unrecht haben.

Was  fuer Tools benutzt der richtige Programmierer  ?   Theoretisch
kann  ein  richtiger  Programmierer  seine  Programme  zum  Laufen
bringen,  indem er sie direkt ueber die Schalttafel in den Computer
eingibt.  In den fruehen Tagen,  als die Computer noch Schalttafeln
hatten,  wurde das gelegentlich so gemacht. Der typische, richtige
Programmierer   hat  den  gesamten  Bootstap  Loader  in  Hex   im
Gedaechtnis  und  gibt  ihn neu ein,  wenn er von  seinem  Programm
zerstoert  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 behaelt
Dinge, die er laengst haette vergessen sollen.
Die  Legende  sagt,  dass  Seymous Cray,  der Erfinder des  Cray  I
Supercomputers  und der meisten Control Data Computer,  das  erste
Betriebssystem  fuer  den  CDC 7600 aus  dem  Gedaechtnis  ueber  die
Schalttafel  eingab,  als sie zum ersten Mal hoch-gefahren  wurde.
Cray ist selbstverstaendlich ein richtiger Programmierer.

Einer       meiner      Lieblings-Richtige-Programmierer       war
Systemprogrammierer  bei Texas Instruments.  Eines Tages erreichte
ihn ein Ferngespraech von einen User, dessen System mitten in einer
wichtigen Arbeit zusammengebrochen war. Jim behob den Schaden ueber
das   Telefon,   indem  er  den  User  dazu  brachte,   Disk  I/O-
Instruktionen   ueber  die  Schalttafel  einzugeben,   nach  seinen
Anweisungen System Tables in Hex zu reparieren und Registerinhalte
auszulesen.   Die  Moral  der  Geschichte:  Obwohl  ein  richtiger
Programmierer  nuetzlicherweise  eine  Lochkartenstanze  und  einen
Printer  zu  seinem Werkzeug zaehlt,  kann er im Notfall mit  einer
Schalttafel und einem Telefon auskommen.

In  einigen  Firmen  besteht das Edieren  von  Programmtext  nicht
laenger  darin,  dass zehn Ingenieure Schlange stehen,  um eine 029-
Lochkartenstanze zu benutzten.  Tatsaechlich ist es so,  dass in dem
Gebaeude, 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  waehlen
kann,  und  der richtige Programmierer muss achtgeben,  dass er sich
den aussucht, der seinem persoehnlichen 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.   Ungluecklicherweise  wird   kein
richtiger   Programmierer   jemals  einen   Computer   mit   einem
Betriebssystem,  das SmallTalk heisst,  knennenlernen, 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
vernuenftigeren 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  fuer
Texteditoren. Der richtige Programmierer will einen `you asked for
it,   you  got  it`-Editor;  einen,  der  kompliziert,  kryptisch,
maechtig, unnachsichtig und gefaehrlich ist. TECO, um genau zu sein.

Man   hat  festgestellt,   dass  eine  TECO-Kommandofolge  eher  an
Zeichensalat durch uebertragungsrauschen erinnert,  als an lesbaren
Text.  Eines  der unterhaltsamsten Spiele mit TECO besteht  darin,
dass  man seinen Namen als Kommandozeile eintippt  und  Vermutungen
darueber anstellt,  was dadurch passiert. So gut wie jeder moegliche
Tippfehler  wird  bei der Kommunikation mit TECO  kurzerhand  dein
Programm  zerstoeren,  oder schlimmer noch,  subtile und mysterioese
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 binaeren   Objektcode  direkt  zu
patchen, indem sie ein wunderbares Programm benutzen, das SUPERZAP
(oder das entsprechende aequivalent 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 Faellen ist der Source Code nicht laenger
verfuegbar.  Wenn  es  an der Zeit ist,  ein derartiges Programm zu
fixieren,  wird kein Manager jemand geringeren als einen richtigen
Programmierer  mit  dem  Job  betrauen  -  kein   mueslifressender,
strukturierte Programmierer wuerde wissen,  wo anfangen.  Das nennt
man Arbeitsplatzsicherung.

Einige  Programmier-Tools,  die  nicht von richtigen  Programmiern
benutzt werden:
  - FORTRAN-Praeprozessoren wie MORTRAN und RATFOR. Derartige
    Programmierrezepte sind gut zum mueslimachen;
  - Source Language Debugger. Richtige Programmierer koennen Core
    Dumps lesen;
  - Compiler mit Array Bounds Checking. Sie ersticken die
    Kreativitaet, vernichten die meisten der interessanten
    Verwendungsweisen fuer EQUIVALENCE und machen es unmoeglich,
    den Betriebssystemcode mit negativen Vorzeichen zu modifizieren.
    Das Schlimmste: Bounds Checking ist ineffizient.
  - Source Code-Pflegesysteme. Ein richtiger Programmierer haelt
    seinen Code in einem Karteikasten verschlossen, denn er geht
    davon aus, dass der Eigentuemer seine wichtigen Programme nicht
    unbewacht zuruecklassen kann.

Wo  lebt  der  typische  Programmierer ?   Was fuer  eine  Art  von
Programmen sind solcher talentierter Individuen wuerdig ?  Man kann
sicher sein,  dass sich kein richtiger Programmierer totschreibt an
einem   Programm  fuer  Konto-Aussenstaende  in  COBOL,   oder  einem
Maillist-Sortierprogramm  fuer das `People`-Magazin.  Ein richtiger
Programmierer braucht Arbeiten von erderschuetterdner Wichtigkeit.

Richtige  Programmierer  arbeiten  fuer  das  Los  Alamos  National
Laboratory  und schreiben Atombomben-Simulationen,  die auf Cray I
Supercomputern laufen. Sie arbeiten auch fuer die National Security
Agency und decodieren russische Funksprueche.
Es  war  eine grossartige Belohnung fuer die  Anstrengung  tausender
richtiger  Programmierer  bei der NASA,  dass unsere Jungs vor  den
Kosmonauten  auf  den Mond und wieder zurueck  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 fuer Cruise Missiles zu entwerfen.

Einige der ehrfurchtgebietendsten richtigen Programmierer arbeitet
im  Jet  Propulution 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  verfuegbaren FORTRAN-Programmen und kleinen,  in  den
Rechnern  der Sonden untergebrachten  Assembler-Programmen  koennen
sie  unglaubliche  Kunststuecke  an  Navigation  und  Improvisation
vollbringen  -  wie etwa nach sechs Jahren im All  zehn  Kilometer
grosse  `Fenster`  am Saturn zu treffen,  oder beschaedigte  Sensor-
Plattformen,  Funkgeraete  oder  Batterien  zu reparieren  oder  zu
ueberbruecken.  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 fuer die Galileo-Sonde geht dahin, auf dem Weg zum Jupiter
eine  Gravitations-Ablenkung hinter dem Mars zu  benutzten.  Diese
Route   verlaeuft,   +/-   3  Kilometer,   80  Kilometer  ueber  die
Marsoberflaeche. Kein Mensch wird sich fuer diese Art von Navigation
einem Pascal-Programm oder -Programmierer anvertrauen.

Viele   der   richtigen  Programmierer  arbeiten  fuer   das   U.S:
Gouverment,  vor  allem fuer das Verteidigungsministerium.  Das ist
so,  wie  es ein soll.  Vor kurzem hat sich eine schwarze Wolke am
Horizont der richtigen Programmierer zusammen-geballt. Es scheint,
dass      ein     paar     hoehergestellte      Mueslifresser      im
Verteidigungsministerium     entschieden    haben,     dass    alle
Verteidigungsprogramme  in einer grossen vereinheitlichten  Sprache
namens  Ada geschrieben werden sollen.  Fuer eine Weile schien  es,
als ob Ada ausersehen worden waere,  saemtliche Regeln des richtigen
Programmierers  nichtig  zu  machen.   Es  ist  eine  Sprache  mit
Struktur,   Datentypen,   Grossbeschreibung  und  Semikolons.  Kurz
gesagt,   wie   geschaffen   ,   die  Kreativitaet  des   richtigen
Programmierers  zu verkrueppeln.  Gluecklicherweise hat die Sprache,
derer  sich  das Department of Defence angenommen hat  ,  genuegend
interessante  Features  um  sie  annehmbar zu  machen  -  sie  ist
unglaublich komplex, beinhaltet Methoden, um Schweinereien mit dem
Betriebssystem anzustellen und Speicher nachtraeglich 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 Mueslifresser
abfahren.
Nebenbei,  ein  richtiger Programmierer kann FORTRAN-Programme  in
jeder Sprache schreiben.

Der  richtige  Programmierer  kann  einem  Kompromiss  mit   seinem
Prinzipen  eingehen und an geringfuegig trivialeren Dingen als  der
Zerstoerung  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 waere verrueckt,  das Geld von 50
Millionen  Star Wars Fans sinnlos zu verplempern.  Der Anteil  von
richtigen   Programmierern  in  der  Computergraphik   ist   etwas
niedriger als die Norm, grossteils weil noch niemand herausgefunden
hat,  wofuer die Computergrafik nuetzlich sein koennte.  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  amuesiert ihn unausgesetzt,  dass sein Auftraggeber ihn fuer  das
bezahlt, was er ohnehin zu seinem Vergnuegen tun wuerde, obgleich er
es  natuerlich  sorgfaeltig  vermeidet,  seine  Auffassung  laut  zu
aeussern. Gelegentlich geht der richtige Programmierer aus dem Buero,
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 ueber Betriebssystemsicherheit plaudern, und wie man
    sie umgehen kann;
  - Bei einem Fussballmatch ist der richtige Programmierer
    derjenige, welcher den Spielverlauf mit seiner Simulation,
    gedruckt auf gruenweissem Endlospapier, vergleicht;
  - Ein richtiger Programmierer geht in eine Discothek, um sich
    die Lightshow anzusehen.
  - Bei einem Begraebnis ist der richtige Programmierer derjenige,
    der sagt: "Armer Gregor. Und er hatte die Sortierroutine kurz
    vor der Vollendung."
  - In einem Lebensmittelgeschaeft 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 fuer einer Art von Umgebung fuehlt sich ein richtiger Program-
mierer am besten ?  Das   ist   eine  wichtige   Frage   fuer   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  Flaeche  des   Bueros
gestapelt.  Ebenfalls  zu  finden  ist  etwa  ein  halbes  Dutzend
halbvoller  Tassen  mit  kaltem  Kaffee.   Gelegentlich  schwimmen
Zigarettenstummel  in dem Kaffee.  In einigen Faellen enthalten die
Tassen auch Orangensaft.  Weiter,  ausser er ist wirklich SEHR gut,
werden  sich  Kopien  des  OS  JCL-Hand-buchs  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.
ueber  den  Boden verstreut liegen die  Verpackungen  diverser  mit
Erdnussbutter  gefuellter  Kaese-brote.  Schliesslich,  in der  linken
obersten  Schreibtischschublade,   unter  einer  Schachtel  Kekse,
befinden   sich  Flussdiagramm-Formulare,   die  ein  Vorgaenger  da
zurueckgelassen  hat.  Richtige Programmierer schreiben  Programme,
keine  Dokumentationen,  die fuer 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 schaetzt
es,   so  zu  arbeiten.  Leerlaufzeiten  sind  fuer  den  richtigen
Programmierer  kein  Problem;  sie geben ihm die Moeglichkeit,  ein
Muetzchen Schlaf zwischen zwei Compilerdurchgaengen zu nehmen.  Wenn
nicht  genug Termindruck auf dem richtigen  Programmierer  lastet,
tendiert er dazu,  die Zuegel schleifen zu lassen,  indem er in dem
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   dafuer,   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  Buero  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.  Richtiger Programmierer wissen nicht,
wie man kocht.  Lebensmittelgeschaefte sind selten um 3 Uhr morgens
geoeffnet, also muessen sie mit Keksen und Kaffe ueberleben.

Wirft  man einen Blick in die Zukunft,  so ziehen einige  richtige
Programmierer   in  Betracht,   dass  die  juengste   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   Universitaetsabsolventen  sind  gegenueber   der   harten
Programmier-Wirklichkeit  wie in Watte gepackt durch Source  Level
Debugger,     Text-Editoren,     die    Klammer    zaehlen,     und
benutzerfreundliche  Betriebssysteme.   Am  schlimmsten  ist,  dass
einige dieser angeblichen Computerwissentschaftler eine Graduation
zu  schaffen,  ohne  FORTRAN  zu lernen!   Steht uns  bevor,  eine
Gesellschaft   von   Unix-Hackern   und   Pascal-(oder    Modula)-
Programmierern zu werden ?

Nach   meinem   Dafuerhalten  sieht  die   Zukunft   fuer   richtige
Programmierer nach wie vor glaenzend aus. Weder OS/370 noch FORTRAN
zeigen  Anzeichen  auszusterben,   den  boshaften  Bemuehungen  von
Pascal-Programmierern zum Trotz. Auch sehr subtile Tricks wie etwa
der Versuch,  FORTRAN strukturierte Code-Konstrukte unterzujubeln,
sind fehlgeschlagen.  Ja sicher, ein paar Computerhaendler 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
zurueckverwandeln kann - um DO-Schleifen zu compilieren wie Gott es
vorgesehen hat.

Sogar  Unix  scheint  nicht  mehr ganz  so  schlimm  fuer  richtige
Programmierer  zu sein,  wie es einmal war.  Die letze Version von
Unix  hat die Staerken eines Betriebssystems,  das einem  richtigen
Programmierer wuerdig ist.  Es hat zwei unterschiedliche und subtil
inkompatible User Interfaces,  einem ueberzogenen und komplizierten
DFue-Treiber,  und  virtuellen Speicher.  Wenn man von der Tatsache
absieht,  dass es strukturiert ist, kann sogar das Programmieren in
C fuer 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 hinzugefuegt.
Es ist als haette man die besten Teile von FORTRAN und Assembler in
einer  Sprache;  noch  ohne  an  einige  der  mehr  kuenstlerischen
Anwendungen fuer `define` zu denken.

Nein,  die Zukunft ist nicht dunkel. In den letzten Jahren hat die
Presse auch die glaenzende 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 Maennern und  Frauen  weiter.
Solange  es  abartig  definerte  Sprungziele,   bizarre  Bugs  und
unrealistische  Tabellen  gibt,  wird  es  richtige  Programmierer
geben,  gewillt  einzuspringen,  das  Problem  zu klaeren  und  die
Dokumentation auf spaeter zu verschieben.

Lang lebe FORTRAN!


gruss Terra
--
-----------------------------------------------------------------
! Nickname: Terra                      UUCP: simon@uniol.UUCP   !
! Realname: Frank Simon                Sub: Terra@mcshh.UUCP    !
! Position: Oldenburg, FRG             EARN: 151133@DOLUNI1     !
!                       Bist du wahres leben ?                  !
-----------------------------------------------------------------
Technical Details
Message-ID: <770@uniol.UUCP>
Path: arc1-ca.pugleaf.net!gmdzi!unido!uniol!simon

Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit
X-Google-Thread: 10d2e7,4f26475a9bb04cc8,start
X-Google-Attributes: gid10d2e7,public
X-Google-Thread: 12425b,4f26475a9bb04cc8,start
X-Google-Attributes: gid12425b,public
X-Google-ArrivalTime: 1989-08-19 15:15:25 PST
Path: arc1-ca.pugleaf.net!gmdzi!unido!uniol!simon
From: simon@uniol.UUCP (Frank Simon)
Newsgroups: dnet.witze,local.jokes
Subject: Real Programmers ...
Message-ID: <770@uniol.UUCP>
Date: 19 Aug 89 08:00:20 GMT
Distribution: dnet
Organization: University of Oldenburg, W-Germany
Lines: 459
Posted: Sat Aug 19 09:00:20 1989