Убийцы Node.js — какие аналоги есть у библиотеки
IT-блогер Миша Ларченко рассуждает о том, какие аналоги могут заменить Node.js и стоит ли отказываться от этой библиотеки.
890 открытий5К показов
IT-блогер Миша Ларченко рассуждает о том, какие аналоги могут заменить Node.js и стоит ли отказываться от этой библиотеки.
Вот, о чём идёт речь в видео:
- Node.js часто подвергался критике и попыткам замены, но остается популярным инструментом для разработки бэкэнда.
- JavaScript, язык, на котором написан Node.js, не всегда был популярен среди бэкэнд-разработчиков.
- Быстродействие Node.js стало причиной его широкого применения, как, например, в Amazon, где ускорение загрузки страниц привело к значительному увеличению доходов.
- Были попытки ускорить Node.js, в том числе замена движка JavaScript Engine v8 на Chakra от Microsoft, но эта инициатива не была реализована.
- Появление альтернативных рантаймов, таких как Deno, написанный на Rust, не смогло заменить Node.js из-за отсутствия полной совместимости и функциональности.
- Новый рантайм Bun вызвал волну интереса в сообществе благодаря высокой производительности и поддержке TypeScript и JSX без компиляции.
- Существуют опасения по поводу безопасности Bun и его готовности к использованию в продакшене.
- Сообщество разработчиков играет важную роль в поддержке и развитии технологий, и на данный момент сообщество Node.js значительно больше, чем у Bun'.
- Не все функции Bun могут быть востребованы разработчиками, особенно теми, кто не использует TypeScript или JSX.
- Слишком рано делать выводы о замене Node.js на Bun', поскольку Node.js продолжает развиваться и остается важным инструментом для многих разработчиков.
Ниже — транскрибация ролика.
Почему не любят Node.js
Говорят, что Node.js тоже теперь надо вот так вот выкинуть, как я сейчас мусор буду выкидывать.
Но мне кажется, мы куда-то очень торопимся. Когда Node.js только появился, его уже хоронили. И причин было много, но главное было в том, что он написан для того, чтобы его использовать с JavaScript, а JavaScript все никогда они любили.
И если бэкэндщик слышал JavaScript, он тут же начал плеваться и говорил, что у JavaScript будущего нет. Но оказалось, что Node.js очень быстрый, и поэтому многие компании стали его использовать для того, чтобы ускорить работу своих бэкэндов, каких-то маленьких частей своего бэкэнда. И в какой-то момент Node.js стал, назовем это, очень популярен.
Не могу себе отказать в обеденном кофе. Так вот, Node.js всегда считался быстрым бэкэндом. И, например, Amazon, когда переводил часть своих интерфейсов, которые генерировались на бэкэнде, на Node.js, то они где-то там что-то посчитали в эти стародавние времена, что одна секунда ускорения загрузки страницы позволит им заработать дополнительные 4 миллиарда долларов в год. И звучит это для бизнеса, конечно, очень приятно, поэтому они старались ускорить загрузку и рендер своих страниц, и вот они тогда использовали Node.js. Как я уже сказал, это делалось только потому, что Node.js считался быстрым, но всегда были попытки сделать его еще быстрее. Например, по-моему, в 2016 году Microsoft хотела в Node.js заменить JavaScript Engine v8 от Google на свой собственный, который в то время назывался Chakra.
Chakra Microsoft тогда использовал у себя в Edge-браузере для того, чтобы делать приложение для Microsoft Universal. Это единая операционная система, или единое приложение для мобильных планшетов и компьютеров. Тогда еще были мобильные телефоны на Windows. И они вот хотели его туда вставить, в Node.js, эту самую чакру, потому что их чакра была быстрее, чем v8.
Но, как мы знаем, Microsoft от чакры в итоге отказалась, и браузер Edge теперь работает на блинке, то есть он, по сути, хром, только в другой обертке. И эта вот попытка ускорить Node.js с помощью чакры, она тоже канула в лето. И затем были еще попытки. И самое известное из старых, это, наверное, Deno. Deno был написан на Rusty, и он был быстрее, чем Node.js, но у него была одна фундаментальная проблема. Он не умел все то, что умеет Node.js.
Если взять серьезное приложение, написанное для ноды, и запустить его на Deno, то оно, скорее всего, не заработает, потому что чего-то ему всегда будет не хватать. Каких-то модулей, каких-то библиотек, каких-то функций, которые есть в Node.js, и отсутствуют в этом самом Deno. Конечно, его пытались развивать, делать лучше, он до сих пор вроде как там жив, туда что-то добавляют, но все равно это не замена Node.js, а именно потому, что количество функций или функционала, которые есть в Node.js, значительно больше. А учитывая, что Node.js тоже развивается, туда постоянно что-то добавляется, то Deno за ним уже тупо не успевает.
Что такое Bun
И вот теперь мы все говорим о Bun'е. А Bun это то, что релизнули совсем недавно, вышла версия 1.0, и весь интернет или весь фронт-энд почему-то взорвался. Сразу начались различные тесты, сравнения производительности Node.js и Bun', где Bun просто разрывает Node.js. И все стали говорить о том, что, наверное, Node.js скоро может умереть. Ну, не все, но многие начали говорить о том, что Node.js скоро может умереть, потому что появился новый вот такой вот рантайм. Который позволяет и TypeScript файлы сразу запускать без компиляции, и JSX файлы запускать без компиляции, и делает все это очень быстро, и написан он на Ziggy, такой новый модный язык программирования.
В общем, он классный этот Bun', и вот Bun это будущее разработки бэкэнда на JavaScript. Но так ли это? Стоит ли нам уже хоронить Node.js именно как рантайм, который запускает бэкэнд на JS? Или все-таки рано об этом еще говорить. И есть у меня по этому поводу некоторые мысли, которыми я с вами сейчас поделюсь. Я почему сначала вам рассказал о некоторых других попытках сделать Node.js быстрее?
Только потому, что это были те самые попытки убить Node.js в том виде, в котором он существовал. И, как вы уже понимаете, эти попытки, они не удались. Так вот, Bun может сдать потенциально такое же будущее, как тот же Deno. Потому что, во-первых, Bun пока еще не умеет совсем-совсем все.
В чём Bun проигрывает Node.js
Да, он умеет большинство абсолютно, но он не умеет все. И второе, это то, на что обращали внимание разработчики Bun'а, когда его разрабатывали. Они в первую очередь смотрели на производительность, а производительность это, конечно же, классно, но кроме производительности есть другие условия, которые делают бэкэнд удобным и возможным для использования в крупных приложениях различных. Так вот, команда в погоне за производительностью оставила немного в стороне какие-то другие важные вещи, и они не уделили должного внимания безопасности. Поэтому пока еще непонятно, насколько Bun'к безопасен для использования в продакшене, насколько это отвечает требованиям, которые сегодня предъявляют компании для своих серверов. И еще одна интересная ситуация, это, конечно же, комьюнити. Если, когда ты разрабатываешь на ноде, у тебя возникают вопросы, то ты всегда можешь обратиться в к людям в комьюнити они помогают тебе решить, или если какой-то баг, или еще какая-то проблема, ты опять-таки можешь с помощью комьюнити все это попытаться решить очень быстро.
То с Bun'ом все немного сложнее. Да, конечно, он на хайпе, повторюсь, по какой-то непонятной причине, в основном его хайпят именно фронт-энд разработчики. Но это не значит, что вот в этом хайпе там образуется большое количество людей, которые Bun'ом этим будут увлекаться и использовать. Одно из главных преимуществ Bun'а, такое как запуск TypeScript и JSX без компиляции, мне кажется немного переоцененным. Оно важно только в той ситуации, когда мы делаем что-то связанное с SSR и React, а для остальных Node.js разработчиков ни TypeScript, ни JSX в принципе не нужны, поэтому их не интересует такая возможность.
И поэтому вот такая вот важная фича Bun'а, она сразу отпадает и как бы делает Bun менее для них привлекательным. Как мне кажется, у Bun'а есть будущее для того, чтобы стать важной вехой в развитии JavaScript на бэкэнде, но также он может им и не стать. Поэтому рано пока хоронить Node.js, надо все еще разрабатывать и учиться работать именно с Node.js, учить все те функции и методы. Модули, которые встроены в Node.js. Ну, а Bun пока останется чем-то в стороне, за чем можно следить, как он там развивается. И если он действительно станет большим, классным рантаймом для JavaScript на бэкэнде, то тогда можно будет подумать о том, чтобы начать с ним работать. Так прикольно смотреть, как чистится пол вот этой странной машинки.
890 открытий5К показов