It’s difficult for large projects to convert existing C++ codebases into Rust, argue Google engineers — so they’ve created a new “experimental” open source programming language called Carbon.
Google Principal Software Engineer Chandler Carruth introduced Carbon this week at the “CPP North” C++ conference in Toronto. TechRadar reports:
The newly announced Carbon should be interoperable with the popular C++ code, however for users looking to make the full switch, the migration should be fairly easy. For those unsure about a full changeover, Carruth delved into more detail about some of the reasons why Carbon should be considered a powerful successor to the C++ language, including simpler grammar and smoother API imports.
Google’s engineers are already building tools to translate C++ into this new language. “While Carbon began as a Google internal project, the development team ultimately wants to reduce contributions from Google, or any other single company, to less than 50% by the end of the year,” reports The New Stack, adding that Google ultimately wants to hand off the project to an independent software foundation where development will be led by volunteers:
Long the language of choice for building performance-critical applications, C++ is plagued with a number of issues that hamper modern developers, Carruth explained on a GitHub page. It has accumulated decades of technical debt, bringing with it many of the outdated practices that were part of the language’s predecessor, C. The keepers of C++ prioritize backward compatibility, in order to continue to support widely-used projects such as Linux and its package management ecosystem, Carruth charged.
The language’s evolution is also stymied by a bureaucratic committee process, oriented around standardization rather than design. Which can make it difficult to add new features. C++ has largely a sequestered development process, in which a select committee makes the important decisions, in a waterfall process that can take years. “The committee structure is designed to ensure representation of nations and companies, rather than building an inclusive and welcoming team and community of experts and people actively contributing to the language,” Carruth wrote. “Access to the committee and standard is restricted and expensive, attendance is necessary to have a voice, and decisions are made by live votes of those present.”
Carruth wants to build Carbon by a more open community-led environment. The project will be maintained on GitHub, and discussed on Discord…. The design team wants to release a core working version (“0.1”) by the end of the year.
Carbon will boast modern features like generics and memory safety (including dynamic bounds checks), the article points out. And “The development team will also set out to create a built-in package manager, something that C++ sorely lacks.”