Bun Re-Written in Rust Using AI

Cette vidéo analyse la décision controversée de réécrire entièrement le runtime JavaScript Bun en Rust à l’aide d’une IA, en soulignant les risques techniques, les motivations marketing et les implications pour la sécurité du code non revu par des humains.

Voir la source

SYNTHÈSE STRUCTURÉE

Une réécriture massive et automatisée

Bun, un runtime JavaScript alternatif à Node.js, a été réécrit en Rust par Anthropic en utilisant exclusivement une IA. Le commit initial a modifié 2 188 fichiers pour un total de plus d’un million de lignes de code. L’intervenant précise : « none of it’s been reviewed by actual humans cuz come on, it’s a million lines ». Il souligne que même une revue de quelques centaines de lignes est rarement approfondie, alors qu’un million de lignes non relues représente un risque colossal.

Des résultats techniques mitigés mais prometteurs

L’annonce de Jared Sumner indique que la réécriture « passes buns pre-existing test suite on all platforms and fixes several memory leaks and flaky tests ». La taille du binaire a été réduite de 3 à 8 Mo, et les benchmarks sont « between neutral and faster ». L’intervenant reconnaît que ces gains sont réels, mais met en garde : « could there be potentially some bugs squashed because of it? Yeah… and at the same time create brand new bugs and brand new problems ».

Une motivation avant tout marketing

L’intervenant est catégorique : le choix de Rust et de l’IA n’est pas technique mais marketing. Il explique : « the reason they chose Rust is because Rust is an overhyped programming language… combine it with other things that are super hyped up, you end up with a potential thing that the marketing team just can’t turn down ». Il compare cette combinaison à « presenting a Scrooge McDuck money bin filled with cocaine and then telling a coke addict, ‘Don’t dive in’ ».

Les dangers des réécritures complètes

L’intervenant partage son expérience : « I’ve lost track of the number of times I’ve been at companies and we decided as a team to rewrite some project… nine times out of 10, it was a terrible, terrible idea ». Il rappelle que jeter du code testé en production pour le réécrire est « almost always a death sentence », surtout quand la réécriture est expérimentale.

Le problème de la confiance dans le code généré par IA

Le point le plus alarmant selon l’intervenant est l’absence de revue humaine. Il déclare : « A million lines of AI generated code shipping to production in fairly short order is terrifying to me ». Il évoque le risque d’insertion de backdoors, intentionnelles ou non, et cite l’exemple historique de Brian Kernighan qui avait introduit une porte dérobée dans le compilateur C d’Unix comme test.

La fragilité de l’écosystème Rust

L’intervenant souligne que Rust n’a pas encore atteint une version stable finale : « Rust has not hit a standardized here… it’s still unstable… changing fundamentally at irregular patterns ». Il ajoute que le fait qu’il n’existe qu’un seul compilateur Rust, qui ne peut être construit qu’avec une version précédente, facilite les injections de code malveillant.

Une performance technique impressionnante mais inquiétante

Malgré ses réserves, l’intervenant admet que le résultat est techniquement remarquable : « the fact that they were able to rewrite bun in R in any language… and it then resulted in passing the vast majority of their test suites… That’s impressive ». Il nuance : « I find that terrifying », car cela montre que l’IA peut produire du code fonctionnel à grande échelle, sans garantie sur son intégrité.

Une tendance vers le « vibe coding »

L’intervenant cite Eric Raymond, auteur de La Cathédrale et le Bazar, qui affirme : « The age of hand coding is mostly over. It no longer matters how much whether the computer language I use is comfortable to my hand, only whether the robot friend I’m using can generate it at high quality ». Il voit dans cette déclaration une normalisation inquiétante de la délégation totale du code à l’IA.

Recommandation pour les utilisateurs en production

L’intervenant conseille la plus grande prudence : « If I were actually using bun in production, I would be very very very hesitant about using this rewrite in Rust using AI anytime soon ». Il suggère d’attendre « a year or two to work out the kinks before moving away from the non-Rust version », voire de ne jamais migrer.

CONCEPTS CLÉS

  • Vibe coding : Pratique consistant à laisser une IA générer la quasi-totalité du code, l’humain se contentant de décrire le comportement attendu.
  • Réécriture complète (rewrite) : Remplacement intégral d’un code existant par une nouvelle implémentation, souvent risqué car il jette des années de corrections de bugs.
  • Backdoor : Fonctionnalité cachée et malveillante insérée dans un logiciel, permettant un accès non autorisé.
  • Compilateur auto-hébergé : Compilateur qui peut être construit en utilisant une version antérieure de lui-même, créant une chaîne de confiance vulnérable aux injections.

CONCLUSION

Le message principal est que la réécriture de Bun en Rust par IA, bien qu’impressionnante techniquement, représente un pari risqué sur la confiance aveugle dans le code généré automatiquement. L’intervenant met en garde contre la normalisation de pratiques où des millions de lignes de code non revues par des humains sont déployées en production, ce qui expose à des bugs massifs et à des failles de sécurité potentiellement catastrophiques. Pour les administrateurs système, la leçon est claire : ne jamais migrer vers une telle version sans une période d’observation prolongée et des tests approfondis, et rester sceptique face aux promesses marketing mêlant technologies hype et IA.

Du même canal

Tout voir