LINUX.ORG.RU

Bun 1.4

 , , , ,


0

4

Представлен выпуск платформы Bun 1.4, предназначенной для обособленного выполнения приложений, написанных на языках JavaScript и TypeScript, и нацеленной на использование в качестве прозрачной замены платформы Node.js. Ветка 1.4 примечательная переводом кодовой базы с языка Zig на язык Rust, осуществлённым с использованием AI-инструментов Claude. Код продолжает распространяться под лицензией MIT.

В качестве причины переписывания на Rust отмечается желание устранить проблемы в Bun, вызванные утечками памяти, а также наличие разногласий с авторами Zig в плане применения AI для написания кода и неприемлемая для крупных проектов политика Zig в отношении принятия в язык изменений, нарушающих совместимость. В качестве главного преимущества перехода на Rust упоминается возможность отлавливания и предотвращения ошибок при работе с памятью, диагностика которых последние годы отнимала у разработчиков Bun много времени.

Судя по проведённым тестам, версия на Rust потребляет на 13-48% меньше памяти, запускается в два раза быстрее и до 5 раз меньше нагружает CPU в режиме простоя. Размер исполняемого файла в версии на Rust сократился на 17%. При запуске при помощи Bun 1.4 приложения Claude Code нагрузка на CPU уменьшилась в два раза.

В состав включено 1517 дополнительных тестов для проверки совместимости и устранено более 2900 проблем. В базовую поставку добавлены новые библиотеки Bun.Image, Bun.WebView, Bun.markdown, Bun.cron() и Bun.Terminal. В командах bun run и bun test реализован режим параллельного запуска (--parallel). Обеспечена совместимость с фреймворками Next.js 16 и vitest.

Проект Bun поддерживает большую часть API Node.js. В состав платформы входит набор инструментов для создания и выполнения приложений на языках JavaScript и TypeScript, а также runtime для выполнения JavaScript-приложений без браузера, пакетный менеджер (совместимый с NPM), инструментарий для выполнения тестов, система сборки самодостаточных пакетов и прослойка для встраивания обработчиков, написанных на языке Си. По производительности Bun заметно обгоняет Deno и Node.js (в тестах на базе фреймворка React платформа Bun в 2 раза опережает Deno и почти в 5 раз Node.js). Для выполнения JavaScript задействован JavaScript-движок JavaScriptCore и компоненты проекта WebKit с дополнительными патчами.

>>> Источник: OpenNET

★★★★★

Проверено: CrX ()
Ответ на: комментарий от LightDiver

И это абсолютно никак не может колебать создателей языка. Даже если я пишу все через жопу - это мое личное мнение. Хочу я так. Я никому никаких обязательств не давал и договоров с ними не подписывал.

Ну ты так думаешь. А вот в Rust помню была история, когда была популярная библиотека actix-web, написанная Николаем Кимом. Она была очень быстрая, но Николай использовал много блоков unsafe. Его затравили и в конце концов он просто выбросил эту библиотеку. Тут, конечно, не разработчики языка были виноваты, а просто какие-то глупые интернет-проходимцы. Но фактически ситуация схожая. Ты просто пишешь хороший и быстрый код, отдаёшь его людям, а люди устраивают травлю из-за того, что ты пишешь не так, как принято.

Но они деньги брали, замечу.

Как я понимаю, они брали деньги, как добровольные пожертвования, без каких-то дополнительных обязательств с их стороны. Хотя, конечно, когда тебе платят десятки тысяч долларов в год, ты всё равно будешь прислушиваться к тому, кто тебе эти деньги платит, даже если формально ты обязательствами и не связан.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Например ты пишешь код настолько отвратительно, что качество твоего проекта бросает тень на используемые технологии. Например из наличия кучи багов в Bun люди могут подумать, что это из-за того, что он написан на Zig, а не из-за того, что программисты Bun плохие (это всё я просто придумал, вообще без понятия, сколько там багов в Bun и Zig и кто в чем виноват, это просто пример).

Судя по всему, вы недалеки от истины в этом вопросе. На форуме Buz - A drop-in replacement for Bun using modern Zig, with sub-1s incremental builds автор форка Buz обещает выкатить версию 1.4 сходную по фичам с Bun 1.4. До этого как раз занимался чисткой кода и архитектурными вопросами.

Кратко по отличиям Buz от Bun (🤖):

  1. Разработчики Buz считают, что проблемы Bun крылись не в самом языке Zig, а в «грязном» коде оригинального автора. В Zig управление памятью полностью контролируется вручную через передачу аллокаторов в функции. Buz решает проблему стабильности за счет удаления более 11 000 строк «мертвого» и хаотичного кода, накопленного в Bun, сохраняя при этом жесткий контроль над выделением каждого байта.

  2. Zig обладает нативной, бесшовной совместимостью с C/C++. Архитектура Buz позволяет компилировать JavaScriptCore и библиотеку ICU напрямую из исходного кода вместе с самим рантаймом.

  3. Buz переведен на актуальную master-ветку языка Zig. Проект задействует обновленную систему инкрементальной компиляции Zig, что позволяет пересобирать рантайм быстрее чем за секунду. Это радикально ускоряет процесс тестирования и исправления багов внутри самого движка.

  4. Автор форка заявляет о намерении жестко очистить проект от «AI-слопа» (низкокачественного сгенерированного кода). На данном этапе Buz сознательно не принимает пул-реквесты, написанные людьми, пока архитектура ядра не будет полностью приведена в порядок силами мейнтейнера и специализированных детерминированных скриптов.

