Alex du qubit du temple concave
| compte public QbitAI

Lors de la conférence CPP North C++ de cette année, Google a annoncé un nouveau langage de programmation, Carbon , qui, selon lui, serait "le successeur de C++ " .

Google l'a ouvert sur GitHub. Bien que le langage soit encore au stade expérimental, il a rapidement attiré de nombreux programmeurs à venir regarder, et il s'est autrefois classé premier sur la liste des tendances GitHub , et a maintenant reçu 21,3k étoiles.

image

Concernant l'affirmation du développeur Google selon laquelle Carbon est le successeur de C++, certains médias étrangers ont demandé son avis à Bjarne Stroustrup, le père de C++ .

Il y a toujours de nouveaux langages essayant d'être le successeur de C++ au fil des ans, et j'accueille favorablement l'expérimentation de langages de programmation et de styles de programmation ;

Mais Carbon est trop nouveau et sous-spécifié pour que je puisse vraiment faire un examen technique significatif. Souvent, il est difficile de fournir une alternative au C++ sans développer des règles de langage, des bibliothèques et des schémas de gestion entièrement nouveaux.

Alors pourquoi l'équipe Google doit-elle créer une "alternative" C++ au lieu de continuer à améliorer le C++ existant ? Après tout, la langue est largement utilisée en eux-mêmes.

Pourquoi ne pas passer à C++ ?

À cet égard , Chandler Carruth, un ingénieur de Google qui a dirigé l'équipe de développement de Carbon, a expliqué que C++ a maintenant 40 ans et que bon nombre de ses propres problèmes affligent les développeurs actuels.

C++ a accumulé beaucoup de dette technique au fil des décennies. Ses mainteneurs donnent la priorité à la rétrocompatibilité afin de continuer à prendre en charge des projets largement utilisés, mais cela a tendance à conduire à une énorme quantité de code.

De plus, bien que C++ ait des compilateurs open source (tels que gcc) , il existe également de nombreux compilateurs open source, dont certains peuvent prendre beaucoup de temps à s'améliorer et à se mettre à niveau.

De plus, le développement du langage C++ a été entravé par des procédures de gestion de comité bureaucratique qui étaient standardisées plutôt qu'orientées vers la conception, ce qui rendait difficile l'ajout de nouvelles fonctionnalités.

La meilleure façon de résoudre ces problèmes est d'éviter d'hériter directement de "l'héritage" du C ou du C++, et de commencer plutôt par les fondamentaux du langage, tels que : le système générique moderne, l'organisation du code modulaire, la syntaxe simple cohérente, etc.

Carus a également mentionné lors de la conférence CPP que le langage n'est pas destiné à concurrencer les futures versions améliorées de C++, mais -

"Explorez ce que vous ne pouvez pas faire avec C++"

Tout comme Microsoft a créé TypeScript pour mettre à jour JavaScript, Carbon, en tant que nouveau langage développé sur la base de C++, résoudra des problèmes tels que la sécurité de la mémoire et les génériques pour que davantage de développeurs compensent les lacunes de C++.

image

Les points forts du langage Carbon actuel incluent :

  • Mots-clés d'introduction et syntaxe simple ;

  • Les paramètres d'entrée de la fonction sont des valeurs en lecture seule ;

  • les pointeurs fournissent une indirection et des variantes ;

  • Utilisez des expressions pour nommer les types ;

  • Importer des API par nom de package ;

  • Des génériques puissants et dont la définition a été vérifiée

  • ......

De plus, Google continue de développer Carbon pour prendre en charge les fonctionnalités suivantes :

  • logiciels critiques pour les performances ;

  • évolution des logiciels et des langages ;

  • Code facile à lire, à comprendre et à écrire ;

  • Mécanismes pratiques de sécurité et de test ;

  • Développement rapide et évolutif ;

  • Plates-formes de systèmes d'exploitation, architectures matérielles et environnements modernes ;

  • Interopérabilité et portabilité avec le code C++ existant.

L'équipe de développement créera également un gestionnaire de packages intégré, qui fait cruellement défaut en C++.

Un exemple simple : Calculez la somme des aires de deux cercles de rayons 1 et 2 en utilisant respectivement le code C++ et le code Carbon. La comparaison entre les deux est montrée dans la figure:

image

Source : GitHub ; code C++ à gauche, code Carbon à droite

Le diagramme ci-dessous montre l'interopérabilité entre Carbon et C++. Les programmeurs peuvent appeler des bibliothèques, des méthodes et des fonctions C++ sur Carbon sans surcharge supplémentaire et vice versa.

