Streit der Prospen Wir haben einige Texte gefunden, die sich mit dem Thema Prospen mehr oder weniger ernst auseinander setzen. Von wem die Texte sind, ist unbekannt - trotzdem einen herzlichen Dank...! Der zweite Text ist relativ lang, aber gut! Insgesamt sind es etwas mehr als 500 Zeilen... man sollte sich also ein wenig Zeit nehmen. Wenn Ihr hnliche Texte zu Hause habt oder Euch selbst mal ber Vor- und Nachteile verschiedener Prospen auslassen wollt (sei's nun ernst gemeint oder nicht...), dann macht das! Wir knnten uns vorstellen, da dies eine sehr 'luschtige' Rubrik wird... ERFINDER VON UNIX UND C GEBEN ZU : ALLES QUATSCH In einer Ankndigung, die die Computerindustrie verblffte, ha- ben Ken Thompson, Dennis Ritchie und Brian Kernigham zugege- ben, da das von ihnen geschaffene Betriebssystem Unix und die Programmiersprache C ein raffinierter Aprilscherz sind, der sich ber 20 Jahre am Leben erhalten hat. Bei einem Vortrag vor dem letzten UnixWorld-Software-Entwicklungsforum enthllte Thompson: "1969 hatte AT&T gerade die Arbeit am GE/Honeywell/AT&T-Mul- tics-Projekt beendet. Brian und ich experimentierten zu dem Zeitpunkt mit einer frhen Pascal-Version von Professor Niklaus Wirth vom ETH-Laboratorium in der Schweiz und waren beeindruckt von seiner Einfachheit und Mchtigkeit. Dennis hatte gerade 'Der Herr der Klinge' gelesen, eine spttische Parodie auf Tol- kiens grosse Triologie 'Der Herr der Ringe'. Im bermut beschlossen wir, Parodien zur Multics-Umgebung und zu Pascal zu verfassen. Dennis und ich waren fr die Betriebs- systemumgebung verantwortlich. Wir sahen uns Multics an und entwarfen ein neues System, das so komplex und kryptisch wie mglich sein sollte, um die Frustration der gelegentlichen Nutzer zu maximieren. Wir nannten es Unix in Anspielung auf Multics und fanden es auch nicht gewagter als andere Verball- hornungen. Danach entwickelten Dennis und Brian eine wirklich perverse Pascal-Version namens 'A'. Als wir bemerkten, da ei- nige Leute tatschlich versuchten, in A zu programmieren, fg- ten wir schnell einige zustzliche Fallstricke hinzu und nann- ten es B, BCPL und schliesslich C. Wir hrten damit auf, als wir eine saubere bersetzung der folgenden Konstruktion erhiel- ten: for(;P("\n"),R--;P("!"))for((e=C;e--;P("_"+(*u++/8)%2)) [die zweite Zeile war leider nicht zu entziffern] Der Gedanke, da moderne Programmierer eine Sprache benutzen wrden, die solch eine Anweisung zulie, lag jenseits unseres Vorstellungsvermgens. Wir dachten allerdings daran, alles den Sowjets zu verkaufen, um ihren Computerfortschritt 20 Jahre und mehr zu behindern. Unsere beraschung war gro, als dann AT&T und andere US-Unternehmen tatschlich begannen, Unix und C zu verwenden! Sie haben 20 weitere Jahre gebraucht, gengend Er- fahrungen zu sammeln um einige bedeutungslose Programme in C zu entwickeln, und das mit einer Parodie auf die Technik der 60er Jahre! Dennoch sind wir beeindruckt von der Hartnckigkeit (falls nicht doch Gemeinsinn) des gewhnlichen Unix- und C-An- wenders. Jedenfalls haben Brian, Dennis und ich in den letzten Jahren nur in Pascal auf einem Apple Macintosh programmiert, und wir fhlen uns echt schuldig an dem Chaos, der Verwirrung und dem wirklich schlechten Programmierstil, der von unserem verrckten Einfall vor so langer Zeit ausging." Namenhafte Unix- und C-Anbieter und Benutzer, einschlielich AT&T, Microsoft, Hewlett-Packard, GTE, NCR und DEC haben vor- lufig jede Stellungnahme abgelehnt. Borland International [...] meinte, sie htten diesen Verdacht schon seit Jahren ge- hegt und wrden nun dazu bergehen, ihre Pascal-Produkte zu verbessern, und weitere Bemhungen um die C-Entwicklung stop- pen. Ein IBM-Sprecher brach in unkontrolliertes Gelchter aus. (Quelle: Bernhard L. Hayes, NetNews-Gruppe) Echte Programmierer meiden PASCAL Vor langer Zeit, in der Goldenen ra der Computer, war es noch einfach, die Mnner von den Memmen zu trennen (mitunter auch "Echte Mnner" und "Msli-Fresser" genannt). Echte Mnner pro- grammierten Computer, Msli-Fresser lieen es bleiben. Ein echter Computer sagte Dinge wie "DO 10 I=10, 10" oder "ABF1D", und der Rest der Welt qngelte "Computer sind mir zu kompliziert" oder "Ich kann zu Computern keine gefhlsmige Bindung aufbauen - sie sind zu unpersnlich". Dabei zeigt schon Remy Eyssens Buch "Echte Mnner mgen kein Msli" (Heyne TB 6290), da Echte Mnner zu nichts und niemandem eine 'gefhlsmige Bindung aufbauen und da sie auch keine Angst haben, unpersnlich zu sein. Aber die Zeiten ndern sich. Heute stehen wir einer Welt gegen- ber, in der kleine alte Damen vollcomputerisierte Mikrowellen- herde kaufen knnen, in der 12 Jahre alte Dreiksehochs gestan- dene Mnner bei ASTEROIDS und PACMAN sattmachen, und in der jeder seinen eigenen Heimcomputer kaufen und sogar verstehen kann. Der Echte Programmierer ist gefhrdet, von Studenten mit einem ITT 2020 (deutsche Version des ABFALL-II, Anm. d. bers.) im Gepck 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 knnen - ein Vorbild, eine Va- terfigur. Auerdem schtzt sie den Echten Programmierer vor der Arbeitslosigkeit. Der einfachste Weg, um einen Echten Programmierer zu erkennen, fhrt ber die von ihm benutzte Programmiersprache. Echte Pro- grammierer benutzen FORTRAN. Msli-Fresser benutzen PASCAL. Nik- laus Wirth, der Schpfer von PASCAL wurde einmal gefragt, wie man seinen Namen ausspreche. "You can either call me by name, pron- ouncing it 'Veert' or call me by value, 'worth'", antwortete er. Diese Bemerkung zeigt sofort, da Wirth ein Msli-Fresser ist. Der einzige Parameter-bergabe-Mechanismus, den Echte Programmie- rer akzeptieren, ist call-by-value-return (call-by-result, Anm. d. bers.), wie er in den IBM/370 FORTRAN -G- und -H- Compilern implementiert ist. Echte Programmierer brauchen schlielich keine abstrakten Konzepte, um ihre Arbeit zu erledigen; sie sind voll- kommen glcklich mit einem Lochkarten-Stanzer, einem FORTRAN-IV- Compiler und einem Bier. Echte Programmierer erledigen Listenver- arbeitung, Zeichenketten-Manipulation, Graphikdarstellung (wenn berhaupt) und knstliche Intelligenz in FORTRAN. Was sie mit FORTRAN nicht machen knnen, machen sie mit Assembler, was sie mit Assembler nicht machen knnen, lassen sie verchtlich liegen. Akademische Computerspezialisten sind in den letzten Jahren auf's Abstellgleis der Strukturierten Programmierung geraten. Sie be- haupten, da Programme verstndlicher werden, wenn bestimmte Sprachkonstrukte und Programmiertechniken benutzt werden. Sie knnen sich natrlich 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 irgend eines obskuren Journals. Als ich aus der Schule kam, dachte ich, ich sei der beste Pro- grammierer der Welt. Ich konnte ein unschlagbares TIC-TAC-TOE- Spiel (Vier-in-einer-Reihe, Anm. d. bers.) schreiben, beherr- schte 5 verschiedene Programmiersprachen und schrieb fehlerfreie 1000-Zeilen-Programmme. Dann kam ich in die Wirklichkeit. Meine erste Aufgabe bestand darin, ein 200.000-Zeilen-FORTRAN-Programm zu lesen, zu verstehen und um den Faktor 2 zu beschleunigen. Je- der Echte Programmierer wird einem versichern, da die gesamte strukturierte Programmierung der Welt in einem solchen Fall nicht hilft - hier braucht man wirklich Talent. Einige Beobachtungen zum Thema "Echte Programmierer und Struktu- rierte Programmierung": - Echte Programmierer haben keine Angst vor GOTO's. - Echte Programmierer schreiben 5 Seiten lange DO-Schleifen, ohne durcheinander zu geraten. - Echte Programmierer lieben das arithmetische IF-Statement (das mit den 3 Ausgngen, Anm. d. bers.), weil es den Code interes- santer macht. - Echte Programmierer schreiben selbstmodifizierende Programme, speziell, wenn sie damit in einer kleinen Schleife 20 Nanose- kunden einsparen knnen. - Echte Programmierer brauchen keine Kommentare; das Programm ist schlielich selbstdokumentierend. - Da FORTRAN strukturierte IF-, REPEAT-UNTIL oder CASE-Anweisun- gen nicht kennt, braucht sich der Echte Programmierer nicht zu sorgen, da er sie nicht benutzt. Auerdem kann man sie ntigen- falls ber "ASSIGNED GOTO'S" simulieren. Datenstrukturen sind in letzter Zeit in gewissen Kreisen populr geworden. Wirth, der Msli-Fresser, verfasste sogar ein ganzes Buch ("Algorithmen und Datenstrukturen", Teubner 1975), in dem er behauptete, da man Programme schreiben knne, die auf Daten- strukturen aufbauen, statt es umgekehrt zu machen. Wie jeder Ech- te Programmierer wei, gibt es nur eine wirklich ntzliche Daten- struktur, das Array. Zeichenketten, Listen, Records und Mengen sind allesamt Sonderflle von Arrays und knnen auch so behandelt werden, ohne dadurch die Sprache zu verkomplizieren. Das Schlimm- ste an den ganzen schnen Typen ist auerdem, da man sie dekla- rieren mu, whrend Echte Programmiersprachen wie man wei 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-Betriebssys- tem. Selbst kleine alte Damen und Hauptschler knnen CP/M be- nutzen und verstehen. UNIX ist natrlich schon viel komplizierter - der typische UNIX- Hacker wei nie, wie das PRINT-Kommando diese Woche heit - aber wenn man es ganz genau nimmt, ist UNIX auch nur ein verherrlich- tes Telespiel. Niemand arbeitet auf UNIX-Systemen an ernstzuneh- menden Dingen - man schickt kleine Witzchen ber USENET rund um die Welt, oder man schreibt ein neues Adventure-Spiel oder For- schungsberichte. Nein, der Echte Programmierer benutzt OS/370. Ein guter Program- mierer kann die Beschreibung des Fehlers IJK3051 in seinem JCL- Manual (Job Control Language, Batch-Kommandosprache, Anm. d. bers.) finden und interpretieren. Ein sehr guter Programmierer erkennt die Fehler, ohne in sein Manual zu sehen. Ein wahrhaft auerordentlicher Programmierer kann Fehler in einem 6-Megabyte- Hexdump finden, ohne dafr einen Taschenrechner zu benutzen. OS/370 ist ein wirklich bemerkenswertes Betriebssystem. Mit einem einzigen falsch plazierten Leerzeichen kann man die gesamte Ar- beit mehrerer Tage zerstren, was die Wachsamkeit im Programmier team ungemein frdert. Der beste Weg zum System ist der Karten- stanzer. Zwar behaupten einige Leute, es gbe ein Timesharing- System unter OS/370, aber nach sorgfltigen Nachforschungen bin ich zu dem Schlu gekommen, da sie sich irren. Welche Werkzeuge ein Echter Programmierer benutzt? Nun, theore- tisch knnte er seine Programme ber die Maschinenkonsole einge- ben und laufenlassen. In frhen Tagen der Computerei, als Compu- ter noch Maschinenkonsolen hatten, wurde dies auch gelegentlich getan. Der typische Programmierer wute den System-Urlader Bit fr Bit auswendig und tastete ihn ein, sobald er von seinem Pro- gramm zerstrt worden war. Damals war Speicher auch noch Speicher - der war nicht einfach leer, wenn der Strom ausfiel. Hauptspei- cher von heute vergessen entweder Dinge, die sie behalten soll- ten, oder enthalten Informationen, die schon lange weg sein soll- ten. Aber zurck 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 fr die CDC 7600 an der Maschinenkonsole eingetastet hat, als sie das erste Mal eingeschaltet wurde. Cray ist selbstverstndlich ein Echter Programmierer. Einer der Echten Programmierer, die ich am meisten bewundere, ar- beitete als System-Programmierer fr Texas Instruments. Eines Ta- ges erhielt er ein Ferngesprch von einem Benutzer, dessen System mitten in einer wichtigen Arbeit abgestrzt war. Der Typ repa- rierte dann den Schaden ber's Telefon. Er brachte den Benutzer dazu, an der Maschinenkonsole Disk-I/O-Instruktionen einzutasten, System-Tabellen in Hexadezimal zu reparieren und Registerinhalte ber's Telefon durchzugeben. Die Moral von der Geschichte: obwohl ein Echter Programmierer normalerweise Kartenlocher und Schnell- drucker benutzt, kommt er im Notfall auch mit Maschinenkonsole und Telefon aus. In einigen Firmen besteht die Programmeingabe allerdings nicht nur aus 10 schlangestehenden Ingenieuren, die auf einen 029- Locher warten. In meiner Firma z.B. steht kein einziger Karten- stanzer. Der Echte Programmierer mu in diesem Falle seine Arbeit mit einem Texteditor erledigen. Auf den meisten Rechnern stehen verschiedene Editoren zur Verfgung, und der Echte Programmierer mu aufpassen, da er einen erwischt, der seinen persnlichen Stil wiedergibt. Viele Leute glauben, da die besten Editoren der Welt am Xerox Pablo Alto Research Center geschrieben wurden und auf Alto- oder Dorado-Computern laufen. Unglcklicherweise wrde jedoch kein Echter Programmierer einen Computer mit einem Be- triebssystem benutzen, das SmallTalk heit, 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 ar- beiten, so wie EMACS oder VI. Das Problem mit diesen Editoren ist, da Echte Programmierer das Konzept "Du kriegst, was Du siehst" fr schlecht halten. Der Echte Programmierer will einen "Du hast es so gewollt, da hast Du's"-Editor, einen der kompli- ziert ist, skeptisch, leistungsfhig, gnadenlos und gefhrlich. TECO, um genau zu sein. So wurde beobachtet, da TECO-Kommandofolgen dem Leitungsrauschen hnlicher sind als lesbarem Text. Eins der unterhaltsameren Spie- le, die mit TECO mglich sind, besteht darin, den eigenen Namen als Kommando einzugeben und zu raten, was dann passiert. So unge- fhr jeder mgliche Tippfehler kann dank TECO das gerade editier- te Programm zerstren, oder schlimmer noch, kann kleine mysteri- se Fehler in einstmals funktionierende Unterprogramme einbrin- gen. Aus diesem Grunde editieren Echte Programmierer nur sehr wider- willig Programme, die schon fast laufen. Sie finden es viel ein- facher, den binren Objektcode direkt zu ndern, fr gewhnlich mit einem wundervollen Programm, das SUPERZAP heit (auf Nicht- IBM-Rechnern entsprechend anders). Dies funktioniert so gut, da viele laufende Programme auf IBM-Systemen keine hnlichkeit mit den ursprnglichen FORTRAN-Quellprogrammen haben. In einigen Fl- len ist nicht einmal mehr das ursprngliche Quellprogramm vorhan- den. Wenn dann der Zeitpunkt gekommen ist, so ein Programm zu n- dern, wrde kein Manager auch nur daran denken, einem geringeren als einem Echten Programmierer diese Arbeit zu bertragen - kein Msli-fressender strukturierter Programmierer wte auch nur, wo er mit der Arbeit anfangen soll. Man nennt das Arbeitssicherungs- manahme. Hier eine Liste der wichtigsten Programmierhilfen, die der Echte Programmierer nicht benutzt: - FORTRAN-Preprozessoren wie MORTRAN oder RATFOR. Diese Haute Cuisine der Programmierung eignet sich hervorragend, um Msli zu produzieren. - Quellcode-orientierte Debugger. Echte Programmierer lesen Hex- Dumps. - Compiler, die Code fr Array-Indexprfungen zur Laufzeit erzeu- gen. Sie ersticken jede Kreativitt, zerstren die meisten der interessanteren Anwendungen der EQUIVALENCE-Vereinbarungen, und machen nderungen des Betriebssystems mit Hilfe negativer Indi- zes unmglich. Und schlimmer noch, solcher Code ist ineffi- zient. - Programm-Pflege-Systeme. Ein Echter Programmierer hlt seine Software als Kartonstapel unter Verschlu, denn dies zeigt, da der Besitzer seine wichtigen Programme nicht unbewacht lassen kann. Wo der typische Echte Programmierer arbeitet? Welche Art von Pro- grammen derart talentierten Individuen wrdig ist? Nun, man kann sicher sein, da man nie einen Echten Programmierer beim Schrei- ben von Buchhaltungsprogrammen in COBOL erwischen wird, oder gar beim Sortieren der Abonnentenadressen des Spiegels. Nein, ein Echter Programmierer braucht Aufgaben von weltbewegender Bedeu- tung. Echte Programmierer arbeiten fr das Los Alamos National Labora- tory und schreiben dort Atomkriegs-Simulationen auf Cray-I-Super- computern, oder sie arbeiten bei der National Security Agency und entschlsseln russische Funksprche. Nur weil tausende Echter Programmierer fr 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 ehrfurchteinflenden Echten Programmierer kennen das gesamte Betriebssystem der Pioneer- und Voyager-Sonden auswendig. Mit einer Kombination aus groen, bodengebundenen FORTRAN-Pro- grammen und kleinen, von Sonden mitgefhrten Assembler-Programmen vollbringen sie unglaubliche Kunststcke der Navigation und Im- provisation. So treffen sie nur 10 Kilometer groe 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 sogar gelungen sein, in ein paar Hundert Byte ungenutzten Speichers innerhalb der Voyager- Sonde ein Mustererkennungsprogramm zu pressen, das einen neuen Mond des Jupiters suchte, fand und photographierte. Fr die Galileo-Sonde ist vorgesehen, da sie auf dem Weg zum Ju- piter entlang einer schwerkraftgelenkten Bahn am Mars vorbei- zieht. Diese Bahn fhrt in einer Entfernung von 80x103km an der Marsoberflche vorbei. Kein Mensch wrde diese Art der Navigation einem Pascal-Programm oder gar -Programmierer anvertrauen. Viele Echte Programmierer dieser Welt arbeiten fr die amerika- nische Regierung, meist fr das Verteidigungsministerium. So soll es sein. In letzter Zeit allerdings erscheinen dunkle Wolken am Horizont der Echten Programmierer. Es scheint, als htten einige einflureiche Msli-Fresser im Verteidigungsministerium entschie- den, da in Zukunft alle Verteidigungsprogramme in so einer Art von groer, vereinheitlichter Programmiersprache namens ADA ge- schrieben werden mten. Lange Zeit schien es, als lge ADA's Be- stimmung im Versto gegen alle Regeln der Echten Programmierung. Es ist eine Sprache mit Strukturen, Datentypen, strenger Typen- bindung und Semikoli. Kurz, sie ist wie geschaffen um die Kreati- vitt des typischen Echten Programmierers zu verkrppeln. Glcklicherweise hat die jetzt vom DoD ausgewhlte Sprache noch gengend interessante Eigenschaften, um dem Echten Programmierer eine Annherung zu ermglichen: sie ist unglaublich komplex, sie enthlt Mglichkeiten, um mit dem Betriebssystem herumzumachen und Speicherbereiche neu zu verteilen, und Edgar Dijkstra mag sie nicht. Dijkstra ist, wie man wissen sollte ,der Autor von "GOTO'S considered harmful", einem Meilenstein der Programmiermethodolo- gie, der von Pascal-Programmierern und Msli-Fressern gleicher maen bewundert wird. - Und auerdem, ein zu allem entschlossener Echter Program- mierer 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 dafr ent- sprechend bezahlt wird. Viele Echte Programmierer schreiben z.B. Videospiele fr ATARI, allerdings spielen sie nicht damit. Ein Echter Programmierer wei, wie er die Maschine jedesmal schlagen kann, und damit ist es keine Herausforderung mehr. Jeder bei Lu- cas-Film ist ein Echter Programmierer, denn es wre verrckt, das Geld von 50 Millionen STAR-WARS-Fans auszuschlagen. Der Anteil der Echten Programmierer im Bereich der Computer-Gra- phics ist etwas niedriger als anderswo, was wahrscheinlich daran liegt, da noch niemand irgendeinen Nutzen der Computer-Graphics entdeckt hat. Andererseits werden Computer-Graphics berwiegend in FORTRAN abgehandelt, daher gibt es einige Leute, die so das Schreiben von COBOL-Programmen vermeiden. Im Allgemeinen spielt der Echte Programmierer so wie er arbeitet - mit Computern. Er ist stndig darber erheitert, da sein Ar- beitgeber ihn tatschlich fr etwas bezahlt, was er nur zum Spass sowieso tun wrde - allerdings achtet er darauf, diese Meinung nicht zu laut zu uern. Gelegentlich kommt der Echte Programmie- rer auch aus seinem Bro heraus, um sich ein wenig frische Luft und ein oder zwei Bierchen zu genehmigen. Hier daher einige Hinweise, wie man Echte Programmierer auerhalb des Computerraums erkennt: - Auf Parties stehen Echte Programmierer in einer Ecke und disku- tieren ber die Sicherheitsmanahmen von Betriebssystemen und wie man um sie herumprogrammiert. - Beim Fuballspielen vergleicht der Echte Programmierer die Er- gebnisse mit seinen auf grnliniertem Leporello-Papier gedruck- ten Computer-Simulations-Ergebnissen. - Am Strand zeichnet der Echte Programmierer Fludiagramme in den Sand. - Ein Echter Programmierer geht in die Disco, um sich die Licht- orgel anzusehen. - Bei Begrbnissen 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 selbst ber 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 funktio- niert? Nun, dies ist eine sehr wichtige Frage fr die Manager von Echten Programmierern. Wenn man bedenkt, wie teuer es ist, einen von ihnen im 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 ge- ordnet auf jeder ebenen Flche des Bros. Im Zimmer verteilt fin- den sich ber ein Dutzend mit kaltem Kaffee mehr oder weniger ge- fllte Tassen. Gelegentlich schwimmen Zigarettenkippen darin he- rum, in einigen Fllen auch Reste von Orangenschalen. Irgendwo liegen Kopien des OS JCL-Manuals und der "Principles of Opera- tion" herum. ber den Boden verteilt liegen Reste der Verpackun- gen von gefllten Keksen (der Typ, der schon in der Fabrik so furztrocken gebacken wird, da er auch bei lngerem Liegen im Au- tomaten nicht schlechter wird). Schlielich, in der linken oberen Schublade des Schreibtischs, unter der Schachtel mit den Munter- machern, liegt eine Schablone fr Fludiagramme, die sein Vorgn- ger dort vergessen hat. Echte Programmierer schreiben Programme und keine Dokumentation; das berlt man den Typen von der War- tung. Der Echte Programmierer ist in der Lage, 30, 40, ja sogar 50 Stunden in einem Rutsch zu arbeiten, und das unter hohem Zeit- druck. Genaugenommen mag er es so am liebsten. Schlechte Antwort- zeiten regen den Echten Programmierer nicht auf - sie geben ihm die Chance, zwischen zwei Kommandos ein bichen Schlaf zu ergat- tern. Wenn die Planung nicht genug Zeitdruck bereithlt, dann tendiert der Echte Programmierer dazu, seine Arbeit herausfor- dernder zu machen, indem er sich die ersten neun Wochen mit einem kleinen, aber sehr interessanten Teil des Problems befat, 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 Ent- schuldigung fr das Fehlen der Dokumentation. Und berhaupt: kein Echter Programmierer arbeitet von 9 bis 5, auer denen von der Nachtschicht. Echte Programmierer tragen kei- ne Schlipse. Echte Programmierer tragen keine hochhackigen Schu- he. Echte Programmierer kommen zur Arbeit, wenn andere zum Mit- tagessen gehen. Ein Echter Programmierer vergit vielleicht den Vornamen seiner Angetrauten, aber niemals den Inhalt der gesamten ASCII- (oder EBCDIC-) Tabelle. Echte Programmierer knnen nicht kochen. Da Supermrkte um 3 Uhr morgens selten geffnet sind, mssen sie sowieso von Kaffee und Keksen leben. Die Zukunft betrachtend machen sich eine ganze Reihe von Echten Programmierern Sorgen, da die jngste Programmierergeneration nicht mehr mit der gleichen Lebensperspektive aufwchst, wie sie selbst. Viele der jngeren haben noch nie einen Computer mit ei- ner Maschinenkonsole gesehen. Kaum ein Schulabgnger kann heute noch hexadezimal rechnen, ohne eine Taschenrechner zu benutzen. Die Studenten von heute sind weich - geschtzt vor den Realitten der Programmierung durch symbolische Debugger oder Texteditoren, die Klammern zhlen, und benutzerfreundliche Betriebssysteme. Und das schlimmste ist, einige von ihnen werden auf die Menschheit losgelassen ohne je FORTRAN zu lernen! Sind wir dazu verdammt, eine Industrie von UNIX-Hackern und PASCAL-Programmierern zu wer- den? Nun, aus meiner Erfahrung heraus glaube ich behaupten zu drfen, da das Schicksal den Echten Programmierern wohlgesonnen ist. We- der OS/370 noch FORTRAN zeigen irgendwelche Symptome des Ausster- bens, trotz aller Anstrengungen der PASCAL-Programmierer. Selbst subtilere Tricks wie das Hinzufgen strukturierter Schleifen zu FORTRAN sind fehlgeschlagen. Sicher, einige Computerhersteller liefern FORTRAN-77-Compiler, aber jeder einzelne von ihnen lt sich ber eine einzige Compiler-Option in einen FORTRAN-66-Compi- ler verwandeln - mit DO-Schleifen wie von Gott geschaffen. Selbst UNIX scheint fr den Echten Programmierer nicht mehr so schlecht zu sein wie frher. Die neueste UNIX-Version hat das Potential eines Betriebssystems, das eines Echten Programmierers wrdig ist. Sie hat zwei verschiedene, leicht inkompatible Benutzer- Schnittstellen, einen geheimnisvollen und komplizierten Teletype- Treiber und virtuellen Speicher. Und wenn der Echte Programmierer die Strukturierung ignoriert, kann er sich sogar mit C anfreun- den. Schlielich gibt es keine Typenbindung, Bezeichner sind sie- ben (zehn? acht?) Zeichen lang und man hat Zeiger als Bonus. Das ist, als htte man die besten Teile von FORTRAN und Assembler vereint, von den kreativeren Mglichkeiten des #define ganz zu schweigen. Nein, die Zukunft ist nicht vllig schlecht. So hat sich in den vergangenen Jahren die populre Presse sogar ber die clevere neue Brut von Computer-Schraten und -Hackern geuert, die Pltze wie Stanford oder das MIT zugunsten der Wirklichkeit verlassen haben. Allen Anzeichen nach lebt der Geist der Echten Programmie- rung weiter in diesen jungen Mnnern und Frauen. Und solange es schlecht beschriebene Ziele, bizarre Fehler und unrealistische Zeitplne gibt, solange wird es Echte Programmierer geben, die bereit sind, einzuspringen und das Problem zu lsen, und sich die Dokumentation fr spter aufheben. SmallTalk ORGA-Team