Ist es an der Zeit für einen Nachfolger der etwas betagten Programmiersprache C++? Eine Gruppe von Entwicklern bei Google und anderen Unternehmen ist dieser Meinung. Die Gruppe steht hinter einer experimentellen Sprache namens Carbon, die Interoperabilität mit C++ bietet und gleichzeitig vermeintliche Schwierigkeiten bei der Verbesserung der alten Sprache überwindet. Carbon versucht, diese Hindernisse zu überwinden, indem es mit soliden Sprachgrundlagen wie modernen Generika, einer einfachen Syntax und einer modularen Codeorganisation beginnt und dabei die "jahrzehntelangen technischen Schulden" von C oder C++ vermeidet. Der Haken: Carbon ist aktuell noch nicht einsatzbereit.
C++-Nachfolger statt Weiterentwicklung
Die Entwickler von Carbon räumen ein, dass C++ nach wie vor die dominierende Programmiersprache für die Erstellung von leistungsfähiger Software ist und über massive und wachsende Codebasen und Investitionen verfügt. Um die Migration für bestehende C++-Codebasen und C++-Entwickler zu ermöglichen, stellt Carbon daher eher einen Nachfolgeansatz als eine Weiterentwicklung von C++ dar.
Carbon war Gegenstand einer Präsentation letzte Woche auf der CppNorth-Konferenz in Toronto. Ressourcen für Carbon können über das GitHub-Repository des Projekts abgerufen werden. Die Projektentwickler führen die folgenden Anforderungen an einen C++-Nachfolger auf und betonen, dass ihr Ansatz auf dem C++-Ökosystem aufgebaut werden kann:
Gleiche Leistung wie C++
Nahtlose, bidirektionale Interoperabilität mit C++ (anders als bei Rust)
Eine sanfte Lernkurve
Vergleichbare Ausdruckskraft
Skalierbare Migration
Carbon soll C++ so ähnlich sein wie TypeScript JavaScript und Kotlin Java. Die Designer beabsichtigen, dass Carbon leistungskritische Software, Software- und Sprachentwicklung unterstützt sowie Code sicher und einfach zu lesen und zu schreiben ist. Praktische Sicherheits- und Testmechanismen sowie schnelle und skalierbare Entwicklung sind ebenfalls Ziele. Zu den expliziten Nicht-Zielen gehören dagegen eine stabile ABI (Application Binary Interface) für die gesamte Sprache und Bibliothek sowie eine perfekte Abwärts- und Vorwärtskompatibilität.
Zurzeit gibt es keinen funktionierenden Carbon-Compiler oder eine Toolchain, aber Entwickler können einen Demo-Interpreter für die Sprache untersuchen. Entwickler können sich an einem Diskussionsforum zum Design auf GitHub beteiligen. Eine Open-Source-Projektstruktur, ein Governance-Modell und ein Evolutionsprozess sind ebenfalls zentrale Aspekte von Carbon. (mb)
Dieser Artikel basiert auf einem Beitrag der US-Schwesterpublikation Infoworld.