Bun залишає Zig і переходить на Rust — Claude Fable 5 написав понад 1 мільйон рядків коду за 11 днів
Jarred Sumner повністю переписав JavaScript-рантайм Bun з Zig на Rust, використовуючи 64 паралельні екземпляри Claude Fable 5. За 11 днів було написано понад 1 мільйон рядків коду, а вартість API склала $165,000.
Вступ: Історичне переписування
Спільнота розробників шокована — Jarred Sumner, творець JavaScript-рантайму Bun, прийняв рішення, яке повністю змінює майбутнє проєкту. Bun, який спочатку був побудований на Zig, повністю переписано на Rust. Це не звичайний рефакторинг — 64 паралельні екземпляри Claude Fable 5 за 11 днів написали понад 1 мільйон рядків коду, що зайняло б у людської команди приблизно рік.
Ця історія є однією з наймасштабніших AI-асоційованих міграцій коду, які коли-небудь виконувалися. Вона показує, як сучасний штучний інтелект може переписувати цілі програмні проєкти за проміжки часу, які раніше вважалися неймовірними.
Bun v1.4.0 вже доступний у вигляді canary-релізу. Нова версія виправляє 128 багів і працює на 2-5% швидше. Але за цими цифрами стоїть набагато більша історія — як один розробник прийняв рішення, яке може змінити цілу екосистему.
Чому Zig? І чому піти?
Bun спочатку був створений на Zig не без причини — Zig пропонує низькорівневий контроль пам'яті, але з простішим синтаксисом, ніж C. У нього немає збирача сміття, і він здавався ідеальним вибором для створення високопродуктивного JavaScript-рантайму.
Однак, як пояснив Sumner, під час роботи з Zig постійно виникали помилки пам'яті та краші, які було надзвичайно важко повністю виправити. Це була не просто випадкова проблема — недоліки управління пам'яттю в Zig мали систематичний характер, що загрожувало стабільності Bun.
На противагу цьому, Rust пропонує модель власності (ownership) та borrow checker, який виявляє більшість помилок пам'яті вже на етапі компіляції. Це означає, що багато багів, які в Zig проявлялися б лише під час виконання, в Rust виявляються одразу після написання коду.
Це рішення особливо цікаве в контексті того, що команду Sumner придбала Anthropic у грудні 2025 року. Незважаючи на доступ до найкращих AI-моделей Anthropic, він все одно вирішив мігрувати на Rust — це чіткий сигнал, що проблеми Zig були глибокими та фундаментальними.
Claude Fable 5 — 11-денний марафон 64 інстанцій
Найвражаючою частиною проєкту є його масштаб. Sumner використав передрелізну версію Claude Fable 5 від Anthropic. 64 інстанції Claude працювали паралельно протягом 11 днів, пишучи код, рецензуючи його та систематично перекладаючи всю кодову базу Bun з Zig на Rust.
API-біллінг склав приблизно $165,000 — серйозна сума, але для порівняння, річна зарплата людської команди коштувала б щонайменше $500,000 і, ймовірно, досягла б $1-2 мільйонів. AI-переписування не лише заощадило 95% часу, але й виявилося значно ефективнішим фінансово.
Таке масштабне AI-асоційоване переписування — перше в своєму роді. Раніше AI використовували в основному для написання невеликих фрагментів коду або виправлення окремих багів. Переписування Bun демонструє, що AI тепер може виконувати структурну міграцію цілих проєктів з однієї мови програмування на іншу.
Технічні виклики міграції
Перехід з Zig на Rust є технічно складним процесом. Хоча обидві мови є низькорівневими та використовують подібні підходи до управління пам'яттю, між ними існують фундаментальні відмінності:
- Memory Model: Zig використовує більш вільний підхід до управління пам'яттю, тоді як Rust використовує ownership/borrowing, що значно підвищує безпеку, але вимагає більшої уваги під час написання коду.
- Ecosystem: Rust має набагато більшу та зрілішу екосистему, включаючи Cargo (менеджер пакетів), crates.io (реєстр) та широкий арсенал інструментів.
- Concurrency: Модель async/await в Rust є більш досконалою, що особливо важливо для JavaScript-рантайму, який постійно працює з I/O.
- FFI (Foreign Function Interface): Bun потребує тісної інтеграції з JavaScript-двигуном (переважно JavaScriptCore від WebKit) через FFI. Інструменти FFI Rust, такі як bindgen, значно полегшують цей процес.
Claude Fable 5 мав не лише буквально перекласти код з Zig на Rust, але й забезпечити дотримання ідіоматичних практик Rust, щоб отриманий код був не лише функціональним, але й легким у підтримці та розвитку.
Bun v1.4.0 — 128 багів виправлено, 2-5% швидше
Новий Rust-базований Bun v1.4.0 вже доступний як canary-реліз. Незважаючи на повне переписування, нумерація версій продовжує стару послідовність, що вказує на мінімальні зміни на рівні API — для користувачів все має працювати як раніше, але стабільніше.
128 виправлених багів свідчать про серйозність проблем, пов'язаних з пам'яттю в версії Zig. Компілятор Rust виявив багато з цих проблем під час збірки, але 128 багів все ж потрапили в рантайм — це означає, що проблеми були настільки глибокими, що навіть гарантії безпеки Rust не змогли автоматично виявити всі.
Покращення продуктивності на 2-5% не є драматичним, але це перша версія на Rust. У міру того, як команда освоюватиме екосистему Rust і почне оптимізувати код, цілком реальним є покращення на 10-20% або більше.
Що це означає для українських розробників?
Переписування Bun містить кілька важливих уроків для українських розробників та технологічних компаній. Rust стає все більш важливим — коли такий значний проєкт, як Bun, мігрує на Rust, це сигналізує, що навички Rust ставатимуть дедалі ціннішими на ринку праці. Крім того, здатність AI виконувати масштабні міграції коду між мовами програмування є особливо актуальною для бізнесів із застарілими кодовими базами.
Вибір мови програмування залишається критичним для довгострокових проєктів, і хмарний AI виявляється дешевшим за людську працю — $165,000 може здаватися великою сумою, але це лише частка того, що коштувала б людська команда.
Висновок — Нова ера співпраці AI та людини
Переписування Bun з Zig на Rust за допомогою Claude Fable 5 є історичним моментом у програмній інженерії. 64 інстанції Claude, які за 11 днів і $165,000 переписали понад 1 мільйон рядків коду, довели, що AI може виконувати завдання, які раніше вважалися винятковою прерогативою людських інженерних команд.
Це не означає, що розробники більше не потрібні — навпаки, керування AI, його спрямування та контроль залишаються людською відповідальністю. Але такі завдання, як переклад коду між мовами програмування, вже переходять у компетенцію AI.