Montag, 24. Januar 2011

Wie man in den Ruf kommt, ein Querdenker zu sein


Vor einigen Jahren besuchte ich den Vortrag eines Informatik-Professors an einer Hochschule in Süddeutschland. Nach dem Vortrag fragte ich diesen, ob er eigentlich selbst alles glaube, was er gerade erzählt hatte. Der Kollege war sichtlich irritiert und reagierte mit den Worten: „Natürlich! Dass ich Sie nicht überzeugen konnte, wundert mich nicht. Sie sind ja als Querdenker bekannt“. Auf dem Nachhauseweg fragte ich mich, wie ich wohl zu diesem etwas zweifelhaften Ehrentitel gekommen sei.

Wenn es ich mir überlege, fallen mir mehrere Episoden ein, die sich bei den deutschen Fachkollegen vermutlich eingeprägt haben. Es begann wohl im September 1974 bei einem Seminar im Schwarzwald  Hier hielt der Kollege Niklaus Wirth aus Zürich einen Vortrag über die Ausbildung von Informatikern. Seine Botschaft war, es kommt nicht darauf an, was Informatiker können, sondern nur, dass sie richtig denken lernen. Was er damit meinte, hatte er im Vortrag näher beschrieben. Es ging, weil das damals das Hauptthema war, um strukturiertes Programmieren. Dahinter steckt im Wesentlichen die auf Edsgar Dijkstra zurückgehende Idee, dass die statische Textstruktur eines Programms möglichst mit der dynamischen Laufzeitstruktur übereinstimmen sollte (ja keine Programmsprünge!). Wirths Ansatz war, dass man ein gut strukturiertes Programm am besten erhält, wenn man das Programm schrittweise von oben nach unten, also vom Allgemeinen zum Speziellen hin entwickelt. Mein Diskussionsbeitrag bestand darin, dass ich sagte. „Wenn einer von Wirths Studenten zu mir in ein Vorstellungsgespräch kommt und sagt, er habe bei Wirth das richtige Denken gelernt, dann würde ich garantiert fragen, was er denn sonst noch könne“. Wegen der etwa 100 anwesenden Informatik-Professoren und deren unübersehbarem Grinsen tat mir zwar Herr Wirth etwas Leid. Da ich später noch viel mit ihm zusammengearbeitet habe, weiß ich aber, dass er mir nichts nachgetragen hat.

Mit den Kollegen von den Münchner Unis verbindet mich sogar eine über Jahre sich hinziehende fachliche Diskussion. In einem Vortrag an der TU München im Jahre 1977 forderte ich die dortigen Kollegen auf, als Beispiel für Korrektheitsbeweise nicht immer selbst gewählte Miniprogramme zu wählen, sondern auch einmal ein vorhandenes realistisches Programm. Ich schlug als Testfall ein Programm von Peter Naur vor, das aus der Literatur bekannt war. Das Programm ist von der Aufgabenstellung her ganz einfach. Ein gegebener Text soll so formatiert werden, dass Zeilen maximaler Länge entstehen. Wenn jemand mir für dieses Programm einen Beweis erstellen würde, würde ich zwar kein Bier, sondern einige Flaschen Wein nach München bringen. Diese Herausforderung wurde von einem jüngeren Münchner Kollegen, angenommen, vermutlich auf Drängen seiner älteren Kollegen. Mehr als ein halbes Jahr später schickte er mir eine 5-6 Seiten lange technischen Ausarbeitung, die er bereits für eine Fachtagung eingereicht hatte. Darin war das besagte Programm neu entwickelt, und zwar nach einer Methode und in einer besonderen funktionalen Sprache, welche die Korrektheit der Implementierung plausibel erscheinen ließ. Die gewählte Implementierung war zwar so, wie kein Praktiker sie durchgehen lassen würde. Der Text wurde zweimal gelesen, einmal um seine Länge und Struktur zu ermitteln, dann ein zweites Mal, um ihn zu formatieren. Ich habe dennoch dies als teilweise Erfüllung der Herausforderung akzeptiert und habe ihn und die beteiligten Kollegen zu einem Essen eingeladen. 

Die Diskussion setzte sich auf der GI-Jahrestagung 1978 in Berlin fort. Ich hielt einen eingeladenen Vortrag. Im Auditorium waren etwa 600 Zuhörer. Ich brachte in meinem Vortrag zum Ausdruck, dass man je nach Problemstellung sehr differenziert vorgehen müsste. Es gäbe nicht das Allheilmittel, mit dem man alle Probleme gleichzeitig lösen könnte. Zur Illustration verwandte ich durch den ganzen Vortrag hindurch mehrmals das oben erwähnte Programm, das Peter Naur veröffentlicht hatte. Es umfasst 25 Programmzeilen in Pascal und enthält 14-15 Fehler. Ich klassifizierte die Fehler in Anforderungs-, Entwurfs- und Implementierungsfehler und deutete an, mit welchen Methoden man sie hätte aufdecken können. Dabei machte ich die Bemerkung, dass wir es uns bei industriellen Produkten nicht leisten könnten, so viele Fehler zu machen. Unsere derzeitigen Erfahrungswerte lägen unter drei Fehlern pro Tausend Programmzeilen. In der Diskussion bekam ich heftigen Widerspruch von einem Münchner Kollegen. Wie ich das Programm des Kollegen Naur benutze, sei unfair, meinte er. Was ich beschrieben hätte, wären alles Probleme, die nur deshalb bestünden, weil wir nicht die richtig ausgebildeten Leute hätten. Meine Antwort darauf war: „Wir müssen Software entwickeln mit den Leuten, die es heute gibt. Wir können nicht 10 Jahre warten“. Ich hatte damals das Auditorium auf meiner Seite. Wie ich später erfuhr, sahen sich die Münchner Kollegen als Sieger in dieser über Jahre sich erstreckenden Diskussion. Ich nehme an, dass sie dennoch mit dazu beigetragen hat, dass ich nach meiner Frühpensionierung eine Professorenstelle an der TU München angeboten bekam

Bei der GI-Jahrestagung im Jahre 2000, die auch in Berlin stattfand, hielt  ein Kollege von einer norddeutschen Universität einen Vortrag über Software-Metriken. Dabei beschrieb er ein Programm, das er entwickelt hatte, das bei vorliegenden Daten feststellt, welches aus der Literatur bekannte Software-Maß am besten zu den Daten passt. Ich meinte, dass das Ganze wohl doch nur eine Spielerei sei und dass man auf diese Art keinerlei neues Wissen gewinnen würde. Nur wenn man mit Programmen Erfahrungen gesammelt hat, deren Eigenschaften mit einem bestimmten Maß besonders gut zum Ausdruck kommen, kann man diese Erfahrungen evtl. auf andere Programme, die gleiche Eigenschaften haben, übertragen. Außerdem hielte ich es für eine Illusion zu glauben, dass man aus der Struktur eines Programms  (oder irgendeines Textes) definitive Aussagen über seine Qualität ableiten kann, ohne etwa seine Entwicklungsgeschichte zu berücksichtigen.  Der Kollege war natürlich anderer Ansicht und die Diskussion wurde vom Sitzungsleiter alsbald abgebrochen.

Übrigens gibt es bestimmt mehrere Kollegen, die mich als einen etwas engstirnigen Konservativen ansehen, der an überholten Sichtweisen festhält und daher einige glorreiche neue Konzepte gering schätzt, bzw. als Modethemen ablehnt. Auch damit kann ich leben.

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.