Is it time for a successor to the stalwart C++ language? A group of developers at Google and other organisations believe it is.
The group is behind an experimental language called Carbon, which offers interoperability with C++ while overcoming purported difficulties in improving the legacy language.
Carbon attempts to overcome these obstacles by starting over with solid language foundations such as modern generics, a simple syntax, and modular code organisation while avoiding the “decades of technical debt” of C or C++. However, they emphasise that Carbon is not ready for use.
The developers of Carbon acknowledge that C++ remains the dominant programming language for building performance-critical software and has massive and growing code bases and investments. Carbon presents a successor approach rather than an evolution and is intended to enable migration for existing C++ code bases and C++ developers.
Carbon was the subject of a presentation last week at the CppNorth conference in Toronto. Resources for Carbon can be accessed from the project’s GitHub repo. Project developers list the following requirements for a C++ successor, stressing that their approach can be built on top of the C++ ecosystem:
- Matching C++ in performance
- Seamless, bidirectional interoperability with C++
- A gentle learning curve
- Comparable expressivity
- Scalable migration
Practical safety and testing mechanisms and fast and scalable development also are goals. Explicit non-goals include having a stable ABI (application binary interface) for the entire language and library and perfect backward or forward compatibility.
At present, there is no working Carbon compiler or toolchain but developers can examine a demo interpreter for the language. Developers can participate in a design discussion forum on GitHub. An open source project structure, governance model, and evolution process also are core aspects of Carbon.