Innowise Group ist ein internationales Unternehmen für den vollen Zyklus der Softwareentwicklung, welches 2007 gegründet wurde. Unser Team besteht aus mehr als 1000 IT-Experten, welche Software für mehrere Branchen und Domänen weltweit entwickeln.
Über uns
Innowise Group ist ein internationales Unternehmen für den vollen Zyklus der Softwareentwicklung, welches 2007 gegründet wurde. Unser Team besteht aus mehr als 1000 IT-Experten, welche Software für mehrere Branchen und Domänen weltweit entwickeln.
Bitte geben Sie bitte hier Ihre Kontaktdaten an, wir werden Ihnen unsere Präsentation per E-Mail zusenden
Bitte beachten Sie, dass mit dem Absenden dieses Formulars stimmen Sie unsere Datenschutzrichtlinie
Das Formular wurde erfolgreich abgeschickt! Weitere Informationen finden Sie in Ihrer 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!

Bewerten Sie diesen Artikel:

4/5

4.8/5 (37 bewertungen)

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
java enterprise software development
Blog
Artificial intelligence in healthcare
Blog
Blog
Inc.5000
Blog
The Ultimate Guide to Apache Airflow
Blog
Blog
Blog
Blog
Blog

Haben Sie eine Herausforderung für uns?

Wählen Sie das Thema Ihrer Anfrage

Bitte beachten Sie, wenn Sie auf die Schaltfläche Senden klicken, dass Innowise Group Ihre Datenschutzrichtlinie um Ihnen die gewünschten Informationen zukommen zu lassen.

Wie geht es weiter?

1

Sobald wir Ihre Anfrage erhalten und bearbeitet haben, werden wir uns mit Ihnen in Verbindung setzen, um Ihre Projektanforderungen zu besprechen und eine NDA zu unterzeichnen, um die Vertraulichkeit der Informationen zu gewährleisten.

2

Nach Prüfung der Anforderungen erstellen unsere Analysten und Entwickler einen Projektvorschlag, der Arbeitsumfang, Teamgröße, Zeit- und Kostenschätzung enthält.

3

Wir vereinbaren einen Termin mit Ihnen, um das Angebot zu besprechen und eine Vereinbarung zu treffen.

4

Wir unterzeichnen einen Vertrag und beginnen umgehend mit der Arbeit an Ihrem Projekt.

Vielen Dank!

Ihre Nachricht wurde gesendet.
Wir werden Ihre Anfrage bearbeiten und Sie so schnell wie möglich kontaktieren.

arrow