Wie geht die Standardisierung von C++?

Hinter dem neuen Standard steht ein Prozess, an dem internationale Experten engagiert teilnehmen. Ein Werkstatteinblick in das oft zähe Handwerk der Normierung.

In Pocket speichern vorlesen Druckansicht 21 Kommentare lesen

(Bild: Wright Studio/shutterstock.com)

Lesezeit: 21 Min.
Von
  • Dr. Peter Gottschling
Inhaltsverzeichnis

Die Programmiersprache C++ und ihre wichtigsten Bibliotheken sind seit 1998 ein Standard der Internationalen Organisation für Normung (International Organization for Standardization, kurz: ISO). Seit der Veröffentlichung des ersten Standards C++98 hat es mehrere Aktualisierungen gegeben. Der neueste Standard, C++20, ist zwar noch nicht offiziell verabschiedet, mehrere Features sind jedoch bereits in verschiedenen Compilern verfügbar.

Erste Arbeiten an C++ datieren in das Jahr 1979 zurück, damals noch unter dem Arbeitstitel "C mit Klassen". Ziel war es zunächst, die Effizienz von C mit der Produktivität objektorientierter Sprachen wie Simula zu verbinden. Später kamen weitere Programmierparadigmen wie generische und Metaprogrammierung hinzu, und C++ entwickelte sich zu einer recht komplexen Multiparadigmensprache. 1998 erschien der erste Standard der Sprache und 2003 eine Nachbesserung davon. Der folgende Standard war ursprünglich für die Nullerjahre geplant und trug daher den Arbeitstitel "C++0x". Da C++ dafür radikal überarbeitet, um nicht zu sagen, neu erfunden wurde, hat sich dieser Prozess bis 2011 hingezogen. Spötter haben C++11 daher auch hexadezimal als "C++0xb" bezeichnet. Seither hat die ISO regelmäßig alle drei Jahre einen neuen Standard verabschiedet (C++14, C++17, C++20 – s. Abb. 1).

Entwicklung des C++-Standards (Abb. 1)

(Bild: isocpp.org)

Selbst Corona wird diesen Rhythmus wahrscheinlich nicht unterbrechen. Der Vorsitzende des ISO-Standardkomitees Herb Sutter hatte als Reaktion auf die Verzögerungen bei C++11 eine strenge Taktung vorgeschlagen, die sich auch als Zugmodell veranschaulichen lässt: "Wer rechtzeitig da ist, fährt mit; wer nicht, muss auf den nächsten Zug [i. S. v. Standard] warten" (Quelle: Bjarne Stroustrup, Thriving in a Crowded and Changing World, S. 21 [1]). Mehr dazu lässt sich dem Kasten "Planmäßige Abfahrt" entnehmen.

C++ und die Neuordnung der Dinge

"Nichts ist schwieriger auszuführen, unsicherer hinsichtlich des Erfolgs und gefährlicher zu handhaben als das Schaffen einer neuen Ordnung. Denn der Reformer zieht sich die Feindschaft derer zu, die von dem alten System profitiert hatten, und findet nur laue Verteidiger unter den Nutznießern des Neuen."

- Niccolò Machiavelli, Der Fürst (1513), als Motto für Standardisierung zitiert in der Printversion dieses Artikels. Er ist Teil des Developer-Sonderhefts "Modernes C++", in dem er sich auf den Seiten 84 bis 90 befindet.