Googles (noch) experimentelle Sprache Carbon soll eines Tages C++ ablösen

Google stellt mit Carbon einen potentiellen Nachfolger für C++ vor. Anders als bei Rust ist Interoperabilität mit bestehendem C++-Code ein wichtiges Ziel.

In Pocket speichern vorlesen Druckansicht 228 Kommentare lesen
Kohle
Lesezeit: 3 Min.
Von
  • Ulrich Wolf

Der Google-Mitarbeiter Chandler Carruth hat mit Carbon eine neue, experimentelle Sprache vorgestellt, die langfristig C++ ersetzen soll. Sie soll "bidirektionale Interoperabilität" mit bestehender Software in C++ erlauben und es zusätzlich so einfach wie möglich machen, C++-Code zu migrieren.

Damit hat sie laut Carruth einen anderen Anspruch als Rust, mit dem Carbon sonst viele Design-Ziele teilt. Carbon könnte also für die C++-Welt das werden, was etwa Kotlin für Java, Swift für Objective-C oder TypeScript für JavaScript ist. Sie soll vor allem dann zum Einsatz kommen, wenn große existierende C++-Bibliotheken eingebunden werden müssen und teilweise Migration und das Mischen von Carbon- und C++-Code vereinfachen.

Carbon-Code kann ohne Overhead C++-Funktionen aufrufen, und umgekehrt

(Bild: Google)

Die Toolchain von Carbon soll in der Lage sein, Carbon- und C++-Code zusammen zu kompilieren. Es gibt jedoch Limitierungen wie #define-Präprozessor-Makros. Aufrufe von Carbon zu C++ und umgekehrt sollen keinen Overhead erzeugen. Dafür ist Carbons Speichermodell so eng wie möglich an das von C++ angelehnt.

Carbon ist eine objektorientierte Sprache und ohne Garbage Collector konzipiert. Wie C++ hat es also maximale Performance, Low-Level-Steuerung und Durchgriff auf die Hardware als Ziel. An vielen Stellen verringert Carbon die Komplexität von C++. So gibt es zwar Zeiger, aber keine Zeigerarithmetik, Klassen unterstützen keine Mehrfachvererbung. Typinferenz wird durch das auto-Keyword unterstützt. Speichersicherheit soll in Carbon zwar wichtig sein, aber nicht an erster Stelle stehen. Die Design-Ziele der Sprache orientieren sich am Konzept der Generischen Programmierung und finden sich ausführlich auf der GitHub-Seite des Projekts.

Neben dem eigentlichen Sprachdesign modernisiert Carbon auch das Ökosystem gegenüber C++. So soll es mit einem eingebauten Paketmanager kommen.

Obwohl das Projekt intern bei Google entstand, soll es sich zum Community-getriebenen Open-Source-Projekt entwickeln. Es gibt bereits einen Code of Conduct und Richtlinien für Kontributoren. Diskussionen zu Carbon finden außer auf der GitHub-Seite auch im Discord-Channel zur Sprache statt, der aktuell schon über 1000 Mitglieder hat.

Chandler Carruth, der Carbon auf der Cpp North Convention in Toronto erstmals der Öffentlichkeit präsentierte, ist Principal Software Engineer bei Google und als Technical Lead für die Weiterentwicklung der wichtigsten Sprachen im Konzern verantwortlich. Er vertritt Google im C++ Standards Committee und trägt seit 2007 zur Compiler-Kollektion LLVM bei.

Die auf GitHub veröffentlichte Roadmap zu Carbon sieht vor, das Sprachdesign zu vervollständigen und Version 0.1 der Sprache noch in diesem Jahr zu veröffentlichen. Version 0.2 ist für 2023 geplant und soll dann schon nicht mehr experimentell sein. Für 2024 oder 2025 peilen die Entwickler die Version 1.0 an. Derzeit gibt es mit dem Carbon Explorer einen Interpreter als Prototyp, mit dem sich einzelne Beispiele ausführen lassen.

(ulw)