Bjarne Stroustrup: Jeder C++-Standard ist eine Momentaufnahme

Seite 3: C++ wächst durch das Feedback von Nutzern

Inhaltsverzeichnis

heise Developer: Welche Neuerungen haben es (noch) nicht in den neuen Standard geschafft?

Stroustrup: C++ wächst durch das Feedback von Nutzern und durch den Entwicklungskonsens des ISO-Standardkomitees. Niemand erhält exakt das, was er will, und die Bestandteile brauchen Zeit, um zu reifen. Jeder neue Standard ist bloß eine Momentaufnahme in der Evolution von C++ hin zu einem besseren Werkzeug für Softwareentwicklung in der realen Welt.

Meine persönlichen Ziele umfassen: einfache Dinge einfach zu machen (ohne komplizierte Dinge unmöglich oder unnötig schwer zu machen), Hardware gut nutzen, Typen- und Ressourcensicherheit, Zero-overhead Abstraction.

Remember the Vasa!
Kriegsschiff Vasa im Vasa-Museum Stockholm

Restauriertes Kriegsschiff Vasa (gesunken 1628) im Vasa-Museum Stockholm

(Bild: Alexander Neumann)

  • We often remind ourselves of the good ship Vasa. It was to be the pride of the Swedish navy and was built to be the biggest and most beautiful battleship ever. Unfortunately, to accommodate enough statues and guns it underwent major redesigns and extension during construction.
  • The result was that it only made it half way across Stockholm harbor before a gust of wind blew it over and it sank killing about 50 people.
  • It has been raised and you can now see it in a museum in Stockholm. It is a beauty to behold - far more beautiful at the time than its unextended first design and far more beautiful today than if it had suffered the usual fate of a 17th century battle ship -- but that is no consolation to its designer, builders, and intended users.

    aus: Bjarne Stroustrup, How to Write a C++ Language Extension Proposal

Ich bevorzuge Komponenten – ob groß oder klein, Sprache oder Bibliothek – mit Blick darauf, wie gut sie diese Ziele unterstützen und wie sehr sie ihren Nutzern in Relation zu dem Aufwand dienen, sie einzuführen. Ihr könnt euch über solche Ideen in den regelmäßig erscheinenden Schriften der Lenkungsgruppe des Komitees informieren. Unter vielen anderen Themen findet man darin auch eine Liste mit Verbesserungsvorschlägen.

Ich halte Ausschau nach großen Features, die etwas grundlegend einfacher machen, so wie ein vollständigeres Modell der Concurrency (Executors), und nach Bibliothekskomponenten, die entweder grundlegend sind oder entscheidende Unterstützung liefern für eine bestimmte Art von Anwendung wie etwa Units, Sound und einfache Grafiken. Außerdem halte ich Ausschau nach kleinen Features, die die Notation vereinfachen oder es Programmierern ersparen, einfache, allgemein nützliche Funktionen und Klassen per Hand zu schreiben.

Ich bin nicht für eine Vielzahl kleinerer Komfortmerkmale mit begrenzter Anwendbarkeit, und sehe einen stetigen Strom von Vorschlägen für kleine Funktionalitäten, ohne die wir seit 40 Jahren glücklich leben. Jede einzelne würde C++ nur ein wenig mehr Komplexität verleihen, aber insgesamt würden sie ein schreckliches Durcheinander verursachen. Darüber habe ich eine Arbeit geschrieben: „Erinnert euch an die Vasa!“.