Jarred Sumner, Bun serveri JavaScript platvormi loojana ja peaarendajana, on loonud Git haru, kus ta on alustanud Bun-i kirjutamist Zig keelt Rust keelde. Ümberkirjutamine toimub AI-assistendi Claude abil, mille jaoks on koostatud eraldi juhend portimise kohta. Jarredi sõnul on see seni vaid eksperiment, mitte ametlik port, ja on suur tõenäosus, et see jääbki vaid eksperimentaalsesse etappi ning ümber kirjutatud koodi ei kasutata ära.
Portimine ei ole veel lõppenud, ja praegu on kogu huvi projekti vastu suunatud sellele, et hinnata, kui toimiv port välja kujuneb, kas see läbib peaprojekti testid ning kui keeruline on uut koodi hooldada. Lõppkokkuvõttes plaanitakse läbi viia võrreldavad testid Bun-i Zig ja Rust versioonide vahel.
Eelmisel aastal detsembris omandas ettevõte Anthropic projekti Bun, seega on Jaredil nüüd ressursid, et tegeleda edasiste AI mudelite Claude portimisega. Platvormi Bun kasutatakse Claude Code'i ja Claude Agent SDK toodetes ning Anthropic on huvitatud selle kvaliteedi ja arengu parandamisest. Bun on üks kõige edukamaid projekte keeles Zig, samas kui Zig ja Bun arendajate seas on erinevad arvamused AI kasutamise kohta arendusprotsessis. Zig projekti raames on kehtestatud ranget keelt, mis keelab suurte keelmudelite kasutamise pull-request'ide, probleemide ja kommentaaride koostamisel (isegi AI kaudu mitte-ingliskeelsete kommentaaride tõlkimine on keelatud).
Selliste piirangute kehtestamise põhjuseid seletavad Zig arendajad negatiivne kogemus AI kaudu loodud pull-päringute läbi, mis võtavad ära ressursse ja aega (näiteks tuvastatakse mõttetud muudatused, AI hallutsinatsioonid ja 10 000 rea suurused paisutatud commitid). Lisaks positsioneerib Zig projekt end kui osalejatele orienteeritud, mitte sisendina nende panusele arenduses — pull-päringute peamine eesmärk ei ole uue koodi lisamine, vaid uute osalejate arendamine.
Buni autor ei nõustu AI keelu kehtestamisega Zig'is ja usub, et AI-aeg jääb nostalgiaks 2025. ja 2026. aastal, samal ajal kui avatud tarkvara arendus areneb keeluni inimeste kodeerimise vastuvõtmisel. Inimesed arutavad probleeme, seadistavad ülesandeid ja prioriteete, samas kui koodi kirjutamine ja muudatuste saatmine hoidlatest muutub AI pärusmaaks. Üheks põhjuseks katsetele Rust'i kirjutamisega on ka soov lahendada Buni mälulekkeprobleeme ning Zig'i poliitika keelte ühilduvuse rikkumise osas ei ole suurte projektide jaoks vastuvõetav.
AI kasutamise keelu tõttu peavad Bun arendajad toetama oma Zig tööriistade forki, kus AI rakendamise kaudu õnnestus kompilatsiooni kiirus neljakordistada, jagades semantilise analüüsi ja koodi genereerimise protsesse. Kuidas väidab üks Zig arendajatest, ei ole patšide tagasilükkimise põhjus AI, vaid see, et semantilise analüüsi paralleelprotsess mõjutab mitte ainult kompilaatorit, vaid ka keelt ennast — et ellu viia pakutud funktsionaalsus ilma vigade ja ühilduvusprobleemideta, on vajalik Zig keele muutmine. Paralleelprotsessimise asemel arendavad Zig arendajad inkrementaalset kompilatsiooni, mis nende arvates suurendab kompilatsiooni kiiruselt märkimisväärselt.
JavaScript platvorm Bun areneb kõrge jõudlusega vastena Node.js ja Deno platvormidele. Projekt arendatakse silmas pidades ühilduvust Node.js serverirakendustega ja toetab enamikku Node.js API-dest. Platvorm sisaldab tööriistade komplekti rakenduste arendamiseks ja käitamiseks JavaScripti ja TypeScripti keeltes, samuti runtime-i JavaScripti rakenduste käitamiseks ilma brauserita, paketihalduri (NPM-iga ühilduv), testimisvahendite komplekti, iseseisvate pakettide koostamis süsteemi ja sildimistöötlust C keeles kirjutatud käitlejate integreerimiseks. Jõudluses tõmbab Bun märgatavalt ette Deno ja Node.js-st (React raamistiku põhjalike testide käigus ületab platvorm Bun Deno kaks korda ja Node.js ligi viis korda). JavaScripti töötlemiseks kasutatakse JavaScripti mootorit JavaScriptCore ja WebKit projekti komponente koos täiendavate plaastritega.
Allikas: opennet.ru
