De auteur van het Bun-platform voert een experiment uit om van Zig naar Rust te herschrijven

Jarred Sumner, de maker en hoofddontwikkelaar van het server-side JavaScript-platform Bun, heeft een Git-tak aangemaakt waarin hij Bun herschrijft van Zig naar Rust. De herschrijving gebeurt met behulp van de AI-assistent Claude, waarvoor een aparte gids voor portering is opgesteld. Volgens Jarred is dit voorlopig slechts een experiment en geen officiƫle port, en is de kans groot dat het niet verder komt dan dit experiment en dat de herschreven code niet zal worden gebruikt.

De portering is nog niet afgerond, en op dit moment is de volledige interesse in het project gericht op het beoordelen hoe goed de port zal functioneren, of deze de testreeks van het hoofdproject doorstaat en hoe moeilijk het zal zijn om de nieuwe code te onderhouden. Uiteindelijk is het de bedoeling om een vergelijkende test uit te voeren tussen de versies van Bun in Zig en Rust.

In december vorig jaar is het Bun-project overgenomen door Anthropic, waardoor Jarred middelen heeft om de geavanceerde AI-modellen van Claude bij de portering te betrekken. Het Bun-platform wordt gebruikt in de producten Claude Code en Claude Agent SDK, en het bedrijf Anthropic heeft interesse om de kwaliteit en ontwikkeling ervan te verbeteren. Bun is een van de meest succesvolle projecten in de Zig-taal, maar de meningen van ontwikkelaars van Zig en Bun verschillen over het gebruik van AI in het ontwikkelproces. In het Zig-project is een strikte verbod op het gebruik van grote taalmodellen bij het indienen van pull-verzoeken, issues en opmerkingen goedgekeurd (zelfs vertaling via AI van niet-Engelstalige opmerkingen is verboden).

De invoering van dergelijke beperkingen wordt door de ontwikkelaars van Zig verklaard door negatieve ervaringen met het beoordelen van pull-verzoeken die via AI zijn gemaakt, wat tijd en middelen kost (bijvoorbeeld worden zinloze wijzigingen, AI-hallucinaties en opgeblazen commits van tienduizend regels opgemerkt). Bovendien positioneert het Zig-project zichzelf als gericht op deelnemers in plaats van hun bijdrage aan de ontwikkeling — het belangrijkste doel van het accepteren van pull-verzoeken is niet om nieuw code toe te voegen, maar om de ontwikkeling van nieuwe deelnemers te ondersteunen.

Bun's auteur is against the AI ban in Zig and believes that AI-waste will become a nostalgic relic of 2025 and 2026, while the development of open source software will evolve towards a prohibition on accepting code from humans. People will discuss problems, set tasks, and prioritize, while coding and committing changes to repositories will become the domain of AI. One of the reasons for experimenting with rewriting in Rust is also the desire to eliminate issues in Bun caused by memory leaks, and the unacceptable policy of Zig regarding language changes that break compatibility for large projects.

Due to the ban on AI usage, Bun developers are forced to maintain their own fork of the Zig toolkit, which, thanks to the use of AI, has achieved a fourfold increase in compilation speed by parallelizing semantic analysis and code generation. However, according to a comment from one of the Zig developers, the reason for the rejection of patches is not AI, but that parallelizing semantic analysis affects not only the compiler but also the language itself — to implement the proposed functionality without errors and incompatibilities, changes to the Zig language are required. Instead of parallelization, Zig developers are enhancing incremental compilation, which they believe will significantly increase compilation speed.

Het JavaScript-platform Bun ontwikkelt zich als een high-performance alternatief voor de platforms Node.js en Deno. Het project wordt ontwikkeld met aandacht voor de compatibiliteit met serverapplicaties voor Node.js en ondersteunt het grootste deel van de Node.js API. Het platform omvat een set tools voor het creƫren en uitvoeren van applicaties in de talen JavaScript en TypeScript, evenals een runtime voor het uitvoeren van JavaScript-applicaties zonder browser, een pakketbeheerder (compatibel met NPM), een toolkit voor het uitvoeren van tests, een systeem voor het bouwen van zelfstandige pakketten en een laag voor het integreren van handlers geschreven in C. In termen van prestaties overtreft Bun Deno en Node.js aanzienlijk (in tests met het React-framework presteert het Bun-platform twee keer beter dan Deno en bijna vijf keer beter dan Node.js). Voor het uitvoeren van JavaScript wordt de JavaScript-engine JavaScriptCore en componenten van het WebKit-project met extra patches gebruikt.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster