Комментарии 19
Не хочу показаться "душным", но:
Среда разработки и среда выполнения мне кажется не одним и тем же.
Забавный факт: название компании-разработчика — Oven — переводится с английского как «духовка». Соответственно, Bun — это «булочка, испеченная в духовке»
Ещё bun in the oven это очень распространенная идиома и тоже кое-что значит)
Вижу будущее за Bun по многим причинам. В первую очередь потому что его легко деплоить. С нодой все совсем не просто, и даже node distribution не помогает, а наоборот иногда ломает пакеты.
Когда вбиваю в ubuntu apt-get install npm и вижу список зависимостей - плакать хочется. npm работает ну очень медленно.
Видно что развитие идет. Если раньше у меня ничего не запускалось с крашем в sigfault то сейчас постепенно все начинает подниматься.
Удачи проекту
А я не вижу вау-фичи, ради которой стоит переходить на bun. Ок, мы получили доказательство концепта о необходимости бинарных пакетов для быстрого запуска приложения. Все выиграют, если сотрудники из Node Foundation имплементируют наработки Bun в свою кодовую базу. Такое уже было с теми же package-lock файлами, которые были впервые опробованы в yarn. Теперь очередь за бинарными пакетами, низкоуровневыми оптимизациями на zig и возможность переключиться на JSC в любой момен . Продвигать продукт нуля и делать его мейнстримом у команды энтузиастов вряд ли получится.
Если нужно приложение упаковать в контейнер, то как я понимаю npm будет всё таки лучше?
Ему не нравились технологии, которые были на тот момент, — он хотел создать что-то свое. Так Райан пришел к модели, которая сейчас лежит в основе Node.js, — асинхронности и event loop.
Хорошо, что он не захотел что-то свое и не изобрел велосипед. Асинхронность и event loop это базовые принципы JS, которые, разумеется, идут в комплекте с v8.
Событие стало громким для индустрии, и Node.js быстро начал обрастать своей экосистемой. В 2010 году появился пакетный менеджер, в 2011 году он был импортирован под Windows.
Кого импортировали, куда, а главное, откуда?
В десятки раз быстрее Node.js и Deno
Нативная поддержка JavaScript.
Действительно одно из ключевых преимуществ для среды выполнения JS, не поспоришь.
Богатый набор встроенных Web API
Ни в node, ни в bun нет Web API. Потому что это API клиентской части, а bun/node - серверной.
Одним словом, статья про выбор среды для разработки (точнее для интерпретации кода, судя по всему), а по факту - замер в установке пакетов. Ни реальных кейсов разработки, ни особенностей api, ни низкого уровня. Однако, для вайти, где разработка заканчивается установкой пакетов (опционально, замером времени скачивания) - неплохо.
Обычно перформанс показывают на всяких npm install vs bun install и оно действительно в десятки раз быстрее для разработчика. Сам код примерно настолько же производителен как у того же V8 и производительность растёт просто из-за уменьшения Memory Footprint. Ну и ко всему часть API у bun ещё пока нетронута и вполне может быть медленее, чем у node/deno. Кажется где-то на хабре была статья со сравнением 1.0 версии.
Какая та мутная статья и оч старая, Bun даже на ощупь заметно быстрее ноды, да и чисто физически нода не может быть быстрее Bun, ибо на ноде часть дефолтных либ написаны на самом js, тогда как в Bun они написаны на Zig.
Если нода тоже перепишет свои либки с js на C++, то возможно, разница между нодой и Bun будет незначительной. На данный момент Bun вывозит чисто подобными моментами, это вопрос времени, вон нода тоже шевелится и тоже чето там переписывают, буквально на неделях, подвезли нативный ts (пока экспериментально, но это вопрос времени)
Ни в node, ни в bun нет Web API. Потому что это API клиентской части, а bun/node - серверной.
Конечно, Web API в прямом смысле этого слова нет да и никто так не говорил, с этим можно ознакомиться тут
p.s в статье слишком много громких слов, если не предвзято смотреть на Bun, почему нет, достаточно хороший рантайм, многие js фрейморки давно уже предлагают через него создавать проекты, экосистема растет, да вон даже нода наконец пошевелилась, одни плюсы
В десятки раз быстрее Node.js и Deno.
Тоже пробовал bun и сравнивал с nodejs, после того как увидел рекламу, что bun якобы быстрее. Собственно, runtime bun может работать и быстрее старых версий ноды, но с версии nodejs@12-14 все преимущество сходит на нет, последние версии ноды уже работают быстрее bun. Поискав по форумам, нашел информацию, что якобы bun быстрее для server-side-rendering приложений, вообщем, какие-то оправдания, которые толком нельзя протестировать. Для себя я сделал вывод, что заявления о более высокой скорости bun, не соответствуют действительности.
Bun написан на языке Zig. Это альтернатива C++ и Rust. Zig предоставляет низкоуровневые возможности для ручной работы с памятью, за счет чего появляется возможность оптимизировать вообще все элементы платформы.
Если хотите увеличить производительность, можно использовать WebAssembly, прекомпиляция и низкоуровневая строгая типизация могут дать понятное преимущество при грамотном использовании, это не какой-то там Zig с помощью которого разработчики bun якобы творят чудеса оптимизации.
Это альтернатива C++ и Rust.
Это альтернатив C, все же. Zig слишком прост, чтобы быть на том же уровне что и вышеупомянутые языки и подходы как к управлению памятью, так и структурируванию кода ближе к C или Go.
Самый известный минус этого рантайма — Bun нет на Windows.
буквально на днях вышел 1.1 релиз, где оно теперь и под винду работает. Теперь можно
powershell -c "irm bun.sh/install.ps1 | iex"
и погнали
Bun хорош. Но разработку думаю лучше делать на node . Так как если писать под bun то может получится что не будет работать под node. А возможности работать и там и тут очень большой плюс
Под bun vuejs проекты не собираются. Использую его в пайплайне для вычитки пакетов из сети, но выполнение сборки всё равно на ноде...
Нативная поддержка JavaScript.
Вероятно, имелся в виду TypeScript
Выбираем среду для разработки: сравнение Bun.js и Node.js