Google lance Carbon, un successeur expérimental au langage C++

Frustrés par la lente évolution du langage C++, des ingénieurs de Google ont mis au point un nouveau langage de programmation open source "expérimental". Répondant au nom de Carbon, celui-ci se veut meilleur que C++ sur plusieurs points et pourrait se présenter comme son successeur.

De la même manière que Microsoft a développé TypeScript pour contrer certains aspects de JavaScript, et que Kotlin a été créé pour pallier à certaines faiblesses de Java, Carbon apporte des évolutions à un langage legacy qui peine à s'améliorer.


Bjarne Stroustrup, le créateur de C++, dans les années 2000

Présenté fin juillet par l'ingénieur Chandler Carruth (Google), Carbon adresse des sujets comme la sécurité de la mémoire, la généricité (abstraction du type), en proposant également une syntaxe plus simple, avec un oeil neuf et adapté aux concepts de développement modernes.

Comme l'explique l'ingénieur dans le repo GitHub du projet Carbon, le langage de choix pour construire des applications sensibles aux performances a bien souvent été C++, qui s'accompagne d'un lot de problématiques qui entravent les développeurs dans leur expérience de programmation.

Selon lui, le langage C++ a accumulé des décennies de dette technique, en traînant des pratiques d'un autre temps qui lui viennent de son propre prédécesseur, le langage C. Les mainteneurs de C++ priorisent quant à eux le sujet de la rétrocompatibilité afin d'assurer le support de projets à grande ampleur comme Linux et son gestionnaire de packages.

Chandler Carruth pendant sa présentation de Carbon à la conférence Cpp North de Toronto (juillet 2022)

Les évolutions du langage C++ seraient par ailleurs étouffées par une lourdeur bureaucratique et un long processus en cascade, le comité de décision s'intéressant plus à la standardisation qu'au design, ce qui empêche bien souvent l'ajout de nouvelles fonctionnalités.

Avec Carbon, les ingénieurs Google ont pris le pari d'instaurer un environnement plus ouvert et entraîné par la communauté. Le projet est maintenu et partagé sur GitHub et ses évolutions discutées dans un serveur Discord dédié.

Selon la documentation du projet, Carbon prévoit de traiter et couvrir les sujets suivants :

  • Le souci de la performance des applications
  • Les possibilités d'évolution du langage
  • Du code simple à lire, comprendre et écrire
  • La sécurité autour du langage et des mécanismes de test
  • Permettre des développements rapides et évolutifs
  • La prise en compte d'OS, d'architectures hardware et d'environnements modernes
  • L'interopérabilité avec du code C++ et la facilité de migration de projets C++ vers Carbon

Pour les experts C++ qui figurent parmi vous, voici un exemple de code C++ traduit en Carbon, fourni par l'équipe de Carbon.

Premièrement, le code C++ :

Et maintenant, le même code en Carbon :

Ne cherchez pas à vous former à ce nouveau langage tout de suite, car il est important de noter que Carbon est en cours de construction et n'est pas encore prêt à être utilisé : à ce jour, il n'existe pas encore de compilateur ou d'outils Carbon opérationnels, mais il est néanmoins possible de jeter un oeil à l'interpréteur de démo du langage ici.

Alors que Carbon a commencé comme un projet interne chez Google, l'équipe de développement souhaite réduire les contributions des salariés de Google ou de toute autre entreprise à moins de 50% d'ici la fin de l'année, l'objectif à terme étant de remettre le langage entre les mains d'une organisation à but non lucratif au sein de laquelle des volontaires prendraient la main sur les développements.

Se rendre sur le GitHub du projet Carbon

À lire aussi sur Les Joies du Code :