Bun 1.0: вместо Node.js?
Сегодня посмотрим на свежий релиз Bun 1.0 (замену Node js), обзор на который я уже делал ранее. Посмотрим на то, зачем он нужен и как он будет работать с реальными проектами.
🔗 Ссылки:
Предыдущее видео по Bun: • Bun JavaScript runtime...
🎉 Курс по Node.js: purpleschool.ru/course/nodejs
💬 Telegram канал с полезными советами:
t.me/purple_code_channel
Разделы видео:
0:00 - Введение
0:12 - О видео
1:06 - Зачем нужен Bun
6:27 - Установка
7:59 - Создание Bun проекта
10:53 - Управление пакетами
13:19 - Скорость установки
16:37 - Проблемы установки
17:18 - Тест производительности на примере Nestjs
22:55 - Заключение
Пікірлер: 139
Традиционный результат любого яп/фреймворко-холивара - упор в бд)
@pryanik150
8 ай бұрын
Это оказалось весомой причиной, почему в наших проектах мы храним все в памяти приложения
@keefear1546
8 ай бұрын
@@pryanik150 представляю как все данные пропадают при нештатной перезагрузке приложения. Или пару ТБ оперативки, не у всех же данные в килобайтах измеряются
@pryanik150
8 ай бұрын
@@keefear1546 есть решения перечисленных вами проблем, на том же Хабре имеются статьи на данную тему
@PurpleSchool
8 ай бұрын
Всё решается быстрым in memory кэшом с ревалидацией при необходимости высокого RPS
@IT_T_
8 ай бұрын
@@PurpleSchoolчто то на фэнтези языке?)
Спасибо за ролик) как и обещали выпустили вовремя. Начало старта напоминает как и по node js, изначально также не работал на windows))) в целом было интересно ознакомиться и посмотреть на реальном примере, но пока юзать рановато как по мне. Время уверен расскроет его полностью и бцдет еще больше фидбеков, однозначно следить стоит за его развитием😎
@PurpleSchool
8 ай бұрын
Верно)
@elpsykongr00
7 ай бұрын
Увы, не drop-in, некоторые специфичные проекты у меня не заводятся под bun, но пашут под nodejs (Один из них скорее всего из-за предсобранного .node пакета, второй хз, в issues оба закинул в любом случае)
А вот теперь, когда булочка поддерживает всё, что на node работает, то к нему реально можно присмотреться как к альтернативе. Спасибо за ролик👍
@PurpleSchool
8 ай бұрын
Пожалуйста!
@user-cg1pq2kh6t
3 ай бұрын
врядли, вас забанят на проекте
@chorny33
3 ай бұрын
@@user-cg1pq2kh6t в смысле?
@Frestein
16 күн бұрын
@@user-cg1pq2kh6t clown.
Невероятная стоимость :)
спасибо за обзор новшеств. А почему вы не используете в линуксе команду: time npm ci которая точно покажет время выполнения того что после него. Или вот так: time { cmd1 args; cmd2 args; } если разных команд несколько
@PurpleSchool
8 ай бұрын
Спасибо за замечание, да, не подумал о ней
@ledest
8 ай бұрын
Не подкалывай говнокодера:)
@purpleschool курс по булочке планируется? (сорян, если в видео упоминается, пишу коммент в процессе просмотра)
@PurpleSchool
8 ай бұрын
Нет, пока рано для курса)
Коммент не по теме, но хотелось бы поинтересоваться у Вас, когда планируется и планируется ли вообще видео про вашу сборку на nvChad? :)
@PurpleSchool
8 ай бұрын
Будет обязательно, но по срокам сложно сказать
для меня основная фича бана --- запуск ts без компиляции и возможность использовать path в ts config без заморочек
@PurpleSchool
8 ай бұрын
Да, это приятно
@sergeywhite8897
5 ай бұрын
А node_modules при использовании bun, компилированные устанавливаются или чистый ts, как в репозитории?
@Vedmalex
5 ай бұрын
@@sergeywhite8897 обычные модули, все работают как обычно,только файлы ts
Скажите пожалуйста, как повлияет на React-Native приложения, он ускорит работу приложения?
Привет можеш подсказать как разработчик смотри я хочу стать backend разработчиком и не давно изучил rest api на nodeJS и немного изучил Laravel или прейти на NestJs не могу определиться выбором помогу мне все нравится но какой из них ты бы посоветовал
@PurpleSchool
7 ай бұрын
Я всегда советую Nest.js) Но Laravel тоже неплох. Курсы по Node и Nest: purpleschool.ru/course/nodejs purpleschool.ru/course/nestjs
🔗 Ссылки: Предыдущее видео по Bun: kzread.info/dash/bejne/fKWYrY-vj9uofaQ.html 🎉 Курс по Node.js: purpleschool.ru/course/nodejs 💬 Telegram канал с полезными советами: t.me/purple_code_channel
Интересный софт. Первый раз увидел ролик о нем. Нужно будет попробовать. Но мне кажется в веб проектах он упрется не только в бд, но и в сеть. А вот быстрый запуск и в целом более быстрая работа в электроне или реакт-нейтиве на мобилках может быть вкусной.
@PurpleSchool
8 ай бұрын
Поддерживаю
запиши пожалуйста видео про esm модули. Как с ними работать, как настраивать сборщики. Как работать на ноде с ними. Штука популярная, но как-то сложно разобраться
@TimurSevimli
8 ай бұрын
Вообще ноде принято и так же эффективно работают common модули. Но есть вы хотите работать на esm модулях, то вам это нужно прописать в package.json и все
@PurpleSchool
8 ай бұрын
У меня в курсе есть детальный разбор работы всех типов модулей: purpleschool.ru/course/nodejs
Очень полезное видео! Хотя я бы сказал, что нельзя назвать полноценным релизом выход версии, которая работает только на Mac и Linux, но не работает на Windows
@dpelipen
8 ай бұрын
Может оно и к лучшему)
@Lear-fe6se
8 ай бұрын
@@dpelipen знаю немало разработчиков, которые работают на Windows Получается, у них нет возможности попробовать Bun, хотя на ютубе уже каждый связанный с темой блоггер выпустил видео про «официальный релиз» технологии
@alexmalex7689
8 ай бұрын
WSL поднимаем и никаких проблем
@alexmalex7689
8 ай бұрын
@@Lear-fe6seесть, читай мой коммент выше
@dpelipen
8 ай бұрын
@@Lear-fe6se Пример не очень показательный, но все же. Пытался как-то настроить Clojure на Windows и нормально не завелось, а на Linux все заработало через 5 минут, возможно создатели Bun так же думали). Хотя, нода на Windows работает отлично и думаю, что и для винды скоро будет доступен Bun
А можно ли его как докер контейнер поставить?
@PurpleSchool
8 ай бұрын
Конечно, там есть даже базовый образ.
@chorny33
8 ай бұрын
@@PurpleSchool не встречалась ли тебе версия 1.0 для alpine или на ubuntu? Или как такую собрать, не знаешь?
@PurpleSchool
8 ай бұрын
Все их образы тут: hub.docker.com/r/oven/bun/tags
@chorny33
8 ай бұрын
@@PurpleSchool спасибо. Правда там нет сборки под alpine, но я уже нашёл решение
Скажите плиз что у вас за тема vscode + тема папочек подалуйстаа
@zzzaratustra
8 ай бұрын
Это neovim, а не vs
@UC1C0GDMTjasAdhELHZ6lZNg
8 ай бұрын
Это не vscode. Неовим, видео на канале есть.
@luckytima2315
8 ай бұрын
@@UC1C0GDMTjasAdhELHZ6lZNg спасибо!
@PurpleSchool
8 ай бұрын
NeoVim с темой Tokio Night
@luckytima2315
8 ай бұрын
@@PurpleSchool 😍
У меня так и не получилось завести его в dev режиме, проблема с декораторами
@StrikerFeed
8 ай бұрын
Да, он не поддерживает emitDecoratorMetadata
@PurpleSchool
8 ай бұрын
Да, в dev режиме к сожалению нет
@Disorrder
8 ай бұрын
А Как не в дев режиме тогда? Руками что ли перезапускать? Или в чем разница?
@izzei-1614
8 ай бұрын
@@Disorrder Если и правда не поддерживает emitDecoratorMetadata, то тебе нужно сначала код на декораторах транспилировать в код без этих декораторов с emitDecoratorMetadata: true параметром. Делать придется ручками :)
@StrikerFeed
8 ай бұрын
@@izzei-1614Проще дождаться поддержки, на гитхабе открыта ишью по этому поводу
надеюсь ветку devops вы тоже будете прокачивать своими видево))
@PurpleSchool
8 ай бұрын
Да, следующий курс будет по Kubernetes
@Emerson-er1ne
8 ай бұрын
@@PurpleSchool очень жду!!!
последние несколько лет все шли в сторону декомпозирования, распределения зависимостей, ООП и вот это вот всё. А тут внезапно появился bun, который такой типа мимикрирует под дельфина "в *опу вашу эволюцию, я обратно в океан".
@aleksandrkim550
8 ай бұрын
Наверное это потому что bun больше платформа, а нода как каркас
Используем Bun в стартапе, как раз когда дойдём до прода, будет уже стабильный. Для нас самый главный плюс это время холодного старта (юзаем serverless), у Bun оно в разы быстрее, даже при использование фреймворков ноды, а если начать по полной обузить bun api, то разница в 10+ раз Ну а рантайм +- одинаково быстрый, бутылочное горлышко в большинстве задач это не нода, как и сказано в видеоролике.
@PurpleSchool
8 ай бұрын
Круто. Для serverless да, думаю будет отличное решение.
А в документации написано что он с некстом без node.js все равно не работает.
@PurpleSchool
8 ай бұрын
Как оказалось работает) Но не в dev режиме
Если уж сравнивали скорость npm i, то и pnpm надо было тестировать. Это сейчас основный пакетный менеджер.
@PurpleSchool
6 ай бұрын
Основной по какому критерию?
@ruslanmakarov7049
6 ай бұрын
@@PurpleSchool Вы сравниваете скорости инстола и повторного инстола? Вот по этому критерию.
@PurpleSchool
6 ай бұрын
@@ruslanmakarov7049 вы написали что он основной пакетный менеджер. Если по скорости да, но сравнивать его с npm к сожалению нельзя, так как другой принцип хранения пакетов (централизованный), что вызывает у Prisma проблемы. И он не так распространен как npm.
@ruslanmakarov7049
6 ай бұрын
@@PurpleSchool JQuery среди работающих вебсайтов тоже распространен раз в пять больше, чем, скажем, Реакт, что не делает его не устаревшим. Мне кажется, среди серьезных проектов использование npm по сравнению с yarn или pnpm сейчас очень небольшое. И даже среди небольших проектов у серьезных разработчиков, ценящих свое время и место на диске.
@PurpleSchool
6 ай бұрын
@@ruslanmakarov7049 у меня нет такой статистики по активному использованию pnpm, особенно с учётом проблем
Сам себе придумал проект: bun + FFmpeg + интерфейс для всего этого. Скачивание видео с ютуба, конвертация, объединение, обработка видео. Попробуйте, чем не идея для пет проекта.
@oldiBerezkoo
8 ай бұрын
Бесполезно, и сложновато
@PurpleSchool
8 ай бұрын
У нас в курсе по TypeScript есть похожий проект кстати)
@UC1C0GDMTjasAdhELHZ6lZNg
8 ай бұрын
@@oldiBerezkoo а у вас какие идеи есть?
@Disorrder
8 ай бұрын
Ох. Щас бы на ноде видео обрабатывать. Попробуй лучше rust для этой цели. Он тебе пригодится для Tauri
@sine_tempore
8 ай бұрын
@@Disorrderffmpeg биндинги на ноде вызывают сишный код, так что почему нет
Bun очень интересное решение, в первую очередь для ускорения разработки в микро моментах. Но есть мнение, что со временем, как часто бывает с фреймворками и альтернативными решениями, Bun и Node сравняются в определенном диапазоне. Пока есть "чистые" реализации стандартных методов, более оптимизированные решения, bun будет выигрывать. Но, когда Bun станет более массовым, разработчикам придется делать заплатки безопасности в короткие сроки. А так же, добавлять новые фичи, в том числе и дополнительные проверки для безопасности. Останется ли Bun таким же быстрым, при этом всем - хороший вопрос. Команда Node гораздо больше, и если они будут идти в ногу со временем, брать лучие фишки того же Bun и добавлять в "коробку" Node, то Нода останется более попсовым, более общепринятым инструментом. В любом случае, любая конкуренция дает поле для совершенства, спасибо за ревью. В эти еженедельные выпуски чувствую себя, будто на мини хакатоне, чего сильно не хватает в моей компании)
@PurpleSchool
8 ай бұрын
Спасибо! Я тоже считаю, что основная цель - конкуренция. Node быстро развивается и будет догонять.
кто-то docker уже настраивал под бан?
@PurpleSchool
8 ай бұрын
Только для теста, в целом есть базовый image hub.docker.com/r/oven/bun
@Anatoly8818
8 ай бұрын
@@PurpleSchool да видел, спасибо. на next.js вылезло куча проблем, с горем пополам собрал образ, но команду run build все равно только с помощью ноды пришлось выполнять( проект с нуля разворачивал
Посмотрел сегодня bun на рабочем проекте. Ускорение +20%. Задача - загрузка и обработка данных из JSON/XML файлов. Казалось бы задача для CPU. Вообщем для меня он не нужен (((
@PurpleSchool
8 ай бұрын
20% тоже неплохо
Все hr в россии: "от 3 лет опыта разработки на bun"
@PurpleSchool
5 ай бұрын
😄
Наконец-то выкатили пельмень
@PurpleSchool
8 ай бұрын
👍
@Disorrder
8 ай бұрын
Хинкалина 😂
а как же 98 ошибок? Первый проект так и не запустился
@PurpleSchool
8 ай бұрын
Я вернул зависимости и го запустил.
Очень багованная и часто падает с segmentation failed
@PurpleSchool
8 ай бұрын
Да, будем ждать развития
двухсекундная повторная установка пакетов - вообще не аргумент. Во-первых как часто вам нужно повторно исталлить пакеты? Во-вторых, если вдруг такая необходимость появилась, то скорее всего вы хотите, установить немного другие пакеты или другие версии пакетов и кеш будет только мешать
@PurpleSchool
8 ай бұрын
Часто нужно скачать очередной микросервис и на него поставить пакеты. И как раз в таком подходе пакеты уже ранее были скачаны для другого микросервиса.
@mclotos
8 ай бұрын
@@PurpleSchool если они уже были скачаны, то они и так уже скачаны. Опять же в чём профит?
@PurpleSchool
8 ай бұрын
Они скачаны для другого микроскрвиса. И за счёт кэша быстро установится для текущего.
@mclotos
8 ай бұрын
@@PurpleSchool то есть хотите сказать, что у вас все микросервисы лежат на одном хосте, раз у них есть доступ к общему node_modules? Тогда это никакие не микросервисы, ибо вы не можете в любой момент времени вынести любого из них на отдельную ноду или хотя бы перезагрузить один из них, не трогая другие
@mclotos
8 ай бұрын
@@PurpleSchool в общем тут можно спорить бесконечно. Но я вообще слабо себе представляю, что у микросервисов может быть общая node_modules или вообще что-либо может быть общее. Просто когда я изучал программирование, лет так 20 назад, как раз микросервисы только начали набирать обороты и тогда по сути к ним было одно единственное требование - микросервис должен быть полностью независим и автономен. А это как раз и означало, что любой микросервис в любой момент времени может быть перезагружен/уничтожен/запущен/перенесен, а приложение должно продолжать работу.
Я перви пон
@PurpleSchool
8 ай бұрын
🤣
Сомнительно, перепишите на GO или Python. Хвалить из-за наличия Ts? Ну такое
bum
jwt не работает
@PurpleSchool
8 ай бұрын
У меня вроде пакет завёлся.
Всё равно сырой пока - тот же запуск на Windows через одно место. Пускай настоится пока
@LosYol
8 ай бұрын
В любом случае разработка на винде это боль так что не страшно. На винде ты в любом случае будешь страдать
@igorsitnikov4023
8 ай бұрын
@@LosYol И в чем же боль?
@Disorrder
8 ай бұрын
WSL?
@sine_tempore
8 ай бұрын
@@LosYolнесколько лет разрабатываю бекенды на ноде и го на винде без WSL, никаких проблем
@LosYol
8 ай бұрын
@@sine_tempore ну значит возможно не сталкивался с большинством проблем. У меня 11 лет опыта 7 из них на го также работал с нодой в том числе. И вот например мой джун/лой миддл на винде сидит и крайне не редкие штуки происхоядт с виндой) Костылять приходится постоянно. Причем самой гошке то норм ведь она так устроена. Но вот все вокруг это ад. Докер вроде естьи работает, но жрет памяти как не в себя и подтормаживает. Файловая система устарела и потому задержки на билдах даже у гошки происходят. Где любой Юникс мгновенно делает билды и соответственно быстрее тесты запустит там у винды задержка IO. Командная строка винды это говнина а ставить баш можно конечно но нормально он не синтегрирован с виндой и тянет за собой тонну других инструментов. А они тебе нужны. Переменные окружения сделаны через жопу. Разницы в путях часто мешают а вернее в слешах. ИНструментарий говна. Работа с несколькими сониторами на ноуте сделана через жопу особенно если стоит блокировка ноута при закрытии крышки, он тупо не запоминает расположения окон нормально. Санитайзеры тупо не будут работать вообще забудь. И это просто первое что пришло в голову. А встречаюсь я с проблемсами постоянно. А если на ноде работать то там тонна файлов постоянно и файловая система с ее задержками вообще убивает тогда
100500 инструиент на фронте 😂😂
@PurpleSchool
8 ай бұрын
Да, инструментов много
На Bun лучше начинать писать новые проекты
@PurpleSchool
8 ай бұрын
Думаю пока рано)