Carbon is an experimental, open-source programming language announced by Google engineer Chandler Carruth at the CppNorth conference in Toronto on July 19, 2022. It is pitched as a possible successor to C++, built to interoperate with existing C++ code rather than replace it overnight. To understand why Google's Carbon language wants to succeed C++, it helps to know that Google has one of the largest C++ codebases in the world, and that its engineers had spent years trying, and largely failing, to steer C++ in the direction they wanted.
Why Google's Carbon language wants to succeed C++
C++ is governed by an ISO committee that values backward compatibility, including binary (ABI) compatibility, very highly. In 2020 a proposal backed by Google engineers asked the committee to prioritize performance and be willing to break ABI when needed. The committee did not accept that direction. That decision is widely seen as a major motivation for Carbon, alongside long-standing frustrations with C++'s slow evolution, complex syntax and memory safety problems.
The Carbon team describes the goal by analogy: Carbon should relate to C++ the way TypeScript relates to JavaScript or Kotlin relates to Java. Teams should be able to add Carbon files to a C++ project, call C++ from Carbon and Carbon from C++, and migrate gradually, ideally with tooling that translates idiomatic C++ into Carbon. Existing languages such as Rust were considered, but the team concluded that Rust's interop with large C++ codebases is not seamless enough for incremental migration at that scale.
Design and key features
Because the language is still being designed, details can change, but several principles are established:
- Bidirectional C++ interoperability as a core requirement, including inheritance and templates where possible.
- Checked generics: generic code is type-checked at definition time, unlike C++ templates, while still supporting templates for interop.
- Simpler, more regular syntax with introducer keywords such as
fn,varandlet, which makes parsing and tooling easier. - A path to memory safety: the project plans a safe subset and incremental hardening, but this design work is ongoing.
- Open governance on GitHub, with a small group of leads and an evolution process for proposals.
A short Carbon example
This example shows Carbon's function and variable syntax. Treat it as illustrative: Carbon is experimental and its syntax may still change.
fn Square(x: i32) -> i32 {
return x * x;
}
fn SumOfSquares(n: i32) -> i32 {
var total: i32 = 0;
var i: i32 = 1;
while (i <= n) {
total += Square(i);
++i;
}
return total;
}
Current status
Carbon is not ready for production use, and its own documentation says so, recommending that teams who need a language today use C++ or, if feasible, Rust. Early on, the project built an interpreter called Explorer to test language semantics; work then shifted to a real compiler toolchain that is under active development. You can try the language through the project's tooling and through online compiler explorers, but there is no stable release, no compatibility promise and only a small standard library. The roadmap has repeatedly emphasized C++ interoperability and the memory safety design as the next major hurdles before an early version is considered usable. It aims for an MVP, version 0.1, no earlier than the end of 2026, which it calls very ambitious, and a production 1.0 only after 2028.
Where Carbon could be used
If Carbon succeeds, its natural audience is organizations with very large, performance-critical C++ codebases: browsers, databases, game engines, financial systems and infrastructure software. Its value would come from letting those teams modernize gradually instead of either living with C++ forever or attempting a risky rewrite.
Limitations and open questions
The honest limitation is that Carbon may never become a mainstream language. It competes with Rust, which already has a mature ecosystem and growing support in projects like Linux and Android, and with ongoing efforts to make C++ itself safer, such as profiles and hardening work in the standards committee. Google's long-term commitment is another open question for outside adopters. Until a usable release exists, Carbon is best seen as a well-documented experiment in language design.
Should you learn Carbon?
Not for your next job or project. Follow it if you work on large C++ systems or care about language design; the public design documents are worth reading on their own. Knowing why Google's Carbon language wants to succeed C++ helps you judge its progress: watch the interop and memory safety milestones, because those will decide whether it moves beyond experiment.
Frequently asked questions
Is Carbon an official Google product?
Carbon was started and is largely driven by Google engineers, but it is run as an open-source project on GitHub with its own governance. It is not positioned as a Google product, and it is explicitly experimental.
Can I use Carbon in production?
No. The Carbon project itself says the language is experimental and not ready for real-world use. Teams that need a production language now should use C++ or Rust.
How is Carbon different from Rust?
Rust is a mature language with strong memory safety guarantees and its own ecosystem. Carbon's main goal is seamless, incremental migration from existing C++ code, with memory safety planned as a later step.







