Lors de la conférence « CPP North » qui s’est tenue récemment à Toronto, Chandler Carruth, ingénieur logiciel chez Google, a présenté aux développeurs un nouveau langage de programmation appelé Carbon. Selon Carruth, Carbon est un successeur expérimental du C++, qui vieillit, et il y a une demande croissante dans la communauté des développeurs pour que les langages de programmation évoluent.
Typescript a été développé par Microsoft pour succéder à JavaScript. De même, Kotlin a été créé pour consolider les faiblesses de Java. Maintenant, la question est de savoir si Carbon s’avère être un successeur de C++ ?
Comparaison de codes
(Source : Github)
Carbon peut-il être un digne successeur ?
Lors de l’événement, Carruth a annoncé que Carbon serait le successeur expérimental du langage de programmation C++. Même si la plupart des développeurs travaillant sur Carbon sont de Google, ce n’est pas un projet exclusif à Google. Carruth a révélé qu’ils allaient bientôt commencer ce travail expérimental avec la communauté C++.
Carbon est open source, et les développeurs veulent que ce soit “un projet indépendant et communautaire” pour qu’il réussisse. Le projet sera donc maintenu sur GitHub, avec des discussions sur Discord.
« Carbon est destiné aux organisations et aux projets fortement dépendants de C++ ; par exemple, des projets qui contiennent beaucoup de code C++ ou utilisent de nombreuses bibliothèques C++ tierces », ont déclaré les créateurs dans un référentiel Github.
L’origine de Carbon réside également dans le fait qu’il est difficile d’améliorer C++. L’une des principales raisons à cela est que C++ a accumulé des décennies de dette technique dans la conception du langage. De plus, il a également hérité de l’héritage de C.
Carbon n’hérite pas des héritages de C ou de C++. Au lieu de cela, les développeurs ont veillé à ce que Carbon dispose d’un processus d’évolution beaucoup plus efficace. En outre, il repose sur des principes, des processus et des outils open source.
Cependant, pour que Carbon soit un digne successeur de C++, il y a encore un long chemin à parcourir. Tout d’abord, le C++ existe depuis très longtemps. Le carbone, en revanche, en est encore au stade expérimental et à des années d’utilisation réelle. Même lorsqu’il s’agit de la vie, Carbon doit être capable de résoudre les problèmes que C++ n’a pas réussi à résoudre.
L’un des avantages de C++ est qu’il peut manipuler directement le matériel sur lequel il s’exécute. Tout ce que les programmeurs doivent faire est d’affiner leur code même dans un espace matériel limité. Pour que Carbon soit un successeur, il doit également être capable de faire des choses similaires, et peut-être plus.
De plus, les cas d’utilisation de C++ sont multiples. Les systèmes d’exploitation populaires tels que Windows et macOS utilisent C++. C’est également l’un des langages de programmation les plus utilisés dans l’industrie du jeu, avec des jeux tels que World of Warcraft et Counter-Strike ayant été développés en C++.
Les outils de base de données populaires tels que MySQL et MongoDB ont été créés à l’aide de C++. Il joue également un rôle dans les navigateurs Web tels que Google Chrome, Mozilla Firefox et Safari. TensorFlow, une bibliothèque de logiciels open source pour l’apprentissage automatique, s’appuie également sur C++ comme langage de programmation back-end. De plus, C++ est également utilisé pour développer de nombreux outils financiers et logiciels de vol.
Carbone à l’intérieur, rouille à l’extérieur !
Avant que Carruth ne nous présente Carbon, un autre langage de programmation appelé Rust était considéré comme le successeur de C++. Cela était principalement dû à ses similitudes syntaxiques avec C++, car il offre une vitesse accrue et une meilleure sécurité de la mémoire. Cependant, cela est ouvert à la discussion car de nombreux développeurs ont trouvé Rust trop difficile à apprendre car il introduisait également de nombreux concepts nouveaux.
Outre la courbe d’apprentissage abrupte, la conversion des bases de code C++ actuelles des grands projets en Rust est un défi. De plus, selon les développeurs de Carbon, la conception de Rust elle-même agit comme un obstacle important à l’adoption et à la migration depuis C++. D’autre part, Carbon vise à convertir les bases de code C++ d’une bien meilleure manière que Rust.
Pour un développeur C++, il ne sera pas difficile d’apprendre Carbon. En fait, on dit que Carbon a une courbe d’apprentissage douce. Alors que beaucoup pensaient que l’utilisation de Rust était similaire à l’apprentissage d’un nouveau langage de programmation.
“Il est construit à partir d’un ensemble cohérent de constructions de langage qui doivent être familiers et faciles à lire et à comprendre”, déclare la page Github de Carbon.
Lors de son discours lors de l’événement, Carruth a également expliqué que Rust, développé par Mozilla, n’a pas la même “interopérabilité bidirectionnelle” que d’autres outils. Mais, les créateurs de Carbon encouragent les développeurs à continuer à utiliser Rust si c’est techniquement et économiquement viable pour le projet.
“Nous pensons que Rust est un excellent choix pour écrire des logiciels au sein de l’écosystème Rust pur. Les logiciels écrits en Rust ont des propriétés que ni C++ ni Carbon n’ont. Rust est également utile pour utiliser des API implémentées dans un langage différent en cours de processus, lorsque le coût de maintenance de la limite FFI est raisonnable.
Comment réagit l’industrie ?
« Carbon correspond à 100 % des performances de C++ et vise à fournir une expérience de développement nettement meilleure », a tweeté Kaggle, maître et scientifique principal des données, Mark Tenenholtz.
C’est principalement parce que Carbon réduit la dette technologique des bibliothèques existantes et facilite l’extension de ces bibliothèques.
Cependant, tout le monde n’est pas convaincu que Carbon serait un digne successeur de C++. Bien que Carbon soit nouveau, C++ existe depuis des décennies et bénéficie d’un large soutien communautaire.
“Je ne sais pas si Carbon sera abandonné dans un an ou s’il va révolutionner la façon dont les bases de code C sont maintenues”, a ajouté Tenenholtz.
Quelques membres de la communauté ont remis en question la nécessité de changer des futilités comme la syntaxe et de faire en sorte que les gens apprennent à nouveau des choses.
Cependant, une autre section de développeurs est enthousiasmée par Carbon et ce qu’il pourrait apporter à la communauté des développeurs.