Table des matières[Cacher][Montrer]
Dans un effort pour remplacer le vénérable mais lent C++, les chercheurs de Google ont introduit un tout nouveau langage de programmation open source "expérimental" baptisé Carbon.
Carbon pourrait servir de langage successeur à C++, un langage qui fournit un point de départ simple aux développeurs vers un langage plus récent qui aborde des concepts de développement contemporains tels que la sécurité de la mémoire et les génériques.
Cela serait similaire à la façon dont Microsoft a construit Typescript pour mettre à jour JavaScript et Kotlin afin de renforcer les faiblesses de Java.
Google a développé un certain nombre de langages de programmation au fil des ans, dont certains ont acquis une notoriété et une notoriété importantes.
Par exemple, Golang (ou simplement Go) a été développé pour faciliter la création de serveurs et de systèmes distribués et a ensuite été adopté par le grand public.
La fléchette langage de programmation, qui a été créé en tant que substitut de JavaScript, n'est pas devenu célèbre avant le lancement de Flutter.
Chandler Carruth, un employé de Google, a présenté son idée d'un nouveau langage de programmation appelé Carbon le 19 juillet 2022, lors de la convention Cpp North à Toronto, selon Conor Hoekstra, qui a assisté et enregistré les diapositives.
Afin de définir le scénario, Carruth a démontré comment plusieurs des langages de programmation les plus appréciés d'aujourd'hui avaient des descendants qui permettent aux développeurs d'être rapidement productifs et de bénéficier également de la conception de langages contemporains.
Commençons par une introduction générale du langage de programmation Carbon, y compris ses fonctionnalités, le but de son invention par Google, et plus encore.
Introduction au langage de programmation Carbon
Le 19 juillet 2022, Google a révélé Carbon comme le plus récent langage de programmation qu'il avait créé. Il était destiné à remplacer expérimentalement C++.
Merci à un système de génériques, qui élimine le besoin de revérifier le code pour chaque instanciation, Carbon sera construit sur une base de concepts de programmation modernes.
D'ici la fin de l'année, la conception prévoit de fournir une version opérationnelle de base (version 0.1).
L'intégrité de la mémoire est un élément crucial qui manque à C++. Les problèmes d'accès à la mémoire sont l'une des principales sources de failles de sécurité.
Le développement de vérifications dynamiques des limites, un meilleur suivi des états non initialisés et un mode de construction de débogage par défaut complet sont tous des objectifs de l'équipe Carbon. Les créateurs ont l'intention de créer un sous-ensemble de carbone sécurisé au fil du temps.
Cependant, voici quelques caractéristiques cruciales du nouveau langage de programmation :
- Pour nommer les types, utilisez des expressions.
- Génériques forts avec contrôles de définition
- Les types effectuent spécifiquement des interfaces
- phrases d'introduction et grammaire de base
- Les pointeurs permettent un accès et une mutation illimités.
- Les valeurs des paramètres d'entrée de fonction sont en lecture seule.
- L'espace de noms racine est le package.
- Les API peuvent être importées à l'aide de leurs noms de package.
- Une méthode est déclarée via un paramètre d'objet explicite.
- Les cours sont définitifs par défaut ; il n'y a qu'un seul héritage
Caractéristiques du carbone
Moderne et en développement
- Les mises à niveau entre les versions Carbon sont simples et basées sur des outils.
- Bases de langage solides, surtout si vous avez utilisé C++, et simples à apprendre
- Des fondations plus sûres et une approche étape par étape vers un sous-ensemble sécurisé pour la mémoire
Accueillir la communauté de l'open source
- Une communauté qui s'efforce d'être chaleureuse, accueillante et invitante
- Ses objectifs et ses priorités sont distincts et une gouvernance solide
- Une stratégie tout-en-un avec un compilateur, des bibliothèques, de la documentation, des outils, la gestion des packages, etc.
Rapide et compatible avec C++
- Travailler avec le Code C ++ que vous avez déjà, y compris l'héritage et les modèles
- Avec LLVM, des performances comparables au C++ et un accès de bas niveau aux bits et aux adresses
- Des builds rapides, évolutifs et compatibles avec vos systèmes de build C++ existants
Pourquoi Google a-t-il créé le langage de programmation Carbon ?
Les logiciels critiques pour les performances continuent d'être principalement écrits en C++, qui dispose de bases de code et d'investissements énormes et en pleine expansion.
Cependant, il a du mal à progresser et à répondre aux demandes des développeurs, comme mentionné ci-dessus, en grande partie en raison de l'accumulation d'années de dette technologique.
Il est extrêmement difficile d'améliorer progressivement C++ en raison de la dette technique qu'il a accumulée ainsi que des difficultés liées à son processus d'évolution.
L'approche idéale pour résoudre ces problèmes consiste à commencer par une base de langage solide, telle qu'un système générique contemporain, une structure de code modulaire et une syntaxe cohérente et simple, plutôt que d'hériter directement de la tradition du C ou du C++.
Go, Swift, Kotlin, Rust et bien d'autres langages contemporains offrent déjà une expérience de développement exceptionnelle. Les développeurs capables d'utiliser l'un de ces langages actuels devraient le faire.
Malheureusement, l'adoption et la migration à partir de C++ sont gravement entravées par les conceptions de ces langages. Ces obstacles incluent la surcharge de performances et les modifications apportées à la conception idiomatique du logiciel.
Carbon n'est pas une tentative d'amélioration progressive du C++ ; il s'agit plutôt d'une stratégie de langage successeur. Il se concentre sur l'interopérabilité C++, ainsi que sur l'acceptation et la migration généralisées pour les développeurs et les bases de code utilisant actuellement C++.
Un langage de remplacement C++ doit avoir :
- Des performances comparables à C++ sont une caractéristique cruciale pour les développeurs.
- Une courbe d'apprentissage gérable et un niveau de familiarité pour les programmeurs C++
- Migration évolutive et incluant une traduction de code C++ idiomatique source à source.
- Expressivité similaire et prise en charge de l'architecture et de la conception des logiciels actuels.
- Interopérabilité avec C++ transparente et bidirectionnelle, permettant à n'importe quelle bibliothèque d'adopter Carbon sans avoir à porter le reste de la pile.
Avec cette stratégie, Google ajoute à l'écosystème qui existe déjà pour C++ et intègre les investissements actuels, les bases de code et les communautés de développement.
Quelques langages ont adopté cette approche pour divers écosystèmes, et Carbon cherche à jouer une fonction similaire à C++ dans ces situations :
- Java-Kotlin
- JavaScript-TypeScript
- C++ – Carbone
C++ contre le code carbone
Carbon devrait avoir une faible courbe d'apprentissage si vous êtes déjà un développeur C++. Il est composé d'un ensemble fixe de constructions grammaticales qui doivent sembler naturelles et simples à lire et à comprendre.
Un exemple de code C++ :
Ce code Carbone correspond à :
Carbone Vs Rouille
Un autre langage contemporain conçu expressément pour répondre aux exigences des applications de performance sécurisées en mémoire s'appelle Rust.
Alors pourquoi ne pas simplement utiliser Rust ?
Alors que certains soutiennent que Rust, qui a commencé comme un projet Mozilla et a ensuite grandi pour avoir un public important, est un successeur de C++, Carruth doute que le parallèle soit toujours valable.
Rust est sans aucun doute un langage fantastique avec lequel commencer un nouveau projet, mais comme il lui manque "l'interopérabilité bidirectionnelle" de langages comme Java et Kotlin, il est difficile d'y passer progressivement.
Carruth a donné une conférence au CPP North et a encouragé les personnes qui utilisaient déjà Rust à continuer. Les développeurs qui ont déjà des bases de code C++ importantes qui sont difficiles à convertir en Rust devraient utiliser Carbon.
En particulier, Carbon est ce que Carruth a appelé un "langage successeur", qui est construit au-dessus d'un écosystème existant, en l'occurrence C++.
À cette fin, Carbon est censé être complètement compatible avec le code C++ actuel, même s'il a de nombreux objectifs avec Rust, comme aider les programmeurs à créer des "applications critiques pour les performances".
De plus, il est prévu de rendre le passage de C++ à Carbon aussi simple que possible.
Conclusion
Enfin, les créateurs du langage Carbon ont fait un effort pour prêter attention au processus de création. Le code du projet est disponible sur demande et stocké ouvertement sur Github, et sa culture est définie comme inclusive et ouverte à la fois aux citoyens privés et au secteur informatique.
L'équipe Carbon a pensé que Carbon devait être un projet autonome piloté par la communauté et pas seulement un projet alimenté par Google afin de se développer à l'avenir.
Caruth a ajouté que malgré l'intérêt d'un certain nombre d'entreprises informatiques, ce concept est encore au stade expérimental.
Soyez sympa! Laissez un commentaire