Jarred Sumner, tvůrce a hlavní vývojář serverové JavaScriptové platformy Bun, vytvořil Gitovou větev, ve které začal přepisovat Bun z jazyka Zig do Rustu. Přepisování probíhá za použití AI asistenta Claude, pro kterého byla vytvořena samostatná příručka pro portování. Podle Jarreda jde zatím jen o experiment, nikoli o oficiální port, a je velmi pravděpodobné, že se experiment nezdaří a přepsaný kód nebude použit.
Portování ještě není dokončeno a v současné fázi je veškerý zájem o projekt soustředěn na posouzení, jak funkční bude port, zda projde sadou testů hlavního projektu a jak náročné bude udržovat nový kód. Nakonec se plánuje provést srovnávací testování variant Bun v jazycích Zig a Rust.
V prosinci loňského roku projekt Bun pohltila společnost Anthropic, takže Jarred má zdroje na zapojení pokročilých AI modelů Claude do portování. Platforma Bun se používá v produktech Claude Code a Claude Agent SDK a společnost Anthropic má zájem o zlepšení její kvality a rozvoj. Bun je jedním z nejúspěšnějších projektů v jazyce Zig, přičemž názory vývojářů Zig a Bun se liší ohledně aplikace AI v procesu vývoje. V projektu Zig byl zaveden přísný zákaz používání velkých jazykových modelů při přípravě pull requestů, problémů a komentářů (je zakázán i překlad neanglických komentářů pomocí AI).
Zavedení těchto omezení vysvětlují vývojáři Zig negativními zkušenostmi s recenzováním pull requestů vytvořených pomocí AI, které zabírají zdroje a čas (například se uvádějí bezvýznamné změny, AI halucinace a nadměrné commity o deseti tisících řádcích). Kromě toho se projekt Zig profiluje jako orientovaný na účastníky, nikoli na jejich příspěvek k vývoji — hlavním cílem přijetí pull requestů je pomoc v rozvoji nových účastníků.
Autor Bun nesouhlasí s zákazem AI v Zig a domnívá se, že AI-sklop zůstane nostalgií roku 2025 a 2026, a že vývoj otevřeného softwaru se vyvine směrem k zákazu přijímání kódu od lidí. Lidé budou diskutovat o problémech, formulovat úkoly a určovat priority, zatímco psaní kódu a zasílání změn do repozitářů se stane doménou AI. Jako důvod experimentů s přepisováním do Rustu je také uvedena snaha odstranit problémy v Bunu způsobené úniky paměti a nepřijatelná politika Zig ohledně přijímání změn do jazyka, které narušují kompatibilitu.
Vzhledem k zákazu používání AI jsou vývojáři Bunu nuceni udržovat vlastní fork nástroje Zig, ve kterém se díky použití AI podařilo zrychlit kompilaci čtyřikrát díky paralelizaci sémantické analýzy a generování kódu. Podle komentáře jednoho z vývojářů Zig není důvodem odmítání patchů AI, ale to, že paralelizace sémantické analýzy ovlivňuje nejen kompilátor, ale i samotný jazyk — pro realizaci navrhované funkčnosti bez chyb a nekompatibilit jsou nutné změny v jazyce Zig. Místo paralelizace vývojáři Zig rozvíjejí inkrementální kompilaci, která podle jejich předpokladu zvýší rychlost kompilace.
JavaScriptová platforma Bun se vyvíjí jako vysoce výkonná alternativa platforem Node.js a Deno. Projekt je vyvíjen s ohledem na zajištění kompatibility se serverovými aplikacemi pro Node.js a podporuje většinu API Node.js. Součástí platformy je sada nástrojů pro vytváření a spouštění aplikací v jazycích JavaScript a TypeScript, jakož i runtime pro spouštění JavaScriptových aplikací bez prohlížeče, správce balíčků (kompatibilní s NPM), nástroje pro provádění testů, systém pro sestavení nezávislých balíčků a vrstva pro integraci handlerů napsaných v jazyce C. Z hlediska výkonu Bun výrazně předčí Deno a Node.js (v testech na bázi frameworku React platforma Bun dvakrát předčí Deno a téměř pětkrát Node.js). Pro vykonávání JavaScriptu je využit JavaScriptový engin JavaScriptCore a komponenty projektu WebKit s dodatečnými patchi.
Zdroj: opennet.ru
