Der Erfinder von C++ ueber Handwerker, Kuenstler und Visionaere Schwer verdaulich fuer Freaks: C++ ist kein Objekte-Spielzeug

16.06.1995

CW: Es mag verwundern, dass Sie als C++-Erfinder betonen, nicht in allen Faellen biete diese Sprache die richtige Loesung. In welchen Faellen empfehlen Sie eine andere?

Stroustrup: Das laesst sich nicht generell festlegen.

CW: Anders herum gefragt: Welche Art von Softwareproblemen lassen sich nicht mit C++ loesen?

Stroustrup: Diese Denkweise sollte nicht im Vordergrund stehen. Ausschlaggebend ist die Ueberlegung, welche Sprache am besten zu einem gegebenen Problem in einer Situation mit einer bestimmten Gruppe von Leuten auf vorgegebenen Maschinen passt. Habe ich etwa eine Mannschaft, die auf Lisp eingeschworen ist, kann es einfacher sein, die Aufgabe mit dieser Sprache anzugehen als erst zu C++ zu wechseln.

CW: Zu Beginn eines neuen Softwareprojekts, das nicht nur neue oder erweiterte Inhalte bietet, sondern

auch den Stand der Technik repraesentieren soll, stehen Anwender haeufig vor der Frage, welche Methode und welche Sprache die richtige ist. Beides, sagen Analysten, habe enorme Auswirkungen auf den Erfolg, die Arbeitsweisen und den Entwicklungsstil.

Stroustrup: Das ist auch so und macht die Auswahl der Sprache wichtig.

CW: Empfehlen Sie unter Umstaenden sogar eine prozedurale Sprache?

Stroustrup: Das kann manchmal genau das Richtige sein. Objektfanatiker wollen das leider nicht wahrhaben.

Neulich habe ich mir einen Parser angeschaut - ein huebsches kleines Tool, das zudem mit allen Regeln der objektorientierten Kunst geschrieben war. Sein Problem: Es war zu langsam, bis jemand auf die Idee kam, es in prozeduralem Code neu zu schreiben; nun laeuft es 25mal schneller. Eine Steigerung um den Faktor 25 ist den Rueckgriff auf prozedurale Sprachen schon mal wert.

CW: Einer der Kritikpunkte an C++ im Vergleich zu Smalltalk besteht darin, dass es eine Hybridsprache ist und Programmierer, die ungeuebt sind im Umgang mit objektorientierten Paradigmen, leicht in prozedurale Verfahrensweisen zurueckfallen.

Stroustrup: C++ unterstuetzt verschiedene Programmierstile nicht etwa, weil ich nicht wusste, wie man es anstellt, den Programmierer auf einen einheitlichen Stil festzulegen, sondern weil ich wollte, dass man Software sowohl mit Prozeduren, Datenbeschreibungen, Klassenhierarchien als auch mit Templates ausstatten kann.

CW: Stimmt es, dass C++ eigentlich nur deshalb entstand, weil Simula nicht auf der Hardware lief, die Sie zur Verfuegung hatten?

Stroustrup: Ja. Die Story ist soweit wahr. Es handelte sich, soweit ich mich erinnere, um den DEC-Rechner PDP 1170. Simula war niemals eine echte Alternative; dafuer war die Maschine einfach zu klein. Zudem wollte ich auch auf der Systemebene arbeiten, und Simula bot keine entsprechenden Features.

CW: Bevorzugen Sie eigentlich ein Betriebssystem?

Stroustrup: Nein. Allerdings ist das, was zur Zeit im PC-Bereich angeboten wird, recht armselig. Die Entwickler von DOS haben so ziemlich jeden Fehler gemacht, der moeglich war.

CW: Was halten Sie denn von dem Rummel, der um alle Microsoft- Produkte gemacht wird?

Stroustrup: Die Leute verhalten sich eben wie Lemminge.

CW: Das ist Sarkasmus.

Stroustrup: Ja. Auch die Microsoft-Aera wird einmal vorbei sein. Es gab ja auch einmal eine Zeit, als alle hinter der IBM herliefen. . . Ausserdem, wenn jemand tatsaechlich Erfolg haben will, muss er sowieso anders sein und handeln als der Rest.

CW: Es ist noch gar nicht so lange her, als die Entwickler noch eine Aura des kreativen Chaos umgab. Sie galten als Kuenstler, heute werden sie eher als Handwerker eingestuft.

Stroustrup: Jeder gute Kuenstler muss auch ein guter Handwerker sein; das heisst, gute Software bedarf einerseits einer guten handwerklichen Basis und auf der anderen Seite einen Funken intelligenter Inspiration.

CW: Sie selbst sind ein Star in der Szene; die Leute kommen, um sich Buecher signieren zu lassen oder um Sie einmal life zu erleben. Moegen Sie das?

