Maximilian Schönherr: Wenn heute eine Telefonsoftware, ein Überwachungsprogramm, Chipkarten, Flugzeugsteuerungen, Mautsysteme programmiert werden, greift man in der Regel zu einer Sprache, die sich C++ nennt. Sie ist 20 Jahre alt und leitet sich von der damals aktuellen Sprache C ab. Wir werden gleich den Erfinder von C++ kennenlernen, vorher aber müssen wir die Sprache kurz einordnen. Dazu unterhielt ich mich vorgestern mit Jürgen Rolsvohven, er ist Professor am Institut für sprachliche Informationsverarbeitung der Universität Köln, und fragte ihn zunächst, warum man überhaupt Programmiersprachen braucht. Man kann im Computer doch gleich die Nullen und Einsen eintippen, die man haben will.
Jürgen Rolshoven: Wir sind gewöhnt, in natürlichen Sprachen zu sprechen. Und wenn wir Sequenzen wie eins, null, null eingeben würden, käme das unserer Art zu denken und uns auszudrücken gar nicht entgegen. Deshalb schaffen wir uns künstliche Formalismen. Und diese künstlichen Formalismen werden übersetzt in die Sprachen, die Prozessoren von Computern verstehen.
Schönherr: Und was war das tolle an C?
Rolshoven: C war sehr stark gebunden an das Betriebssystem Unix. Und das erklärt eigentlich auch, wie es zu der Verbreitung kommen konnte. C war eine sehr flexible, kompakte Programmiersprache, die gewisse Vorteile bot bei der Typisierung. Und das ist ein Mittel, Fehler beim Programmieren zu vermeiden, wenn wir es dabei belassen, und hat sich insofern relativ rasch durchgesetzt. Kompaktheit einer Programmiersprache war in der Zeit als C entstanden ist noch ein wichtiger Faktor, denn das hieß, man braucht nicht viel Speicherplatz. Und C-Programme liefen auf Computern mit kleinen und damals noch sehr teuren Speichern.
Schönherr: Und C++ setzte dann sozusagen den Klassenkampf drauf?
Rolshoven: C++ hat zwei Vorteile geboten. Der eine Vorteil war: Es wurde der Gedanke der Objektorientierung umgesetzt – in dieser Programmiersprache. Klassen: Man konnte die Bereiche, die man auf dem Computer abbildete, in Klassen und Klassenhierarchien organisieren. Das entspricht unserer Vorstellung wie wenn wir sagen, der Mensch ist eine Sorte Säugetier, Säugetiere sind Angehörige der Klasse der Tiere und Tiere gehören zur belebten Natur – da haben wir Klassenhierarchien.
Schönherr: Das ging in C nicht?
Rolshoven: Das ging in C in dieser Form nicht. Und das bot einem dann C++. Und das war eigentlich auch die Stärke von C++: Man konnte C++ verwenden, aber in C weiter programmieren. Und die bereits vorhandene Software war in C vollkommen lauffähig.
Schönherr: Es war sozusagen abwärtskompatibel.
Rolshoven: Das war abwärtskompatibel und das ist ein starkes Moment, wenn man über die Geschichte von Programmiersprachen drüberschaut. Da sind menschliche Gewohnheiten, auch schlechte Angewohnheiten, mit verbunden. Und von solchen Gewohnheiten kommen auch Programmierer schlecht runter.
Schönherr: Können Sie dem einem Pascal-Programm sofort ansehen: das ist jetzt Pascal?
Rolshoven: Ja.
Schönherr: Und wie sieht denn die Schleife zum Beispiel anders aus als in C++?
Rolshoven: Die Schlüsselwörter in Pascal sind erheblich expliziter, häufig auch länger. Ein C++-Programm ist stark dadurch charakterisiert, dass wir verschiedene Sorten von Klammern verwenden. Das drücken wir in Pascal in Schlüsselwörtern aus. Das sind Schlüsselwörter wie "begin" oder "end" während wir dafür geschweifte Klammern in C haben.
Schönherr: Würden Sie sagen, die Zeit von C++ geht langsam zuneige? Die Sprache ist ja inzwischen auch recht alt.
Rolshoven: Es gibt verschiedene Glaubenskriege bei Programmiersprachen. Ich würde mich da nicht gerne dran beteiligen. Für uns ausschlaggebend, Java zu machen, war, eine typsichere Programmiersprache zu haben, die es unseren Studierenden ermöglicht, sichere Programme zu schreiben. Ein weiterer, nicht unwichtiger Faktor sind die gesamten Bibliotheken, die mit Java sehr schnell kamen und die eben frei zugänglich sind, also Open Source. Und diese Entwicklungsumgebungen, die riesigen Bibliotheken sind jetzt gewiss Stärke dieser Sprache.
Das Interview mit Jürgen Rolshoven in voller Länge (23 Minuten)
Jürgen Rolshoven: Wir sind gewöhnt, in natürlichen Sprachen zu sprechen. Und wenn wir Sequenzen wie eins, null, null eingeben würden, käme das unserer Art zu denken und uns auszudrücken gar nicht entgegen. Deshalb schaffen wir uns künstliche Formalismen. Und diese künstlichen Formalismen werden übersetzt in die Sprachen, die Prozessoren von Computern verstehen.
Schönherr: Und was war das tolle an C?
Rolshoven: C war sehr stark gebunden an das Betriebssystem Unix. Und das erklärt eigentlich auch, wie es zu der Verbreitung kommen konnte. C war eine sehr flexible, kompakte Programmiersprache, die gewisse Vorteile bot bei der Typisierung. Und das ist ein Mittel, Fehler beim Programmieren zu vermeiden, wenn wir es dabei belassen, und hat sich insofern relativ rasch durchgesetzt. Kompaktheit einer Programmiersprache war in der Zeit als C entstanden ist noch ein wichtiger Faktor, denn das hieß, man braucht nicht viel Speicherplatz. Und C-Programme liefen auf Computern mit kleinen und damals noch sehr teuren Speichern.
Schönherr: Und C++ setzte dann sozusagen den Klassenkampf drauf?
Rolshoven: C++ hat zwei Vorteile geboten. Der eine Vorteil war: Es wurde der Gedanke der Objektorientierung umgesetzt – in dieser Programmiersprache. Klassen: Man konnte die Bereiche, die man auf dem Computer abbildete, in Klassen und Klassenhierarchien organisieren. Das entspricht unserer Vorstellung wie wenn wir sagen, der Mensch ist eine Sorte Säugetier, Säugetiere sind Angehörige der Klasse der Tiere und Tiere gehören zur belebten Natur – da haben wir Klassenhierarchien.
Schönherr: Das ging in C nicht?
Rolshoven: Das ging in C in dieser Form nicht. Und das bot einem dann C++. Und das war eigentlich auch die Stärke von C++: Man konnte C++ verwenden, aber in C weiter programmieren. Und die bereits vorhandene Software war in C vollkommen lauffähig.
Schönherr: Es war sozusagen abwärtskompatibel.
Rolshoven: Das war abwärtskompatibel und das ist ein starkes Moment, wenn man über die Geschichte von Programmiersprachen drüberschaut. Da sind menschliche Gewohnheiten, auch schlechte Angewohnheiten, mit verbunden. Und von solchen Gewohnheiten kommen auch Programmierer schlecht runter.
Schönherr: Können Sie dem einem Pascal-Programm sofort ansehen: das ist jetzt Pascal?
Rolshoven: Ja.
Schönherr: Und wie sieht denn die Schleife zum Beispiel anders aus als in C++?
Rolshoven: Die Schlüsselwörter in Pascal sind erheblich expliziter, häufig auch länger. Ein C++-Programm ist stark dadurch charakterisiert, dass wir verschiedene Sorten von Klammern verwenden. Das drücken wir in Pascal in Schlüsselwörtern aus. Das sind Schlüsselwörter wie "begin" oder "end" während wir dafür geschweifte Klammern in C haben.
Schönherr: Würden Sie sagen, die Zeit von C++ geht langsam zuneige? Die Sprache ist ja inzwischen auch recht alt.
Rolshoven: Es gibt verschiedene Glaubenskriege bei Programmiersprachen. Ich würde mich da nicht gerne dran beteiligen. Für uns ausschlaggebend, Java zu machen, war, eine typsichere Programmiersprache zu haben, die es unseren Studierenden ermöglicht, sichere Programme zu schreiben. Ein weiterer, nicht unwichtiger Faktor sind die gesamten Bibliotheken, die mit Java sehr schnell kamen und die eben frei zugänglich sind, also Open Source. Und diese Entwicklungsumgebungen, die riesigen Bibliotheken sind jetzt gewiss Stärke dieser Sprache.
Das Interview mit Jürgen Rolshoven in voller Länge (23 Minuten)