Please leave your contacts, we will send you our overview by email
I consent to process my personal data in order to send personalized marketing materials in accordance with the Privacy Policy. By confirming the submission, you agree to receive marketing materials
Thank you!

The form has been successfully submitted.
Please find further information in your mailbox.

Innowise is an international full-cycle software development company founded in 2007. We are a team of 1800+ IT professionals developing software for other professionals worldwide.
About us
Innowise is an international full-cycle software development company founded in 2007. We are a team of 1600+ IT professionals developing software for other professionals worldwide.

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!

Table of contents

Rate this article:

4/5

4.8/5 (45 reviews)

Related content

Brought us a challenge?

    Please include project details, duration, tech stack, IT professionals needed, and other relevant info
    Record a voice message about your
    project to help us understand it better
    Attach additional documents as needed
    Upload file

    You can attach up to 1 file of 2MB overall. Valid files: pdf, jpg, jpeg, png

    Please be informed that when you click the Send button Innowise 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.

    Thank you!

    Your message has been sent. 

    We’ll process your request and contact you back as soon as possible.

    arrow