3min Devops

Bun verruilt Zig voor Rust met hulp van Claude

Bun verruilt Zig voor Rust met hulp van Claude

Anthropic heeft Bun, de populaire JavaScript-runtime die het eind 2025 overnam, in slechts elf dagen laten omzetten van Zig naar Rust met behulp van AI. De snelheid waarmee de migratie werd uitgevoerd oogst bewondering, maar de werkwijze leidt tegelijkertijd tot stevige kritiek vanuit de Zig-gemeenschap.

Volgens Bun-bedenker Jarred Sumner was de overstap nodig omdat de codebasis steeds moeilijker te onderhouden werd. Gebruikers meldden een groeiend aantal bugs en een fout in de bundler speelde zelfs een rol bij het uitlekken van broncode van Claude Code eerder dit jaar, schrijft The Register. Een volledige herschrijving van ongeveer een half miljoen regels code zou volgens hem normaal gesproken een team van ontwikkelaars ongeveer een jaar kosten. Door tientallen Claude Code-agents parallel in te zetten, werd de migratie volgens Sumner in elf dagen afgerond. Tegen reguliere API-tarieven zou dat ongeveer 165.000 dollar hebben gekost.

Voor de omzetting werden circa vijftig AI-workflows tegelijk ingezet. Op piekmomenten produceerden die gezamenlijk zo’n 1.300 regels Rust-code per minuut. Uiteindelijk ontstond een nieuwe codebasis van ruim een miljoen regels. Volgens Sumner doorstond de nieuwe Rust-versie vervolgens zonder aanpassingen de volledige testsuite van Bun, die uit meer dan een miljoen tests bestaat.

Rust beter geschikt voor geheugenbeheer

Bun combineert een JavaScript-runtime met een pakketbeheerder, bundler en testrunner. Vanaf het begin koos Sumner voor Apple’s JavaScriptCore-engine in plaats van Googles V8 vanwege de prestaties. Ook viel de keuze destijds op Zig, dat veel controle biedt over systeembronnen.

Volgens Sumner bleek die keuze op termijn minder geschikt voor de manier waarop Bun intern met geheugen omgaat. De software combineert garbage collection met handmatig geheugenbeheer, een aanpak waarvoor Rust volgens hem beter is uitgerust dankzij de ingebouwde veiligheidsmechanismen rond geheugenbeheer. Hij benadrukt dat de ontstane problemen niet aan Zig zelf zijn toe te schrijven.

Zig-maker wijst naar programmeerstijl

Andrew Kelley, de bedenker van Zig, ziet dat heel anders. In een uitgebreide reactie stelt hij dat de problemen niet voortkomen uit de programmeertaal, maar uit de manier waarop Bun is ontwikkeld. Volgens hem stapelden technische schuld, gebrekkige foutafhandeling en een voortdurende focus op nieuwe functionaliteit zich al lange tijd op.

Kelley stelt bovendien dat Sumner “al rommel schreef voordat grote taalmodellen beschikbaar waren”. Hij vermoedt dat zakelijke doelstellingen zwaarder zijn gaan wegen dan softwarekwaliteit, zeker nadat Anthropic Bun had overgenomen.

De Zig-maker zegt daarom zelfs opgelucht te zijn dat Bun afscheid neemt van Zig. Het project gold jarenlang als een van de bekendste toepassingen van de taal, terwijl Kelley vindt dat de codebasis juist geen goed voorbeeld vormde van hoe Zig gebruikt zou moeten worden.

AI-code zonder review

Een belangrijker punt van kritiek betreft de inzet van AI zelf. Volgens Kelley probeerde het Bun-team eerder al AI-gegenereerde wijzigingen in het Zig-project onder te brengen. Die zijn afgewezen, omdat de Zig Software Foundation geen code accepteert die door AI is geschreven zonder grondige menselijke beoordeling.

Hij betwijfelt bovendien of de uitgebreide testsuite voldoende zekerheid biedt. Als eerdere bugs ondanks die tests ongemerkt in de Zig-versie terechtkwamen, is er volgens hem weinig reden om aan te nemen dat een volledig door AI gegenereerde Rust-codebasis wél vrij van fouten is.

De discussie raakt daarmee een breder vraagstuk binnen softwareontwikkeling. AI maakt het mogelijk om in zeer korte tijd enorme hoeveelheden code te produceren, maar roept tegelijkertijd vragen op over de kwaliteit, onderhoudbaarheid en de rol van menselijke codebeoordeling. De migratie van Bun geldt daardoor niet alleen als een technisch experiment, maar ook als een testcase voor de manier waarop AI in de toekomst grootschalige softwareprojecten kan veranderen.