TypeScript a été développé pour répondre à plusieurs défis majeurs rencontrés par les développeurs JavaScript, en particulier dans les applications à grande échelle. En effet, TypeScript est un sur-ensemble de JavaScript qui introduit le typage statique optionnel et d’autres fonctionnalités pour améliorer l’expérience de développement, notamment pour les applications à grande échelle. Son histoire reflète le besoin croissant de meilleurs outils et d’une meilleure structure dans le développement JavaScript.
Les navigateurs ne comprennent pas TypeScript directement ; il doit donc être transpilé en JavaScript valide avant de pouvoir s’exécuter dans un navigateur.

CppFront, créé par Herb Sutter, est un outil expérimental conçu pour explorer Cpp2, une syntaxe alternative pour le C++ qui vise à améliorer l’ergonomie, la lisibilité et la sécurité du langage. Tout comme TypeScript améliore JavaScript en ajoutant la sûreté des types, une syntaxe moderne et la détection d’erreurs, CppFront cherche à apporter des améliorations au C++ tout en conservant la compatibilité avec le code et les bibliothèques existants.
Et comme TypeScript, Cpp2 est conçu pour fonctionner en convertissant d’abord le code Cpp2 en code C++ standard avant la compilation. L’outil qui rend cela possible s’appelle CppFront, qui joue un rôle similaire au compilateur TypeScript.
Herb Sutter a présenté Cpp2 il y a deux ans et y travaille toujours activement :
CppFront a été conçu pour aider les développeurs à explorer une façon plus sûre et plus expressive d’écrire du code C++. Voici comment le processus fonctionne :
1- Analyse de la syntaxe Cpp2
Lorsque vous écrivez du code en Cpp2, vous utilisez une syntaxe plus simple et plus sûre que le C++ traditionnel. Cpp2 vise à réduire les pièges courants du C++, en introduisant des fonctionnalités comme les modèles de propriété explicites, les pointeurs sûrs et des structures de contrôle modernes. Le code Cpp2 représente toujours des constructions C++, mais sa syntaxe encourage une programmation plus sûre et plus maintenable.
2- Traduction de CppFront vers le C++
CppFront prend ce code Cpp2 et le traduit en code C++ standard, conforme à C++20 ou aux normes antérieures. Cette conversion consiste à faire correspondre les constructions Cpp2 à leurs structures C++ équivalentes, en préservant le comportement tout en améliorant lisibilité et sécurité. Par exemple, les contrats et le pattern matching de Cpp2 sont réinterprétés en code C++ afin que les compilateurs C++ existants puissent les comprendre.
3- Compilation avec un compilateur C++ standard
Une fois que CppFront a converti le code Cpp2 en C++, vous pouvez le compiler avec n’importe quel compilateur C++ standard (comme GCC, Clang ou MSVC). Cela garantit la compatibilité avec l’écosystème, les bibliothèques et les outils C++ existants.
Cette approche de traduction de source à source permet à Cpp2 d’être rétrocompatible avec le C++ tout en laissant les développeurs adopter progressivement une syntaxe plus sûre, à l’image de TypeScript qui compile vers JavaScript.
Conclusion
TypeScript a commencé comme un projet expérimental, et Microsoft a officiellement annoncé sa première version publique en 2012. Aujourd’hui, TypeScript est un acteur clé de l’écosystème JavaScript, offrant aux développeurs des outils puissants pour créer des applications évolutives et maintenables. Sa croissance reflète les tendances de fond du développement logiciel, où la sûreté des types et la productivité des développeurs sont de plus en plus prioritaires.
J’espère que Cpp2 suivra un chemin similaire à celui de TypeScript, avec une adoption massive dans les prochaines années, contribuant à rendre le développement C++ plus simple et plus sûr.