necromant ★★★
()
Ответ на: комментарий от necromant

Вот это конструктивный подход. А там история рассудит, кто был прав. Иногда меня опен-сорс восхищает. А ведь без открытых лицензий это всё было бы невозможно.

vbr ★★★★★
()
Ответ на: комментарий от necromant

На данном этапе Buz сознательно не принимает пул-реквесты, написанные людьми

Так так так, а ИИшками?

архитектура ядра не будет полностью приведена в порядок силами мейнтейнера и специализированных детерминированных скриптов.

Ааа.. Вот и ИИшки.

LightDiver ★★★★★
()
Ответ на: комментарий от vbr

Иногда меня опен-сорс восхищает. А ведь без открытых лицензий это всё было бы невозможно.

Меня иногда опенсорс приводит в ужас. Как идея в целом, где кто то может требовать от тебя - что ты можешь делать с кодом на своем компе, а что не можешь. Диктовать - как именно ты должен применять алгоритмы и имеешь ли на это право.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

там всех не принимают - до момента пока не почистят достаточно и не приведут в порядок. Хороший момент для рефакторинга.

Диктовать - как именно ты должен применять алгоритмы и имеешь ли на это право.

Да никто особо не диктует: твой форк - твои правила. Просто складывается репутация определенная у человека 🤷‍♂️

necromant ★★★
()
Ответ на: комментарий от necromant

Да никто особо не диктует: твой форк - твои правила. Просто складывается репутация определенная у человека 🤷‍♂️

Смотря что за лицензия. Каждая лицензия что то, да и ограничивает. Ну почти. Где то запрещается закрывать код, где то распространять без указания, бывает и похуже - создавать конкурирующие продукты.

Я вот вспоминаю Зирокс и ее «гениальную идею» запатентовать иконки в софте и судиться со всеми подряд.

LightDiver ★★★★★
()
Ответ на: комментарий от VIT

А что с продуктивностью, есть уже внятные исследования? С выхода гпт5.2 немало времени прошло, можно бы и намерить уже что-то.

BruteForce ★★★★
()
Ответ на: комментарий от BruteForce

Я сам не очень большой любитель измерять продуктивность, поскольку дело это мутное, часто субъективное, и редко выполняется непредвзято. Могу сказать про то, с чем имею дело сам.

  • Сегодня любое исследование в области создания новых материалов так или иначе является созданием новой DL-модели с поиском недостающих звеньев в свойствах. С помощью модели находят кандидат на нужные свойства, просчитывают, доводят до нужного и синтезируют. Иначе делать стало просто бессмысленно. Раньше просто тупо брали тот материал, который доступен и притягивали к тому, свойства которого нужно. Уходило годы.

  • Я выполняю много ревью. В среднем на статью в 10 страниц уходило от 3 до 4 часов чистого времени. При этом я не могу позволить себе сидеть три полных часа над статьёй, поэтому приходится прерываться, а продуктивность тут же падает, переключаешься. Сейчас я кормлю статью модели, задаю стандартные вопросы - резюме, новизна, преимущества, недостатки, предложения по улучшению. Потом читаю, но уже знаю, что ожидать и на что обратить внимание. Потом пишу текст. В целом на всё про всё у меня уходит час - полтора.

Ну а при желании конечно можно найти и формальные исследования. MIT является для вас надёжным источником исследований?

https://economics.mit.edu/sites/default/files/inline-files/draft_copilot_experiments.pdf

VIT ★★★
()
Ответ на: комментарий от VIT

Я не про ml, я только про бям и разработку.

А субъективно-то и я считаю, что иногда мне быстрее выполнить какую-то задачу с бям.

BruteForce ★★★★
()
Ответ на: комментарий от BruteForce

Ревью является задачей с БЯМ. Код, к сожалению, я уже практически не пишу, так, для иллюстрации. Портирование, тюнинг, тестирование всё ещё делаю, но чаще руками других.

VIT ★★★
()
Ответ на: комментарий от CrX

Имхо безотносительно к тому, о какой программе идет речь, если (основное) достоинство программы, это ЯП или фреймворк, на котором она написана, это мусор, убогая ненужная программа.

Да, если программа написана на том, что ты знаешь, это ей плюс, с ней легче разобраться. Но основное все таки должно быть в том, что она делает.

usermod ★☆
()
Ответ на: комментарий от BruteForce

Он отлаживает очень лихо, я отладку плохо перевариваю. Хорошо разбирает секьюрити репорты, в которых через раз бред. И умеет писать вежливые ответы с посыланием на три буквы аффтарам этих репортов.

В общем, на БЯМ можно сгружать скучную рутину, которая просто срёт в мозг, никак его не развивая, а самому думать о великом :)

Vit ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.