Développement de logiciels | Appliquez des solutions de conceptualisation d’applications avec les dernières technologies, la théorie de la conception et une grande dose de créativité.
Qu’est-ce que le carbone ?
Avec autant de langages de programmation, en avons-nous vraiment besoin d’un autre ? Comme le dit Google, bien sûr, oui.
Officiellement dévoilé au monde le mois dernier par Chandler Carruth sur CppNorth, Carbon a fait parler de lui la communauté de la programmation.
Mais quelle est cette langue ? Comment ça marche? Et ça marche ?
C++ fonctionne, mais quel est le problème ?
C++ existe depuis bien plus longtemps que certains d’entre nous ne vivent. Développé en 1982 et sorti en 1985, C++ a trouvé sa place dans les systèmes d’exploitation, les navigateurs et les jeux.
Bien que C++ ne soit pas le langage le plus cool à apprendre (sauf si vous souhaitez suivre la voie du développement de jeux), il est toujours utilisé dans les applications qui nécessitent des performances, de la vitesse et une disponibilité un peu limitée.
En bref, C++ est un langage de programmation à usage général qui a toutes les cloches et sifflets habituels, tels que les classes et les objets, l’abstraction, l’encapsulation, le polymorphisme et l’héritage. Il est fortement typé, sensible à la casse, utilise des pointeurs et possède une vaste bibliothèque de fonctions.
Mais qu’est-ce qui ne va pas avec C++ ?
Critiques du carbone
En général, la critique de C++ est qu’il est trop complexe. IntelliSense est généralement nul, il n’y a pas de support pour les fonctions et tuples de première classe, et les listes d’initialisation sont considérées comme un « hack ». En plus de cela, il existe plusieurs bizarreries, telles que la syntaxe répétitive et les opérateurs, tels que &, qui est à la fois un opérateur logique et une référence.
De plus, il existe un problème où chaque fournisseur de compilateur propose ses propres noms et empêche les modules d’être liés à partir de différents compilateurs.
Plein d’autres problèmes, mais en bref, C++ fonctionne, mais il a ses problèmes.
Que fait le carbone
Comme tout langage de programmation créé avant que beaucoup d’entre nous n’arrivent, C++ avait du sens au moment de sa création, mais il est maintenant obsolète.
Au fur et à mesure que les ingénieurs logiciels, les programmeurs et les développeurs deviennent plus avertis dans l’art de traduire les idées en logique, nous trouvons de meilleures façons de les traduire en code.
Faites défiler pour continuer
Go, Swift, Kotlin et Rust sont dérivés de langages de programmation apparentés. Tous ont été créés pour simplifier la complexité. Le carbone remplit la même mission.
Selon le référentiel officiel GitHub, Carbon est le langage successeur. Cela signifie qu’il ne cherche pas à améliorer le C++, mais à le remplacer complètement.
Il a des approches similaires, telles que des performances comparables, mais avec une courbe d’apprentissage plus légère pour le rendre plus accessible à un plus grand groupe de développeurs.
L’approche est similaire à Kotlin et TypeScript, où vous n’avez pas à vous débarrasser de la base de code existante, mais vous pouvez simplement superposer Carbon sur un projet C++ et tout fonctionnera.
Voici un extrait de code Carbon qui fonctionne avec C++ :
// Code C++ utilisé à la fois dans Carbon et C++ : struct Circle { float r ; };// Carbon exposant une fonction pour C++ : package Geometry api ; importer la bibliothèque Cpp « circle.h » ; import Math;fn PrintTotalArea(circles: Slice(Cpp.Circle)) { var area: f32 = 0; for (c: Cpp.Circle in circles) { area += Math.Pi * cr * cr; } Print(« Surface totale : {0} », zone); }// C++ appelant Carbon : #include
#include « circle.h » #include « geometry.carbon.h »auto main(int argc, char** argv) -> int { std::vector
Fortement. Donc, nous avons une mise à niveau C++, mais quels sont les avantages réels ?
- Génériques : en C++, les génériques ne sont que des génériques jusqu’à ce que les types soient remplacés dans le runtime. Les modèles résolvent ce problème, mais ils ne sont pas la solution finale. Carbon propose les bons génériques en paramétrant le code plutôt qu’en créant quasiment des doublons, comme il fonctionne actuellement dans des templates.
- Héritage : C++ donne des classes de base abstraites et n’a pas d’éléments de données. Le carbone offre un héritage non polymorphe.
- Surcharge d’opérateur : vous pouvez définir la façon dont les déclarations Carbon sont appliquées dans les types personnalisés.
Avantages du carbone
Les avantages sont un développement plus rapide et plus évolutif grâce à une meilleure organisation du code et des structures modulaires, la prise en charge de tous les systèmes d’exploitation et environnements modernes, des mécanismes de test sécurisés.
Un autre avantage important de Carbon est qu’il a pris en compte toutes les connaissances et pièges trouvés en C++, ce que son prédécesseur n’avait pas à cause de l’environnement dans lequel il a été créé.
Quand est la sortie ?
Le carbone est actuellement au stade expérimental. La feuille de route actuelle est la suivante :
- Version de production majeure (0,1) d’ici la fin de 2022
- 0,2 en 2023
- Version 1.0 en 2024-2025
C’est essentiellement tout pour le moment. La documentation de Carbon est généralement concise et accessible même aux développeurs non-C++.
Dans l’ensemble, il devrait être intéressant de savoir comment Google fera la promotion de Carbon lorsqu’il sera entièrement prêt. Va-t-il déplacer Kotlin du développement Android, comme il a autrefois supplanté Java ? Ou peut-être sera-t-il lié au développement de jeux Android ?
Quel que soit l’avenir, Carbon arrive. Comment cela se termine, nous le saurons probablement dans quelques années.
Ce contenu est exact et fidèle au meilleur de la connaissance de l’auteur et ne vise pas à remplacer les conseils formels et individualisés d’un professionnel qualifié.
© 2022 Rahul Sharma