Авторът на платформата Bun провежда експеримент за пренаписване от Zig на Rust

Джарред Самнер (Jarred Sumner), създателят и основен разработчик на сървърната платформа на JavaScript Bun, е създал Git клон, в който започнал преработката на Bun от езика Zig на Rust. Преработката се извършва с помощта на AI асистент Claude, за който е формулирано отделно ръководство за портирaне. Според Джарред, това все още е само експеримент, а не официален порт, и вероятността да се стигне до нещо повече от експеримент е висока, а преработеният код може да не бъде използван.

Портироването все още не е завършено, и на настоящия етап целият интерес към проекта е насочен към оценка на това колко работоспособен ще се окаже портът, дали ще премине тестовете на основния проект и колко трудно ще бъде поддържането на новия код. В крайна сметка се планира провеждане на сравнително тестване на версиите на Bun на Zig и Rust.

В декември миналата година проектът Bun беше придобит от компанията Anthropic, така че Джарред има ресурси за ангажиране в портироването на напреднали AI модели Claude. Платформата Bun се използва в продуктите Claude Code и Claude Agent SDK, и компанията Anthropic има интерес да подобри качеството и развитието й. Bun е един от най-успешните проекти на езика Zig, като разработчиците на Zig и Bun имат различия в мненията относно използването на AI в процеса на разработка. В проекта Zig има строго забраната за използването на големи езикови модели при подготовка на pull заявки, въпроси и коментари (дори е забранен преводът чрез AI на неанглийски коментари).

Въвеждането на подобни ограничения се обяснява от разработчиците на Zig с негативния опит от рецензирането на pull заявки, създадени чрез AI, които отнемат ресурси и време (например, се забелязват безсмислени промени, AI халюцинации и раздути комити от 10 000 реда). Освен това, проектът Zig се позиционира като ориентиран към участниците, а не само към техния принос в разработката — основната цел на приемането на pull заявки е не добавянето на нов код, а помощта в развитието на новите участници.

Автор Bun не е съгласен с забраната на AI в Zig и смята, че AI-слоп ще остане носталгичен спомен от 2025 и 2026 година, а разработката на отворен софтуер ще еволюира до забрана за приемане на код от хора. Хората ще обсъждат проблеми, ще задават задачи и ще определят приоритети, а написването на код и изпращането на промени в репозиториите ще стане работа на AI. Като причина за експериментите с пренаписването на Rust също се посочва желанието да се отстранят проблемите в Bun, причинени от течове на памет, и неприемливата за големи проекти политика на Zig относно приемането на изменения, които нарушават съвместимостта.

Заради забраната за използване на AI, разработчиците на Bun са принудени да поддържат собствен форк на инструментария Zig, в който благодарение на приложението на AI успяха да ускорят компилацията четири пъти чрез паралелизиране на семантичния анализ и генерирането на код. В същото време, според коментара на един от разработчиците на Zig, причината за отхвърлянето на патчовете не е в AI, а в това, че паралелизирането на семантичния анализ засяга не само компилатора, но и самия език — за да се реализира предложената функционалност без грешки и несъвместимости, е необходимо да се направят изменения в езика Zig. Вместо паралелизиране, разработчиците на Zig развиват инкрементална компилация, която по тяхно предположение ще позволи значително да се увеличи скоростта на компилация.

JavaScript платформата Bun се развива като високопроизводителен аналог на платформите Node.js и Deno. Проектът се разработва с оглед на осигуряване на съвместимост с серверни приложения за Node.js и поддържа голяма част от API на Node.js. В състава на платформата влиза набор от инструменти за създаване и изпълнение на приложения на езиците JavaScript и TypeScript, както и runtime за изпълнение на JavaScript приложения без браузър, пакетен мениджър (съвместим с NPM), инструментарий за изпълнение на тестове, система за изграждане на самодостатъчни пакети и слой за вграждане на обработвачи, написани на езика C. По производителност Bun значително изпреварва Deno и Node.js (в тестове на база фреймворка React, платформата Bun е два пъти по-бърза от Deno и почти пет пъти по-бърза от Node.js). За изпълнението на JavaScript се използва JavaScript двигател JavaScriptCore и компоненти на проекта WebKit с допълнителни пачове.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster