Innowise Group is an international full-cycle software development company founded in 2007. We are a team of 1000+ IT professionals developing software for other professionals worldwide.
About us
Innowise Group is an international full-cycle software development company founded in 2007. We are a team of 1000+ IT professionals developing software for other professionals worldwide.
Please leave your contacts, we will send you our presentation by email
Please be informed that by submitting this form, you agree to our Privacy Policy.
The form has been successfully submitted! Please find further information in your mailbox.

Google’s Carbon language might replace C++

At the CPP North conference, Chandler Carruth, a principal software engineer at Google, announced the release of the Carbon programming language. Google’s Carbon is an experimental open-source language that is intended to be rather the successor to C++, but not its replacement. In the article, we’ll take a closer look at Carbon, its goals, potential, and the reasons why C++ needs a successor.
Google's Carbon language

What’s wrong with C++?

According to the TIOBE Index for August 2022, C++ ranks 4th after Python, C, and Java. Since 2001, C++ has never dropped below 5th place, which indicates the high popularity of this programming language despite its age (first appeared in 1985). C++ has multiple advantages crucial for the development of performance-critical software. So why does it need a successor?

As explained by Chandler Carruth, C++ falls short of the achievement of the language’s major goals. They include the support of performance-critical software, simple syntax, language evolution, modern systems, and robust safety among others. The specific language features and bureaucratic issues prevent C++ from gradual improvement.

As for language peculiarities, C++ has accumulated high technical debt throughout its evolution. Moreover, it has inherited many legacy features from the C language. Besides, C++ users prioritize backwards compatibility to support existing C/C++ ecosystems. At the same time, backwards compatibility doesn’t allow for fixing the technical debt, hence the C++ evolution process makes it even more difficult for improvements to get implemented.

Speaking of bureaucratic issues, the process of C++ improvement is significantly slowed down by a committee (WG21) focused on standardization but not design. WG21 employs sluggish waterfall processes that lead to delays in making crucial decisions. Moreover, the committee has restricted access to most C++ experts and only represents certain companies and nations, ignoring the large C++ community.

Goals of the Carbon programming language

As a successor language, Carbon has inherited the original goals for C++ and received an additional one.
Carbon language
Based on a successor language approach, Carbon focuses on 3 major issues that address the existing C++ challenges and allow us to consider Carbon as a promising project: interoperability, migration, and language evolution. Drawing on these points, Carbon creators strive to get rid of C++ technical debt, keep access to existing ecosystems, ensure rapid improvements, and avoid backwards compatibility using tool-based upgrades.

What are the promises of Carbon?

The information available at the moment allows us to consider Carbon as a very promising project. As for the practical side of the new programming language, Chandler Carruth claims that we can expect from Carbon a simpler grammar, introducer keywords (i.e. fn and var), a definition-checked generics system, and a steep learning curve. Carbon will inherit C’s high performance and avoid its major drawbacks.

On top of that, Carbon creators say Carbon will be an open-source programming language and fully interoperable with C++. Carbon code is very similar to C++ code, and in many cases, they are almost identical. Moreover, Carbon code can be integrated into C++ code. So, C++ developers who want to switch fully to Carbon will have a toolkit to automatically transliterate C++ libraries into code in the new language. Reverse migration is also possible. In the future, these libraries can be used in an existing C ++ project. All Carbon tools are hosted on GitHub and distributed under the Apache 2.0 license. So far, there is a demo Carbon interpreter available.

An important part of the experimental Carbon project is the governance structure. The Carbon team is guided by the principles of inclusiveness and openness. The governance structure of Carbon is designed for fast decision-making, flexibility, and rapid development of the project. All the crucial decisions are made by Carbon leads, represented by Chandler Carruth, Kate Gregory, and Richard Smith at the moment. Since the Carbon project is based on the open-source development model, every user can send GitHub requests to suggest the project changes and drive the Carbon language evolution.

At the moment, Google employees are working on the Carbon programming language as an internal project. However, it is planned to reduce the level of involvement of the company in the project, since developers understand that for future success, Carbon must be an independent and community-driven project.

Bottom line

It is important to understand that Carbon is an experimental project and it is too early to state unequivocally that Carbon is a full-fledged successor to C++. According to the Carbon roadmap, the development of the main language constructions should be completed by the end of 2022, and this is exactly the time when Carbon 0.1 should be released. It will take time to assess the success of the project, but we can already talk about the high prospects of the Carbon programming language as the successor to C++ based on the announced features and principles of development.
Thank you for rating!
Thank you for comment!

Rate this article:

4/5

4.8/5 (45 reviews)

Leave Your Comment

Related content

Blog
software development life cycle
Blog
Climbing the pyramid: how to structure a high-performance software development team
Blog
Approaches To A Better Cloud Migration
Blog
Decision Intelligence
Blog
java enterprise software development
Blog
Artificial intelligence in healthcare
Blog
Inc.5000
Blog
The Ultimate Guide to Apache Airflow
Blog
Blog
Blog
Blog

Brought us a challenge?

Select the subject of your inquiry

Please be informed that when you click the Send button Innowise Group will process your personal data in accordance with our Privacy Policy for the purpose of providing you with appropriate information.

What happens next?

1

Having received and processed your request, we will get back to you shortly to detail your project needs and sign an NDA to ensure the confidentiality of information.

2

After examining requirements, our analysts and developers devise a project proposal with the scope of works, team size, time, and cost estimates.

3

We arrange a meeting with you to discuss the offer and come to an agreement.

4

We sign a contract and start working on your project as quickly as possible.

Thank you!

Your message has been sent.
We’ll process your request and contact you back as soon as possible.

arrow