Présentation

Goose est un langage de programmation open source publié sous licence Apache‑2.0. Le dépôt GitHub (aardappel/goose) indique 34 étoiles, aucun fork et aucune contribution externe, ce qui montre une adoption très limitée à ce jour. Le projet se compose de répertoires classiques (src, stdlib, test, bench) et utilise CMake comme système de construction.

Performances revendiquées

Le README avance que les programmes écrits en Goose sont 1,16 × plus rapides que leurs équivalents en C++ et 1,12 × plus rapides que du Rust « safe ». Aucun benchmark détaillé n’est fourni dans le dépôt ; les mesures semblent provenir d’un benchmark interne non publié. L’absence de description des jeux de données, du matériel utilisé (CPU, RAM) ou du mode de compilation (optimisations, flags) empêche de vérifier la robustesse de ces chiffres. Néanmoins, la marge annoncée (environ 10 % d’avance) suggère que le compilateur de Goose exploite des optimisations similaires à celles de LLVM tout en réduisant le coût des vérifications de sécurité à la compilation.

Architecture et sécurité mémoire

Goose se veut « memory safe », c’est‑à‑dire qu’il empêche les accès hors limites, les use‑after‑free et les data races sans recourir à un ramasse‑miettes. Le projet ne détaille pas le mécanisme exact, mais le positionnement « safe Rust » indique probablement l’utilisation d’un système de possession (ownership) et d’un emprunt (borrowing) inspiré de Rust. Cette approche permet de vérifier la validité des pointeurs à la compilation, éliminant ainsi la surcharge d’un garbage collector et contribuant aux gains de performance annoncés. Le code source inclut un répertoire stdlib qui expose des abstractions de haut niveau (collections, itérateurs) tout en restant compatible avec le modèle de possession.

Limites et perspectives

Le principal point faible du projet réside dans le manque de transparence : aucune version de compilateur, aucun numéro de commit de benchmark, aucune comparaison avec des versions spécifiques de C++ (ex. C++20) ou de Rust (ex. 1.70). De plus, l’absence de tests d’intégration automatisés (le répertoire test ne contient que quelques cas simples) rend difficile l’évaluation de la robustesse du système de sécurité mémoire. Enfin, la communauté autour de Goose est très restreinte, ce qui limite les retours d’expérience et la maturité du langage. Pour valider les performances, il serait nécessaire de reproduire les benchmarks sur du matériel moderne (ex. CPU Intel Xeon E5‑2690 v4) en utilisant des flags d’optimisation -O3 et en comparant des programmes identiques en C++ et Rust.