Ausblick auf den C++14-Standard

Seite 3: Fazit

Inhaltsverzeichnis

Wichtig ist zudem, dass sich nicht nur in der Kernsprache etwas tut, sondern auch bei der Standardbibliothek. Ein Beispiel hierfür wurde schon genannt – das Adressieren eines Tupels über den Typ. Das C++-Standard-Komitee ist nun in viele Untereinheiten gegliedert zu Themen wie "Filesystem", "Modules", "Reflection", "Databases", "Numerics" und interessanterweise auch "Networking". Dabei handelt es sich größtenteils um Themen, die von (gegebenenfalls neu zu schaffenden) Bibliothekskomponenten abzuhandeln sind.

Sie müssen nicht notwendigerweise als Teil eines Standards veröffentlicht werden, sondern können auch die Form einer "Technical Specification" haben. Für den Nutzer ist eher relevant, ob alle wichtigen Compiler-Hersteller solchen Spezifikationen folgen. So könnte C++ davon profitieren, wenn endlich eine für alle Compiler und Plattformen einheitliche Behandlung der Netzkommunikation möglich würde, idealerweise gepaart mit standardisierten Methoden der Serialisierung.

Dann klappt es nicht nur mit der eingangs erwähnten Uhr (aka std::chrono aus C++11), dem Handtäschchen (viele Containertypen, die auch immer wieder Erweiterungen erfahren, etwa bezüglich der move-Semantik), sondern auch mit dem Handy (aka der Netzkommunikation). Bis dahin mag aber, wer will, sich mit den vielen portablen und gut getesteten Komponenten der Boost-Bibliothekssammlung zufrieden geben – sie war schon oft der Inkubator neuer Ideen für "den" Standard.

Dies unterstreicht erneut, dass C++ mehr denn je Arbeit an der Standardbibliothek sowie deren Ausweitung benötigt. Denn die Sprache an sich ist – jedenfalls aus Sicht des Autors – fast, aber auch nur fast, perfekt. Und das auch schon ohne C++14.

C++ könnte man heute vielleicht mit einem Dressman vergleichen: Der Standard zeichnet sich nicht dadurch aus, dass er von einem Tag zum anderen zu einer perfekten Erscheinung wird. Vielmehr arbeitet er permanent an sich und ändert immer wieder inkrementell kleine Dinge. Und gerade diese letzten zehn Prozent bis zur Perfektion erfordern oft den meisten Aufwand, egal ob als Mensch oder bei einer Programmiersprache.

So deckt C++ heute als "general purpose language" in der Tat viele Bereiche des Programmieruniversums gut ab – manche würden sagen: sehr gut – und dürfte für besonders rechenintensive Aufgaben etwa des Höchstleistungsrechnens die erste Wahl sein. Aber es gibt auch ganze Einsatzfelder, für die "der Markt" bislang entschieden hat, dass sich andere Sprachen besser eignen, von der Netzprogrammierung bis zur GUI-Entwicklung.

Allerdings lassen sich viele der fehlenden Fähigkeiten dank der auf Sprachebene unzweifelhaft vorhandenen Muskeln und des steinharten Unterbaus (effizient) in einer Bibliothek abdecken. Und genau dies – eine starke Ausweitung der Bibliotheksfunktionen – könnte C++ auch mit zunehmendem Alter die Einsatzfähigkeit sichern.

RĂĽdiger Berlich
ist Geschäftsführer der auf Optimierungsrechnungen spezialisierten Gemfony scientific UG, einer Ausgründung des Steinbuch Centre for Computing am Karlsruhe Institute of Technology.
(ane)