Stroustrup: Manchmal ist es mir peinlich. Doch es ist ja auch eine Art der Reflexion ueber meine Arbeit. Wenn die Leute sie nicht gut faenden, kaemen sie nicht. So sehe ich das eher als ein Kompliment.

CW: Die Stars der Branche werden haeufig als Visionaere betitelt. Haben Sie Visionen?

Stroustrup: Wenn irgend jemand ueber seine Visionen redet, denke ich an Pilze, die aus dem Boden schiessen - damit kann ich nichts anfangen. Natuerlich kenne ich eine Menge guter Ideen und spreche mit Leuten, die sie ausgearbeitet haben. Schliesslich arbeite ich fuer die Ideen, die ich fuer gut und hilfreich halte. Das aber wuerde ich nicht visionaer nennen.

CW: Sie sehen sich selbst als Wissenschaftler, der an der Zukunft arbeitet. Welche Aufgaben haben Sie sich gestellt?

Stroustrup: Wir haben gerade erst die Arbeit am C++-Standard abgeschlossen, die, nebenbei gesagt, keine Kleinigkeit war. Ausserdem versuche ich eine Forschungsgruppe aufzubauen, die sich mit den Problemen bei der Entwicklung grosser Softwaresysteme beschaeftigt.

CW: In welche Richtung entwickelt sich dabei die Software- Erstellung: Patterns, Frameworks, Komponenten, Metaklassen, ...

Stroustrup: Unter den Stichworten verstecken sich keine Alter-

nativen, die sich konkurrierend verhalten, es handelt sich vielmehr um komplementaere Denkansaetze.

CW: Sind Sie ueberrascht, dass C++ zur erfolgreichsten objektorientierten Sprache wurde?

Stroustrup: Ja, natuerlich. Da ich Simula kannte und ihre objektorientierten Prinzipien, habe ich eigentlich schon erwartet, dass irgendetwas aus dieser Richtung erfolgreich sein wuerde. Und natuerlich haette ich mir gewuenscht, dass die objektorientierte Programmierung besser verstanden und eingesetzt wird - aber das braucht eben Zeit.

Ausserdem ist das Thema noch laengst nicht ausgereizt. Erst wenn die Objektorientierung fuer die Leute so uninteressant wird, dass darueber niemand mehr Artikel in den diversen Fachzeitschriften schreibt, weil alle Welt sie benutzt, ist der wahre Erfolg erreicht.

CW: Welche Tips oder Tricks geben Sie Entwicklern und Projekt- Managern, die mit der Objektorientierung beginnen?

Stroustrup: Die Schwierigkeiten werden haeufig einfach uebertrieben. Immerhin gibt es Hunderte und Tausende, die erfolgreich auf diese Art und Weise arbeiten. Aber es reicht auch nicht aus, zur Objektorientierung zu wechseln, nur weil es alle machen. Zunaechst muss man sich ueber die Gruende fuer den Einsatz objektorientierter Techniken bewusst werden. Bleiben die Ziele nebuloes, ist die Umsetzung unmoeglich.

Viele reden etwa ueber Re-Use von Software und wissen eigentlich nicht, was sich dahinter verbirgt. Manche glauben, dass sich Wiederverwendbarkeit automatisch mit der Einfuehrung einer neuen Sprache einstellt und nicht ueber das Design erarbeitet werden muss. Sie wundern sich dann, wenn das Projekt schiefgeht.

Bei AT&T jedoch sind Zielsetzung und Verwirklichung geglueckt. Einer der haeufigsten Gruende fuer den Wechsel von C auf C++ war die Absicht, die Wartungskosten zu senken. Die Folge: Sogar Defekte konnten um den Faktor Zwei reduziert werden.

CW: Objektorientierung, heisst es, sei in erster Linie eine andere Art zu denken und zu systematisieren. Wie schafft ein traditionell arbeitendes Entwicklerteam am besten diese Umstellung?

Stroustrup: Es sollten sich Paare bilden aus jeweils einem Objekt- Freak und einem alten Hasen. Denn warum sollte man den erfahrenen Entwickler mit alter Software kaempfen lassen waehrend die Einsteiger alte Fehler mit neuer Technik wiederholen.

Wenn die Leute ueber Legacy-Code sprechen, ruempfen sie in aller Regel die Nase. Sie vergessen dabei, dass, als diese Software geschrieben wurde, keiner glaubte, er produziere Altlasten. Man nutzte Tools, Techniken und Methoden, die neu waren, und versuchte die Probleme zu loesen, die die Vorgaenger hinterliessen. Damit taten die Entwickler genau das, was wir heute auch versuchen. Also gibt es nur zwei Arten von Software: Alte Legacy- und neue Legacy- Systeme.

Das Interview mit Bjarne Stroustrup fuehrte CW-Redakteurin Ulrike Litzba.