Génération de code déterministe vs probabiliste : pourquoi la conversion en Rust de Bun via Vibe-Coding soulève des drapeaux rouges

Noah Hall, écrivant pour The Tech Enabler, trace une ligne claire entre la génération de code déterministe et probabiliste. Il utilise la récente conversion vibe-codée d'un million de lignes de code de Zig vers Rust par Bun comme exemple édifiant. Son argument central : les systèmes déterministes produisent des résultats cohérents et vérifiables ; les LLM introduisent une incertitude qui rend la relecture de code impossible à grande échelle.
Génération de code déterministe
Hall cite des outils déterministes établis : le 2to3 de Python pour la migration Python 2→3, et les transpileurs pour des langages comme Elm, PureScript et TypeScript qui produisent toujours le même JavaScript. Son propre langage Derw peut produire du JavaScript, TypeScript ou anglais ; Tegan produit du JavaScript ou Go ; Mojie cible JavaScript, Python ou anglais. Tous reposent sur une transformation AST vers AST — avec la même entrée, on obtient toujours la même sortie. La cohérence compte : « Si un bug est cohérent, on peut le corriger. S'il est incohérent, le corriger devient exponentiellement plus difficile. »
Génération de code probabiliste
Les LLM varient leur sortie à chaque exécution — parfois A, parfois B. Hall a créé neuro-lingo il y a trois ans comme parodie : les humains écrivent uniquement les signatures de fonction et les commentaires, et les LLM génèrent l'implémentation à neuf à chaque compilation. Exemple :
function add(a: number, b: number): number {
// Additionne deux nombres
}
function main() {
// Affiche "Hello World" dans la console
// Affiche le résultat de add(2, 3)
}« À chaque compilation de neuro-lingo, le code est généré à neuf par les LLM. Il est légèrement différent à chaque fois. Parfois il introduit des bugs. Parfois il est propre et simple. Parfois chaotique. » Hall soutient que les flux de code entièrement pilotés par l'IA font exactement cela, mais livrent en production avec une responsabilité humaine.
Le sophisme « il y a des tests »
Les tests seuls ne peuvent garantir la qualité. Hall cite SQLite comme la base de code la plus testée : 155,8 KSLOC de code C contre 92 053,1 KSLOC de code de test (590× plus). Malgré une couverture de branche à 100 %, des millions de cas de test et des harnais complets, SQLite repose toujours sur une relecture humaine. « Il est impossible pour un humain de relire 1 million de lignes de modifications en 9 jours. Bun n'a pas relu le code qu'ils ont fusionné dans la branche principale. »
Hall conclut que la génération de code déterministe a toujours besoin de validation, et que la génération probabiliste crée un risque qui croît avec le nombre de lignes. L'article source approfondit chaque exemple.
📖 Lire la source complète : HN AI Agents
👀 See Also

Protocole de Convergence Quumble v5 : Résultats de l'Expérimentation LLM Multi-Architecture
Le Protocole de Convergence Quumble v5 teste si des instances indépendantes de LLM convergent sur des descriptions de créatures imaginaires lorsqu'on leur donne des mots dépourvus de sens. Les résultats montrent que Claude (Opus 4.6 & Sonnet 4.6) et GPT-5.3 ont indépendamment produit une créature petite, ronde, douce, teintée de lavande, bioluminescente et qui bourdonne à partir du mot 'quumble'.

Claude Opus 4.5 et Sonnet 4.5 retirés de la sélection de modèles, nécessitent un indicateur de lancement.
Claude Opus 4.5 et Sonnet 4.5 ne sont plus disponibles dans le menu de sélection /model pendant les sessions. Les utilisateurs doivent désormais démarrer les sessions avec le drapeau --model en spécifiant l'identifiant complet du modèle pour accéder à ces versions antérieures.

Étude sur l'IA Cursor : Les gains de vitesse à court terme entraînent une complexité à long terme
Une étude utilisant une analyse de différence des différences a révélé que l'adoption de Cursor AI entraîne des augmentations de vélocité statistiquement significatives mais transitoires, ainsi que des augmentations substantielles et persistantes des avertissements d'analyse statique et de la complexité du code, ce qui provoque des ralentissements à long terme.

Claude contre GPT-4o : Même consigne pour double pendule, conventions de coordonnées différentes
Claude et GPT-4o produisent des simulations de double pendule visuellement différentes car ils interprètent thêta à partir de verticales opposées — haut contre bas — tout en utilisant le même moteur de rendu. Les calculs sont corrects dans les deux cas, mais le décalage révèle une ambiguïté subtile dans l'interprétation du prompt.