Google veut imposer Carbon face à C++

Par:
ftonic

lun, 01/08/2022 - 18:00

Google aime les nouveaux langages de programmation. La preuve avec la dernière annonce : le langage Carbon. Carbon est imaginé pour remplacer C++. Avant de remplacer le vénérable et toujours performant C++, Carbon doit déjà convaincre et se montrer aussi mature que C++. Parmi les arguments pour remplacer C++, la difficulté de faire évoluer le langage. Sauf que depuis 10 ans, C++ évolue désormais régulièrement.

Carbon a des grandes ambitions :

- performance pour les apps critiques

- évolution par conception du langage

- code facile à lire, à comprendre et à écrire

- sécurisé par design

- développement rapide et capable de s'adapter à de très gros projets

- apprentissage plus simple (?) pour un dév C++

Carbon se veut rapide et capable de travailler avec C++ : bas niveau, LLVM, interopérabilité avec C++, migration d'une version à une autre simplifiée, open source, gouvernance claire. Pour les équipes Carbon, le langage est plutôt un nouveau langage qu'une évolution de C++ avec une autre syntaxe. Le problème est justement de ne pas réinventer la route et donc le C++. Les équipes prennent pour exemple qu'Angular utilise TypeScript à la place de JS, que Kotlin supplante de plus en plus Java sur Android. 

L'autre nécessité, qui n'est pas un but clairement imposé : stabilité des binaires (ABI). C'était un souci de Swift avec la garantie de la compabilité ascendante et descendante. Ce sont deux défis majeurs pour un langage jeune et en plein développement. La casse de code est courante. 

Attention, Google précise bien que Carbon n'est absolument pas un langage que l'on peut installer. Il s'agit d'un projet (à peine) expérimental et qu'aucun compilateur ou toolchain ne fonctionne actuellement. On dispose uniquement d'un interpréteur. Actuellement, l'équipe Carbon veut définir la stratégie, la roadmap, la gouvernance et le process d'évolution. Sur la partie langage, les développeurs veulent implémenter les génériques, les classes types, concevoir le lexique et la syntaxe, l'organisation du code et la structure du code, etc. 

Une première roadmap approximative a été fournie : 

- 2022 : concevoir une version publique 0.1

- 2023 : Carbon 0.2, sortir de l'expérimentation

- 2024-2025 : Carbon 1.0

Le calendrier est ambitieux pour un langage à peine en développement et dont les contours restent largement inexistants. Nous restons sceptiques sur la capacité des équipes à tenir un agenda aussi serré. Apple a dévoilé Swift en 2014 alors qu'il était en développement depuis 2010. Et il a fallu plus de 6 ans pour stabiliser et compléter le langage. La v1 sera forcément immature, incomplète et avec des milliers de problèmes et de bugs. 

Bref, l'annonce est potentiellement intéressante mais nous devons attendre du concret et un langage exploitable avec un minimum d'outillage pour juger de la pertinence de Carbon.