5 – Welche Werkzeuge der E.P. benutzt…

Echte Programmierer meiden Pascal (1-10,99,?,ende)?5

Welche Werkzeuge ein echter Programmierer benutzt? Nun theoretisch könnte er seine Programme über eine Maschinenkonsole eingeben und laufen lassen. In den frühen Tagen der Computerei, als Computer noch Maschinenkonsolen hatten, wurde dies auch gelegentlich getan. Der typische Programmierer wußte den System-Urlader Bit für Bit auswendig und tippte ihn ein, sobald er von seinem Programm zerstört 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 zurück zum Thema. Die Legende sagt, daß Seymour Cray, der Erfinder des Cray-I-Supercomputers und der meisten anderen Rechner von Control Data, selbst das erste Betriebssystem für die CDC 7600 an der Maschinenkonsole eingetippt hat, als als sie das erste Mal eingeschaltet wurde. Cray ist natürlich ein echter Programmierer.

Einer der echten Programmierer, die ich am meisten bewundere, arbeitete als Systemprogrammierer für Texas Instruments. Eines Tages erhielt er ein Ferngespräch von einem Benutzer, dessen System mitten in einer wichtigen Arbeit abgestürzt war. Der Typ reparierte dann den Schaden übers Telefon. Er brachte den Benutzer dazu, an der Maschinenkonsole Disk-I/O-Instruktionen einzutippen, Systemtabellen in Hexadezimal zu reparieren und Registerinhalte über 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.

Im einigen Firmen besteht die Programmeingabe allerdings nicht mehr aus 10 Schlange stehenden Ingenieuren, die auf einen 029-Locher warten. In meiner Firma zum Beispiel steht kein einziger Kartenlocher. Der echte Programmierer muß in diesem Fall seine Arbeit mit einem Texteditor erledigen. Auf den meisten Rechnern stehen verschiedene Editoren zur Verfügung, und der Echte Programmierer muß aufpassen, daß er einen erwischt, der seinen persönlichen Stil wiedergibt.
Viele Leute glauben, daß die besten Editoren der Welt am Xerox Palo Alto Research Center geschrieben wurden und auf Alto– oder Dorado-Computern laufen. Unglücklicherweise würde jedoch kein echter Programmierer einen Computer mit einem Betriebssystem benutzen, das SmallTalk (Geplapper, Anm. d. Ü.) heißt, und sicherlich auch nicht über 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 oder vi. Das Problem mit diesen Editoren ist, daß echte Programmierer das Konzept des “Du kriegst, was Du siehst” für schlecht halten. Der echte Programmierer will einen “Du hast es so gewollt. da hast Du’s”-Editor, einen, der kompliziert ist, kryptisch, leistungsfähig, gnadenlos und gefährlich. TECO, um genau zu sein.

So wurde beobachtet, daß TECO-Kommandofolgen dem Leitungsrauschen ähnlicher sind als lesbarem Text. Eines der unterhaltsamsten Spiele, die mit TECO möglich sind, besteht darin, den eigenen Namen als Kommando einzugeben und zu raten, was dann passiert.
So ungefähr jeder mögliche Tippfehler kann dank TECO das gerade editierte Programm zerstören, oder schlimmer noch, kann kleine mysteriöse 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 binären Objectcode direkt zu ändern, für gewöhnlich mit einem wundervollen Programm, das SUPERZAP heißt (auf nicht IBM-Rechnern entsprechend anders). Dies funktioniert so gut, daß viele laufende Programme auf IBM-Systemen keine Ähnlichkeit mit den ursprünglichen FORTRAN-Programmquellen haben.
In einigen Fällen ist nicht einmal das Quellprogramm vorhanden. Wenn dann der Zeitpunkt gekommen ist, so ein Programm zu ändern, würde kein Manager auch nur daran denken, einem geringeren als einem echten Programmierer diese Arbeit zu übertragen – kein Müsli fressender strukturierter Programmierer wüßte auch nur, wo er mit der Arbeit anfangen soll. Man nennt das Arbeitssicherungsmaßnahme.

Hier eine Liste der wichtigsten Programmierhilfen, die der echte Programmierer nicht benutzt:

  • FORTRAN-Präprozessoren wie MORTRAN oder RATFOR. Diese Haut Cuisine der Programmierung eignet sich hervorragend, um Müsli zu produzieren.
  • Quellcodeorientierte Debugger. Echte Programmierer lesen Hexdumps.
  • Compiler, die Code für Array-Indexprüfungen zur Laufzeit erzeugen. Sie ersticken jede Kreativität, zerstören die meisten der interessanten Anwendungen der EQIVALENCE-Vereinbarung, und machen Änderungen des Betriebssystems mit Hilfe negativer Indizes unmöglich. Und schlimmer noch, solcher Code ist ineffizient.
  • Programm-Pflege-Systeme. Ein echter Programmierer hält seine Software als Kartenstapel unter Verschluß, denn dies zeigt, daß der Besitzer seine wichtigen Programme nicht unbewacht lassen kann.

6 – Wo der E.P. arbeitet…

by Seòrsa MacLately