The carbon programming language is recently announced by a tech giant google. It is an experimental language that could be a successor of C++. Carbon is in experimental phase. So, somethings might change in the future. This language intends to fix several shortcomings of C++, otherwise it provides similar features as compared to C++.
some of the problem occurred during using C++ are:-
Accumulated technical debt (eg: Integer promotion rules) across various functionalities. Backward compatibility with C makes it even more hard to fix tech debt and make code changes hard to implement.
Evolution process to add new functionalities to C++ is very difficult as it needs to adhere to ISO process overhead, preventing from experimentation etc.
As of now most of the programming language that are popular among programmers have disappeared or are disappearing.
For example typescript was replaced with Java by Microsoft, Apple replaces objective C with Swift, Google previously itself replaced Java with Kotlin. So ,it may be possible that carbon will become a successor of C++
Carbon can replace C++ if things become better. If we talk about C++, it is widely used by many production Systems and it also gives high performance
Features of Carbon-language:-
- Performance matching C++ using LLVM (low level virtual machine), with low-level access to bits and address.
- Interoperate with your existing C++, that means you can call C++ language code from carbon language and Vice-versa.
- Fast and scalable builds that works with your existing C++ build systems.
Built with open- source community with clear goals and priorities with robust governance.
Scalable migration, with some level of source-to-source translation for idiomatic C++ code. As Carbon language is in experimental phase, there is no working compiler or toolchain.
- Modern and evolving
- Solid language Foundations that are easy to learn, if you have use C++ in past
- Safer Fundamentals, and an incremental path towards a memory-safe subset
What we want from CARBON Language
- Performance-critical software
- Software and language evolution
- Codes which are not difficult in reading, understanding and writing
- Practical safety and testing mechanisms
- Fast and scalable development
- Modern OS platforms, hardware architectures, and environments
- Interoperability with and migration from existing C++ code
When many languages share subsets of all these goals, the combination of carbon programming distinguishes it from other languages.