By Reverence
Die Internationale Konferenz über Programmiersprachen und Systemarchitektur PLSA'94 (Programming Languages and System Architecture, 2.-4. März 1994) wurde dieses Jahr in Zürich mit einer "Special Session" zu Ehren von Niklaus Wirth würdig beendet. Der Erfinder von PASCAL, MODULA-2, LILITH und OBERON feiert dieses Jahr seinen sechzigsten Geburtstag.
Die eingeladenen Vorträge an der PLSA waren von höchster Qualität. Informatik-Koryphäen aus der ganzen Welt waren nach Zürich gereist, um ihren Freund und Mitarbeiter zu ehren. Die rötlichen Haare des Geburtstagskinds sind zwar in den letzten Jahren ehrwürdig angegraut, sonst ist Niklaus Wirth aber sein bescheidenes, freundliches, gebildetes, kultiviertes und humorvolles Selbst geblieben. Seine Freunde sind eine fröhliche, launische Gruppe von Menschen, denen der Mann auf der Strasse nicht zutrauen würde, dass sie die "graue" Informatik durch die Kinderstube begleitet haben. Es ist zu hoffen, dass auch für die heutige Zeit etwas von dem Pioniergeist und dem Erfindungsreichtum übriggeblieben ist, der diese Generation charakterisiert.
Ein Referent erzählte an der Geburtstagssession, dass er kürzlich mit einem höheren Beamten in der kantonalen Erziehungsdirektion über Niklaus Wirth geredet habe und zu seiner Überraschung feststellen musste, dass dieser Informatiker in der Welt berühmt, in der Schweiz hingegen weitgehend unbekannt ist. Auch glänzte die Mehrheit der Schweizer Informatiker an der Geburtstagsfeier durch Abwesenheit—zwar in Anbetracht der Schulskiferien verständlich, aber dennoch bedauerlich. Dass ein Prophet an seiner eigenen Wirkungstätte oft unterbewertet wird, soll uns nicht daran hindern, ihm mit diesem Artikel einen Geburtstagsgruss aus Zürich zu schicken.
Pascal lebt
C.A.R. Hoare (ja genau, der Autor der "Communicating Sequential Processes") verglich den Ingenieur/Programmierer Niklaus Wirth mit einem Komponisten und stellte fest, dass PASCAL heute, mehr als ein Vierteljahrhundert nach seiner ersten Implementation noch quicklebendig ist. Von welcher anderen Informatikeinrichtung kann man dies auf unseren schnellebigen Gebiet schon behaupten? Wo ist APL geblieben? Wo haben wir zum letzten Mal einen XT gesehen? Wo ist das Wang Textsystem?
Hoare stellt fest, dass die modernen Varianten anderer Sprachen wie etwa Visual Basic oder C++ deutliche Annäherungen an PASCAL darstellen. Auch bei einer betriebssystemnahen Implementation habe er kürzlich zigtausend Zeilen Kode gesehen ohne ein einziges GOTO. Es sei reiner Zufall, dass die verwendete Sprache nicht PASCAL geheissen habe. Soweit hätte er allerdings nicht zu suchen brauchen. Mehr als 50% aller Studenten der Welt lernen heute PASCAL als ihre erste Programmiersprache. Um an der Feier teilzunehmen, liess ich selber meine Arbeit an einem kommerziellen CD-ROM-Projekt für Windows liegen, das wir mit Borland Pascal 7.0 entwickeln.
Böse Zungen haben immer behauptet, dass Niklaus Wirth die Programmiersprache PASCAL auf optimale Bequemlichkeit für den Programmierer des PASCAL-Compilers—nämlich für sich selber—ausgelegt habe. Wenn es wirklich so ist, dass PASCAL mehr für den Entwickler als für den Benutzer gestaltet wurde, so hat dies zweifach zum Erfolg dieser Programmiersprache beigetragen: Einerseits ist der Compiler schnell und handlich (mein Borland Pascal Compiler übersetzt vergleichbare Mengen Kode in einer Bruchteil der Zeit, die der Borland C++ - Compiler dafür braucht, während MS Visual C++ den Entwicklungszyklus rund um einen Faktor dreissig gegenüber PASCAL verlangsamt) und war darum schon auf sehr bescheidenen PCs der frühen Achtziger Jahre einsetzbar, zum andern ist die Klarheit für den Designer auch eine Klarheit für den Benutzer. Es ist nämlich oft gar nicht wahr, dass Benutzer und Entwickler entgegengesetzte Interessen haben.
Modula lebt
Zu einem gewissen Grad leidet auch Niklaus Wirths zweite Programmiersprachenentwicklung unter dem Erfolg von PASCAL. MODULA war ursprünglich als "High Level Programming Language" entwickelt worden, in der man auch ein Betriebssystem entwickeln kann. Zu einer Zeit, als auf den Gebieten Geräteansteuerung und Betriebssysteme weitgehend Assembler und Maschinenkode vorherrschten, wurde schon das Konzept eines in einer Hochsprache geschriebenen Betriebssystems als ketzerische Idee empfunden.
Das erste Modula beinhaltete dann auch die (damals) modernen Erkenntnisse über "Real Time Operating Systems" in Form von Befehlen für die Interaktion von Prozessen mit Hilfe von Semaphoren, die wir in modernen Multitaskingsystemen immer noch vermissen. Die Zeit war aber wohl noch nicht reif für Programme, die das Singletasking-Modell sprengten, jedenfalls war MODULA-2 dann wieder sehr viel stärker auf die Entwicklung prozeduraler, strukturierter, modularer Programme ausgerichtet. Alle wichtigen Aspekte von MODULA-2 sind heute selbstverständlicher Bestandteil moderner PASCAL-Dialekte. Man kann sich heute kaum mehr vorstellen, dass früher ein Programm auf eine Datei beschränkt war—vielleicht erweitert um ein paar "Include"-Anweisungen. Die "uses"-Clause im Borland Pascal ersetzt die Import/Export-Listen von MODULA-2 so erfolgreich, dass dafür dieser Erfindung von Niklaus Wirth ein mit PASCAL vergleichbarer Erfolg versagt blieb.
Lilith lebt
Die Plattform, auf der MODULA-2 für Betriebssystem und Anwenderprogrammierung verantwortlich sein sollte, hiess dann LILITH. Gegen 1983 konnte ich diesen Vorgänger des MacIntosh an der ETH persönlich kennenlernen. Es handelte sich um eine "personal work station" mit Graphikbildschirm, Maus, Desktop, Fenstern und Typographie. Entgegen anderslautenden Gerüchten hat Niklaus Wirth nicht auch noch die Maus erfunden. Mit dieser schloss er Bekanntschaft, als er 1976/77 einen längeren Studienaufenthalt am Palo Alto Research Center (PARC) von Xerox verbrachte. Die Desktop-Metapher, die dort erstmals ausführlich formuliert und entwickelt wurde, hatte sicher auch ihren Einfluss auf die Entwicklung der LILITH.
Richard Owen, der 1980 an der Hardware-Entwicklung der LILITH mitgearbeitet hatte, besitzt noch einige wenige Exemplare dieses seltenen Rechners, dem man heute an der ETH nicht mehr begegnet. Er beschrieb in seiner Geburtstagsansprache in einer sich immer gewundener hinziehenden Anekdote, inwiefern die LILITH heute auf eine sehr konkrete Art lebt—mitten im Herzen von Microsoft! Eine neue Serienproduktion werde ernsthaft von ihm geplant. Als er mit Hilfe des grossen Renommees von Niklaus Wirth zusammen mit diesem nach Redmond eingeladen worden war und mit Bill Gates zusammen dinierte ("ein ganz normaler netter Mensch, überhaupt nicht arrogant und auch viel klüger, als ihn die Medien und seine Neider immer darstellen"), kam das Gespräch auf den langwierigen Prozess von Apple gegen Microsoft, wo Apple geltend macht, Microsoft habe mit Windows das "Look and Feel" des MacIntosh kopiert und somit Urheberrechte von Apple verletzt. Dabei erwähnte Owen, dass die LILITH alle die umstrittenen Eigenschaften schon Jahre vor dem ersten Mac und dem ersten Windows besessen hatte und dass all dies in der "Public Domain" der wissenschaftlichen universitären Arbeit der ganzen Welt zur Verfügung stand. Wenige Wochen später erschienen Anwälte von Microsoft bei ihm in Utah und liessen sich die LILITH vorführen, machten Videoaufnahmen, kopierten Dokumente. Einige Monate später war der Prozess beigelegt. Inzwischen ist Apple von anderer Seite unter Beschuss gekommen und hat Richard Owen eine LILITH abgenommen—im Austausch gegen einen modernen Mac Quadra. Richard Owen überzeugte Microsoft davon, dass sie für zukünftige Prozesse doch auch lieber eine reales Modell von ihm beziehen sollten, welches jetzt im Microsoft-Computermuseum in Redmond steht. Der nächste Kunde für eine LILITH heisst anscheinend Novell . . .
Oberon lebt
Dass Niklaus Wirth nicht zurückschreckt vor Selbstkonkurrenzierung war schon am Beispiel PASCAL/MODULA-2 sichtbar. Sein jüngstes Hardware/Software-Kind, das den Prinzipien "small is beautiful" und "reusability" entsprungen ist, heisst Oberon (Programmiersprache), bzw. Ceres (Rechner). Über beide ist in den letzten paar Ausgaben des c't dermassen ausführlich berichtet worden, dass es sich hier erübrigt, den Nachweis für die Lebendigkeit Wirthscher Schöpfungen an diesem Beispiel weiter auszuführen.
Kein Papst
In der Weltwoche wurde Niklaus Wirth anlässlich des Jubiläums mal wieder als Informatikpapst der Schweiz apostrophiert. Jürg Gutknecht, Schüler, Kollege und Mitorganisator der PLSA'94 stellte dies richtig, indem er auf die wesentlichen Unterschiede zwischen Lehrer und Prediger (teacher & preacher) hinwies.
Zum Bleibenden, das Niklaus Wirth in seinen ersten sechzig Lebensjahren geschaffen hat, gehört sicher seine Lehrtätigkeit an der ETH. Indirekt profitiert davon auch eine grosse Menge von Lesern seiner heute zu Klassikern gewordenen Bücher. Noch heute empfehle ich jedem neuen Mitarbeiter die Lektüre des informativen und klaren "Compilerbau", der sich mit seinen 90 Seiten zum tausendseitigen Wälzer von Aho, Hopcroft zum selben Thema verhält, wie Oberon zu C++. Die Programme in seinen "Algorithmen und Datenstrukturen" sind zwar vielleicht in Einzelfällen verbesserbar. Ihre unprätentiöse und klare Präsentation führt aber wie kaum ein anderes Buch fast unvermeidbar zum erwünschten Aha-Effekt. Man hat Niklaus Wirth in früheren Jahren vorgeworfen, seine Bücher seien nicht von genügend grossem theoretischem Gewicht. Sicher hätte man den "Compilerbau" mit Theorie und Formeln dermassen überladen können, dass die Grundaussage für den Durchschnittsinformatiker nicht mehr sichtbar gewesen wäre. Es ist eine oft unterschätzte Kunst, die Dinge so einfach zu beschreiben, dass die Leser fast enttäuscht sind über den Mangel an Mysterium. Es scheint ja so offensichtlich, dass die Struktur des Compilers in enger formaler Übereinstimmung mit der Definition der Sprache steht . . .
Auf die Frage eines Amerikaners, wie er heisse, soll Niklaus Wirth mit Bezugname auf zwei von ihm standardisierte Techniken der Parameterübergabe geantwortet haben: "If you call me by value, it's Worth, if you call me by name, it's Veert". Ich schliesse mich einem der Festredner an, der diese Aufzählung vervollständigte und nenne ihn hiermit Niklaus Wirth—by reverence.
7. März 1994 Hartwig Thomas