Visionäre der Programmierung

Berühmte Entwickler ganz privat

Simon verantwortet als Program Manager Executive Education die Geschäftsentwicklung und die Inhalte des IDG-Weiterbildungsangebots an der Schnittstelle von Business und IT. Zuvor war er rund zehn Jahre lang als (leitender) Redakteur für die Computerwoche tätig und betreute alle Themen rund um IT-Sicherheit, Risiko-Management, Compliance und Datenschutz.
Drei wichtige Programmierer - Bjarne Stroustrup, Guido von Rossum und Adin Falkoff - geben Tipps und blicken in die Zukunft.
"Visionäre der Programmierung - die Sprachen und ihre Schöpfer" ist im O'Reilly-Verlag erschienen.
"Visionäre der Programmierung - die Sprachen und ihre Schöpfer" ist im O'Reilly-Verlag erschienen.
Foto: O'Reilly

Für ihr neues Buch "Visionäre der Programmierung - die Sprachen und ihre Schöpfer", das im O'Reilly-Verlag erschienen ist, interviewten Federico Biancuzzi und Shane Warden die Entwickler der 17 bekanntesten und am weitesten verbreiteten Programmiersprachen - von Basic, C++ und C# über Forth, APL, Python, Java und SQL bis hin zu UML, Objective-C, Perl und Postscript. In den Gesprächen mit Persönlichkeiten wie James Gosling, Charles Geschke, Thomas Kurtz, Don Chamberlin, Brad Cox und Bjarne Stroustrup kamen allerlei spannende Geschichten ans Tageslicht. Die Programmierprofis verrieten unter anderem auch, woran sie derzeit arbeiten, wie sie Ihre Sprachen weiterentwickeln möchten und wo sie die Zukunft der Entwicklergilde sehen. Lesen Sie im ersten Teil unserer neuen montäglichen Serie "Berühmte Entwickler ganz privat" ausgewählte Interviewpassagen mit dem C++-Erfinder Bjarne Stroustrup, dem Python-Vater Guido von Rossum und dem APL-Entwickler Adin D. Falkoff (die deutschen Übersetzungen stammen von Thomas Demming).
Der zweite Teil mit Interviews mit Entwicklern der Sprachen Forth, Basic und AWK folgt am kommenden Montag.

Bjarne Stroustrup, C++: Stochern und herumpicken

Wie debuggen Sie? Haben Sie Ratschläge für C++-Entwickler?

Bjarne: Durch Beobachten. Ich untersuche das Programm so lange und stochere darin mehr oder weniger systematisch herum, bis ich es soweit verstanden habe, dass ich eine sinnvolle Abschätzung darüber abgeben kann, wo der Fehler sitzt.

C++-Erfinder Bjarne Stroustrup
C++-Erfinder Bjarne Stroustrup

Testen und ein gutes Design sind eine weitere Komponente, um Fehler zu minimieren. Ich mag das Debuggen so wenig, dass ich es so weit wie möglich vermeide. Wenn ich der Designer einer Software bin, baue ich es so um Interfaces und Konstanten herum auf, dass es ziemlich schwer ist, ernsthaft schlechten Code zu erhalten, der sich kompilieren lässt und dann falsch abläuft. Dann gebe ich mein Bestes, um es testbar zu machen. Testen ist die systematische Suche nach Fehlern. Es ist schwer, schlecht strukturierte Systeme systematisch zu testen, daher empfehle ich auch hier eine klare Codestruktur. Das Testen kann automatisiert werden und lässt sich damit so reproduzierbar machen, wie es beim Debuggen gar nicht möglich ist. Eine Schar Tauben auf dem Bildschirm herumpicken zu lassen, um herauszufinden, ob sie eine GUI-basierte Anwendung knacken können, ist nicht der richtige Weg, um eine hohe Qualität sicherzustellen.

Ratschläge? Es ist schwierig, allgemeine Ratschläge zu geben, da die besten Techniken häufig davon abhängen, was bei gegebenem System und Entwicklungsumgebung möglich ist. Auf jeden Fall gilt aber: Finden Sie die wichtigen Schnittstellen, die systematisch getestet werden können, und schreiben Sie Testskripte, die das tun. Automatisieren Sie so viel wie möglich und lassen Sie diese automatisierten Tests häufig laufen. Und führen Sie auch Regressionstests regelmäßig durch. Stellen Sie sicher, dass jeder Einstiegspunkt in das System und jede Ausgabe systematisch getestet werden können. Bauen Sie Ihr System aus qualitativ hochwertigen Komponenten zusammen - monolithische Programme sind unnötig schwer zu verstehen und zu testen.