Google engineers have worked on a language experiment, Carbon, to succeed, likely, to C++.
Engineers have designed it around a specific set of goals, priorities, and use cases which are intended to support:
- Performance-critical software
- Software and language evolution
- Code that is easy to read, understand, and write
- Practical safety and testing mechanisms
- Fast and scalable development
- Modern OS platforms, hardware architectures, and environments
- Interoperability with and migration from existing C++ code
For Chandler Carruth, who introduced Carbon, the reason for this new language seems necessary as on one hand, C++ has accumulated technical debt, outdated practices from C and overall, is managed by a rigid bureaucratic commitee which “…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”.
Commitee also which tends to prioritize backward compatibility, standardization to support widely-used projects such as Linux .
On another hand, due to prior reasons, C++ is lacking of new features and modern programming principles that Carbon will try to include such as generics system but also memory safety. The latter being one of the largest culprits of security exploits.
Also Carbon will look for better track uninitialized states, design APIs and idioms that support dynamic bounds checks, and build a comprehensive default debug build mode.
By the end of the year, Google plans to release a core version and reduce its contribution by 50% and leave the project in the hands of a software foundation / community to take the lead in order to keep the project opensource and community driven.