Functional programmers need to take a look at Zig
L'auteur évalue un langage selon trois axes : expressivité (bruit), capacités de programmation du système de types pour garantir la correction, et temps moyen avant une surprise (décalage entre intention et implémentation). Il s'intéresse à Zig car son comptime semble offrir une manière simple et flexible d'exprimer la programmation de types comparable à Haskell tout en évitant d'imposer un paradigme fonctionnel contrôlé par des monades intégrées. L'article critique l'omniprésence du ramasse-miettes comme source de bruit, de plafonds de performance et d'appauvrissement des connaissances machine, arguant que les architectures modernes rendent ces compromis historiques moins pertinents. Zig est présenté comme innovant et pragmatique grâce à des abstractions de mémoire explicites (arenas, allocators), une API d'E/S qui évoque un Reader monad, et un comptime puissant permettant de définir newtypes, sommes et équivalents de typeclasses. En conclusion l'auteur se dit optimiste vis-à-vis de Zig, le trouvant adapté pour exprimer son domaine, efficace pour programmer le système de types et moins sujet aux surprises que des langages comme Rust ou C++.