Jarred Sumner, tvorac i glavni razvijač JavaScript serverske platforme Bun, stvorio je Git granu u kojoj je započeo prepisivanje Buna sa jezika Zig na Rust. Prepisivanje se vrši korišćenjem AI asistenta Claude, za koji je formiran poseban vodič za portiranje. Prema Jarredovim rečima, ovo je trenutno samo eksperiment, a ne zvanični port, te je velika verovatnoća da neće proći dalje od eksperimenta i da prepiso kod neće biti iskorišćen.
Portiranje još nije završeno, a u ovoj fazi sav interes za projekat usredsređen je na to da se proceni koliko će port biti funkcionalan, hoće li proći set testova glavnog projekta i koliko će biti teško održavati novi kod. Na kraju planirano je sprovesti uporedno testiranje verzija Buna na Zig i Rust.
U decembru prošle godine, projekat Bun je absorvovala kompanija Anthropic, zato Jarred ima resurse za angažovanje u portiranje naprednih AI modela Claude. Bun platforma koristi se u proizvodima Claude Code i Claude Agent SDK, a kompanija Anthropic je zainteresovana za poboljšanje njenog kvaliteta i razvoja. Bun je jedan od najuspešnijih projekata na jeziku Zig, pri čemu se stavovi programera Zig i Buna oko korišćenja AI u procesu razvoja razdvajaju. U projektu Zig je postavljena stroga zabrana upotrebe velikih jezičkih modela prilikom pripreme pull zahteva, issue-a i komentara (zabranjeno je čak i prevođenje neengleskih komentara putem AI).
Uvođenje ovakvih ograničenja objašnjavaju programeri Ziga negativnim iskustvom u recenziranju pull zahteva napravljenih putem AI, koji oduzimaju resurse i vreme (na primer, uključuju besmislene promene, AI halucinacije i naduvane izmene kodova od 10.000 redova). Osim toga, projekat Zig se pozicionira kao orijentisan na učesnike, a ne na doprinos koji oni donose u razvoju – glavni cilj prihvatanja pull zahteva je pomoć u razvoju novih učesnika.
Autor Bun se ne slaže s zabranom AI u Zigu i smatra da će AI-ura ostati nostalgična ostavština 2025. i 2026. godine, dok će razvoj otvorenog softvera evoluirati do zabranjivanja prihvaćanja koda od ljudi. Ljudi će raspravljati o problemima, postavljati ciljeve i odrediti prioritete, dok će pisanje koda i slanje promjena u repozitorije postati zadaća AI-a. Kao razlog eksperimenata s prepisivanjem na Rust također se navodi želja da se isprave problemi u Bunu, uzrokovani curenjem memorije, i neprihvatljiva politika Ziga prema prihvaćanju promjena koje narušavaju kompatibilnost.
Zbog zabrane korištenja AI, programeri Buna prisiljeni su održavati vlastitu fork verziju alata Zig, u kojoj je zahvaljujući korištenju AI-a postignuto četverostruko ubrzanje kompilacije kroz paralelizaciju semantičke analize i generiranje koda. Pri tome, prema komentaru jednog od programera Ziga, razlog odbijanja zakrpa nije u AI-u, već u tome što paralelizacija semantičke analize utječe ne samo na kompilator, već i na sam jezik — kako bi se realizirala predložena funkcionalnost bez grešaka i nekompatibilnosti, potrebno je unijeti promjene u jezik Zig. Umjesto paralelizacije, programeri Ziga razvijaju inkrementalnu kompilaciju, koja će, kako oni pretpostavljaju, omogućiti daljnje povećanje brzine kompilacije.
JavaScript platforma Bun razvija se kao visoko performansni analog platformi Node.js i Deno. Projekt se razvija s naglaskom na osiguranje kompatibilnosti sa servernim aplikacijama za Node.js i podržava veći dio API-ja Node.js. U sastavu platforme nalazi se skup alata za stvaranje i izvršavanje aplikacija na jezicima JavaScript i TypeScript, kao i runtime za izvršavanje JavaScript aplikacija bez preglednika, paketni menadžer (kompatibilan s NPM), alati za izvođenje testova, sustav za izgradnju samodostatnih paketa i sloj za ugradnju handlera pisanih na jeziku C. Po performansama, Bun znatno nadmašuje Deno i Node.js (u testovima temeljenim na frameworku React, platforma Bun dvostruko nadmašuje Deno i gotovo pet puta Node.js). Za izvršavanje JavaScript-a korišten je JavaScript motor JavaScriptCore i komponente projekta WebKit s dodatnim zakrpama.
Izvor: opennet.ru
