Paul Krill
Editor at Large

Carbon language aims to be a better C++

news
Jul 28, 20222 mins

Experimental successor to C++ strives for C++ performance and compatibility while avoiding its technical debt and ‘extreme difficulty’ to improve.

weird science 2017universe
Credit: geralt

Is it time for a successor to the stalwart C++ language? A group of developers at Google and other organizations 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 organization while avoiding the “decades of technical debt” of C or C++.

However, they emphasize 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

Carbon is intended to be as analogous to C++ as TypeScript is to JavaScript and Kotlin is to Java. The designers intend for Carbon to support performance-critical software, software and language evolution, and have code that is safe and easy to read and write. 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.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author