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 ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.