Zig et la philosophie sans miracle
Photo : GameFromScratch.com

Zig et la philosophie sans miracle

Toutes les attributions sont explicites, sans surchargement d'opérateurs ni flux de contrôle cachés. Une approche qui va à contre-courant de la tendance.

Alors que la plupart des nouveaux langages s'efforcent d'ajouter des fonctionnalités permettant d'écrire plus succinctement, Zig va à contre-courant : l'objectif est de lire un bout de code et de savoir exactement ce que la machine va faire, sans qu'il y ait de comportement caché.

Il n'y a pas de distribution clandestine

Toute fonction nécessitant de la mémoire dynamique doit recevoir un allocateur en paramètre. Cela peut sembler fastidieux, mais en contrepartie, la signature de la fonction permet de savoir immédiatement si elle utilise un allocateur ou non — ce qui est très important pour les logiciels embarqués et le code du noyau.

Cela facilite également les tests de fuites de mémoire : il suffit de passer les données à un allocateur avec suivi, puis, à la fin du test, de vérifier s’il reste des résidus.

Il n'y a pas de flux de contrôle caché

Pas d'exception, pas de surchargement d'opérateurs, pas de constructeur implicite. Les erreurs sont renvoyées sous forme de valeurs et doivent impérativement être gérées. En lisant le code Zig, tous les endroits où il est possible de sauter vers une autre partie du code sont visibles.

Exécuter le code dès la compilation

Zig permet d'exécuter du code Zig standard dès la compilation, ce qui sert à générer des types, à calculer des tables de consultation et à choisir des branches en fonction de la plateforme. Au lieu d'apprendre un langage de macro spécifique, vous utilisez le langage lui-même.

Qui devrait y prêter attention ?

Zig n'a pas encore atteint la stabilité, la syntaxe varie d'une version à l'autre et l'écosystème des bibliothèques est encore limité. Il ne faut pas encore miser sur cette technologie pour des systèmes critiques.

Mais il y a une chose qui est immédiatement utilisable, même si vous n'écrivez pas la moindre ligne de code Zig : sa suite d'outils permet une compilation croisée très légère du C et du C++ sur de nombreuses plateformes ; de nombreux projets l'utilisent uniquement pour remplacer leur chaîne d'outils de compilation.

Chia sẻ

Thảo luận