Carbon : Google continue à travailler sur un successeur à C++
mer, 03/12/2025 - 16:55
Goolge a toujours aimé expérimenter les langages. Apparu en juillet 2022, Carbon est un projet expérimental pour créer un langage pouvant remplacer le C++ tout en étant interopérable avec lui. Expérimental est un terme important car actuellement, Carbon est très loin d'être fonctionnel et rien n'est réellement fixé : toolchain, le langage proprement dit, le compilateur, etc.
A la présentation du projet, l'objectif était de sortir une version 0.1 fin 2026. Puis 12 à 24 mois plus tard, Google espère livrer la 0.2 et sortir le langage de l'expérimentation. L'étape cruciale, si est est atteinte, ce sera une version stabilisée et opérationnelle, la 1.0, après 2028. Et le langage serait alors sorti de Google pour être gouverné par une entitée open souce indépendante. L'après 2028 est flou et peut être annulé à tout moment.
Carbon doit fournir :
- des performances équivalente à C++, au minimum
- utiliser LLVM, un accès bas niveau, utiliser un système de build C++ pour compiler le langage
- interopérabilité totale avec C++
- un langage safe par design comme Rust
- un approche plus "simple" que C++
C++ est complexe avec des paradigmes OO pas toujours simples à maîtriser. Carbon peut être vu comme TypeScript côté JavaScript ou Kotlin côté Java.
La 0.1 doit fournir une idée claire du langage, de la syntaxe et permettre de coder les premiers prototypes. Les caractéristiques et fonctionnalités de C++ doivent être implémentées et avoir une interopérabilité avec C++ pour faciliter la migration vers le nouveau langage. La 0.2 ira bien au-delà avec le safe memory, les coroutines, l'async, SIMD, inline. Ce sera donc la version 0.2 qui sera la véritable lancement de Carbon. Mais Google peut aussi décider d'arrêter le développement...
Carbon doit intégrer les packages, les librairies, les namespaces, l'héritique, les génériques, etc. La liste est très longue : https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/milestones.md#milestone-01-a-minimum-viable-product-mvp-for-evaluation