image

En ce qui concerne la sécurité, Carbon n'a pas construit de système de sécurité à mémoire dès le départ.

Carus a déclaré qu'en raison de la mauvaise sécurité de la mémoire de C++, le point de départ de la recherche et du développement de Carbon est très bas et le projet donne la priorité à la migration plutôt qu'à la sécurité ; on espère que Carbon pourra être au moins aussi sûr que Go ou Swift à l'avenir.

En fait, avant Carbon, Mozilla (celui qui a développé Firefox) a sorti un langage qui s'est également présenté comme un "successeur du C++" en 2015 : Rust , et ce Rust accorde une grande attention à la sécurité de la mémoire.

Alors pourquoi ne pas faire un gros effort pour développer Rust ?

"Carbon est destiné aux personnes disposant de grandes bibliothèques C++"

Carus a répondu lors de la réunion du CPP que la connexion entre C++ et Rust n'est pas bonne et qu'il est très difficile de transférer l'écosystème C++ vers Rust.

Pour les développeurs qui ont déjà une grande base de code C++, déplacer leurs éléments précédents vers l'éditeur Rust peut être un problème.

Carbon est conçu comme un langage successeur de C++, qui réalisera une connexion transparente avec C++ à l'avenir, et a une interopérabilité bidirectionnelle avec C++, ce qui est très convivial pour ceux qui ont un grand nombre de bases de code C++.

Pour les programmeurs qui n'ont pas ce "désagrément", a déclaré Carus, si vous voulez utiliser Rust, continuez à l'utiliser.

Les internautes regardent

Parmi les internautes venus regarder Carbon, certains ont exprimé leur soutien à Google pour développer ce nouveau langage :

Ce serait formidable de pouvoir appeler directement les fonctions Stuff de bas niveau de la bibliothèque C ici, sans ajouter la ligne "C" externe au début.

image

Certaines personnes sont d'accord avec ses objectifs de simplification du langage et d'amélioration de la sécurité, mais il estime qu'il n'est pas facile d'améliorer la sécurité de la mémoire dans un langage existant, et les fonctionnalités et API C++ existantes sont susceptibles de limiter le développement de ce nouveau langage.

image

Bien sûr, il y a aussi des internautes qui ne sont pas optimistes sur Carbon, pensant que Google a l'habitude d'abandonner les logiciels innovants, et ce projet qui s'annonce très explosif risque d'être abandonné à mi-chemin.

image

Quelqu'un d'autre a demandé : Carbon, un langage implémenté en C++, veut remplacer C++ ?

image

Certains internautes estiment que Rust devient progressivement un langage de programmation de bas niveau. Carbon et Rust présentent de nombreuses similitudes. Le simple fait de "faciliter la migration C++" n'a aucun argument de vente.

image

De plus, certains internautes sur Hacker News ont pensé au langage D (DLang) , qui a une bonne interopérabilité avec C++. Et le langage D a également de nombreuses fonctions de Carbon, y compris s'appeler avec C++, réduire les frais généraux supplémentaires, etc.

Malheureusement, parce que le positionnement initial du langage D n'était pas assez clair, il a essayé une fois de couvrir les fonctions de Java et de C++, ce qui le rendait relativement petit.

image

Que pensez-vous de Carbon, le soi-disant "successeur du C++" ? Bienvenue à laisser un message dans la zone de commentaire ~

Portail :
https://github.com/carbon-language/carbon-lang

Lien de référence :
[1] https://devclass.com/2022/07/25/c-inventor-stroustrup-says-googles-carbon- too -new-and-under-specified-for-meaningful-technical-comment/

[2] https://www.youtube.com/watch?v=omrY53kbVoA
[3] https://news.ycombinator.com/item ? id=32151609
[4]  https://www.reddit.com/r/programming/comments/w2thvo/carbon_an_experimental_c_successor_language/

-Fin- _ _

La communauté WeChat "Intelligence Artificielle", "Voiture Intelligente" vous invite à la rejoindre !

Invitez les amis qui prêtent attention à l'intelligence artificielle et aux voitures intelligentes à nous rejoindre, communiquez et apprenez avec les praticiens de l'IA, et ne manquez pas les derniers développements de l'industrie et les progrès technologiques.

ps. S'il vous plaît assurez-vous de noter votre nom-entreprise-position lors de l'ajout d'amis ~

image

Cliquez ici👇 pour me suivre, n'oubliez pas de marquer l'étoile~

"Partager", "J'aime" et "Regarder" en un clic

Rendez-vous tous les jours à la pointe de la science et de la technologie ~