Berühmte Entwickler ganz privat

Kurse sind Zeitverschwendung

23.11.2009
Von 


Simon Hülsbömer betreut als Senior Research Manager Studienprojekte in der Marktforschung von CIO, CSO und COMPUTERWOCHE. Zuvor entwickelte er Executive-Weiterbildungen und war rund zehn Jahre lang als (leitender) Redakteur tätig. Hier zeichnete er u.a. für die Themen IT-Sicherheit und Datenschutz verantwortlich.

Alfred Aho, awk: Die Dokumentation ist unbezahlbar

Wie setzen Sie eine Programmiersitzung nach ein paar Tagen fort? Oder nach ein paar Monaten?

Alfred Aho
Alfred Aho

Al: Wenn jemand ein Programmiersystem (oder auch ein Buch) schreibt, muss er das gesamte System irgendwie in seinem Kopf unterbringen. Durch Unterbrechungen werden die Gedankenketten aufgebrochen, aber wenn es nur ein kurzer Zeitraum ist, kann man normalerweise schnell wieder einsteigen, wenn man sich den Code erneut anschaut. Nach einer Unterbrechung, die Monate oder Jahre dauert, bin ich schnell dabei, Artikel, Bücher oder Notizen zu studieren, in denen ich meine Algorithmen dokumentiert habe, um mein Wissen über das, was ich vorher programmiert habe, wieder aufzufrischen.

Ich denke also, dass gute Kommentare und eine gute Dokumentation sowohl für die ursprünglichen Systemdesigner als auch für andere, die den Code über lange Zeit warten müssen, sehr hilfreich sein können. Brian (Kernighan, Anm. d. Red.) hat ein Protokoll der wichtigsten Entscheidungen geführt, die wir beim Entwerfen der Sprache getroffen haben. Ich fand dieses Protokoll unbezahlbar.

Brian Kernighan, awk: Über die Lehre zur Perfektion

Was hat Sie an der Programmierung gefesselt?

Brian Kernighan
Brian Kernighan

Brian: Ich kann mich gar nicht an ein besonderes Ereignis erinnern. Ich hatte sogar erst einen eigenen Computer, als ich im College anfing, und bis ich wirklich gelernt hatte, zu programmieren (in FORTRAN), dauerte es noch mal ein Jahr oder so. Ich denke, am meisten Spaß beim Programmieren hatte ich bei einem Ferienjob beim Projekt MAC am MIT im Sommer 1966, bei dem ich an einem Programm arbeitete, das ein Aufgabenband für den brandneuen GE 645 in den ganz frühen Tagen von Multics erstellte. Ich schrieb in MAD, das viel einfacher und eleganter als das vorher von mir genutzte FORTRAN oder COBOL war. Und ich nutzte CTSS, das erste Timesharing-System, das unendlich einfacher und angenehmer als Lochkarten war. Das war der Punkt, an dem der Aspekt des Rätsellösens bei der Programmierung wirklich Spaß machte, da die mechanischen Details nur noch sehr selten im Weg standen.

Wie können Programmierer ihr Programmieren verbessern?

Brian: Schreiben Sie mehr Code! Und dann machen Sie sich Gedanken über den Code, den Sie geschrieben haben, und versuchen, ihn zu überarbeiten, um ihn besser zu machen. Lassen Sie andere Leute den Code lesen, wenn das möglich ist, egal ob als Teil Ihres Jobs oder als Teil eines Open Source-Projekts. Es ist auch hilfreich, verschiedene Arten von Code zu schreiben, eventuell sogar in unterschiedlichen Sprachen, da Sie damit Ihr Repertoire an Techniken erweitern und mehr Wege haben, Programmierprobleme anzugehen. Lesen Sie zum Beispiel den Code von anderen Leuten und versuchen Sie, Features hinzuzufügen oder Fehler zu beheben - das wird Ihnen zeigen, wie andere Leute Probleme angehen. Schließlich geht nichts über das Unterrichten des Programmierens, um den eigenen Code zu verbessern.

Peter Weinberger, awk: WYSIWYG pur

In welchem Umfeld sehen Sie AWK als bessere Wahl als zum Beispiel SQL an?

Peter: Nun, die beiden lassen sich nicht einfach vergleichen. awk hat keine expliziten Typen, SQL ist damit völlig überladen. awk liest und schreibt also Strings, aber es ist darauf ausgelegt, manche Strings als Zahlen zu betrachten, wenn man es darum bittet. SQL nutzt Joins, aber um das Gleiche in awk zu machen, muss man ein Programm vorweg laufen lassen, vermutlich join. SQL führt Sortier- und Aggregationsaufgaben aus, aber im Unix-Umfeld wird das durch sort und dann ein erneutes Pipen in awk oder ein anderes Unix-Programm umgesetzt. Kurz gesagt war awk dafür gedacht, Teil einer Sequenz von nacheinander ausgeführten Befehlen zu sein. SQL war dafür gedacht, mit Daten verwendet zu werden, die in einer eigenen Struktur versteckt sind, wobei der Anwender das Schema kennt. Schließlich sind in SQL Jahre der Abfrageoptimierung eingeflossen, während Sie in awk das bekommen, was Sie sehen.