Vercel Labs a sorti Zero le 15 mai — un langage de programmation systèmes expérimental dont la contrainte de design est que les AI agents, pas les humains, doivent lire l'output du compilateur. Le compilateur émet des diagnostics JSON structurés avec codes d'erreur stables et plans de repair typés (ex. `{"code": "NAM003", "message": "unknown identifier", "repair": {"id": "declare-missing-symbol"}}`), enforce une I/O capability-based à la compilation, et compile vers des binaires natifs sous-10 KiB sur linux-musl-x64. Apache 2.0, extension de fichier `.0`, v0.1.1 expérimental, repo à github.com/vercel-labs/zero. Auteurs : Chris Tate avec Matt Van Horn chez Vercel Labs.

Trois choix de design séparent Zero de Rust, Zig, Go et C. Premièrement : diagnostics JSON par défaut avec codes stables plus repair IDs, donc un agent peut mapper `NAM003` vers un plan de fix sans grep dans un message d'erreur en prose humaine. Deuxièmement : I/O capability-based via un paramètre `World` — une fonction qui reçoit pas `World` peut pas faire de side effects, et le compilateur l'enforce à la compilation, donc un agent peut inférer les effets depuis la signature de type sans lire le corps. Troisièmement : un CLI unifié avec des subcommands (`zero check`, `zero run`, `zero build`, `zero graph`, `zero size`, `zero routes`, `zero skills`, `zero explain`, `zero fix`, `zero doctor`) où `zero fix --plan --json` émet un plan de repair machine-readable et `zero skills` retourne du guidance d'agent matché à la version. La mémoire est explicite — pas de GC, pas d'allocator caché — et le langage sit à côté de Rust dans le design space mais optimise sa surface pour la lisibilité par agent.

La plupart des vendors d'AI pour code compètent sur la couche autour des langages de programmation : Copilot, Cursor, Codex, Claude Code d'Anthropic. Vercel Labs parie une couche plus profonde — que le langage lui-même devrait changer pour que les agents puissent le travailler sans taxe d'interprétation. Les deux précédents que ça écho, c'est les codes d'erreur de compilateur de Rust (stables, queryables, mais le message est encore en prose) et les returns d'erreur clean de Zig (lisibles mais pas de système de capabilities). Zero, c'est ce qui arrive quand tu commences avec « l'agent doit parser ça » comme contrainte et tu designs le format de diagnostic, le système d'effects, et le CLI autour. Si le pari paye dépend de si les langages agent-natifs compoundent assez d'avantage sur les agents-retrofittés-aux-langages-existants pour offset le déficit d'écosystème. Zero a pas de package registry, pas de validation en production, et l'auteur l'appelle « pas encore une dépendance production ».

Lundi matin : si tu bâtis des systèmes de code-generation agent-driven, Zero vaut une exploration d'une journée pour voir ça fait quoi quand le compilateur traite ton agent comme un consumer first-class. Le format de diagnostic JSON et la subcommand `zero explain` sont immédiatement observables ; le système d'I/O capability demande d'écrire un programme non-trivial pour évaluer. Si t'es language designer, les moves architecturaux sont extractables indépendamment — Zig et Rust pourraient tous les deux ajouter des diagnostics JSON avec repair IDs sans casser la compat source, et ça absorberait la plupart des agent-affordances de Zero back dans les toolchains existants. Watch si Zero développe un vrai écosystème dans six mois ou si les techniques migrent upstream dans Rust/Zig avant que Zero y arrive. Les deux outcomes confirment que la lisibilité par agent devient un axe de design des langages.