HeadlinesBriefing favicon HeadlinesBriefing.com

Expérience Zig vs Rust: réécriture JSONPath

Hacker News •
×

Après sept ans en tant que développeur Rust, j'ai exploré Zig en réimplémentant ma bibliothèque JSONPath (jsonpath-rust) sous le nom zig-jsonpath. La première surprise a été le support IDE : Zig n'offrait peu plus que la coloration syntaxique, me forçant à revenir aux outils en ligne de commande. Cela s'est avéré rafraîchissant ; build.zig gère les tests et les suites de conformité élégamment avec des commandes comme `zig build test` et `zig build compliance`. L'expérience a catalysé mon passage d'un IDE complet à une configuration helix + alacritty + zellij.

La philosophie de structure plate de Zig contraste avec les hiérarchies imbriquées de Rust. Alors que Rust encourage la fragmentation des fichiers, Zig pousse vers des fichiers plus grands et plats avec des conventions de nommage simples comme `model_<companion>`. Cela évolue plus loin que prévu avant de nécessiter une vraie hiérarchie. La friction d'importation due à l'imbrication décourage les dossiers profonds, rendant la navigation par tranches de sections dans des fichiers uniques étonnamment efficace.

Venant du style fonctionnel et des types expressifs de Rust, j'ai compté sur l'intuition inter-langages, reconnaissant que mes décisions Zig étaient façonnées par des habitudes Rust plutôt que par l'idiome profond de Zig. La comparaison semblait juste en utilisant la spécification JSONPath de la RFC 9535 — un projet réel et utilisable plutôt qu'un jouet. L'approche de bas niveau et légère de Zig en tant que successeur de C s'avère convaincante, bien que la courbe d'apprentissage implique de désapprendre les patterns Rust.

Entités clés : Entreprises : Jet Brains