Мнения разработчиков
Дено уже мертв?
Некоторые причины исчезнувшего ажиотажа
В мае этого года в центре внимания был не только коронавирус - Deno распространился в сообществе разработчиков JavaScript и серверной части. Первая стабильная версия была там, и уже разразилась огромная шумиха. Я тоже сразу увлекся Deno и с нетерпением ждал возможности попробовать что-то новое.
Статья, которую я написал о ней, получила тысячи просмотров только через Google - так что интерес был действительно огромным.
Но что от этого осталось? Где те голоса, которые, возможно, даже думали, что Deno может заменить Node.js? Очевидно, что от ажиотажа осталось немного - Google подтверждает это:
Как видно из Google Trends, поискового запроса Deno уже нет в таком количестве, как это было в первоначальной шумихе в конце весны и начале лета - следует также отметить, что Google Trends for Deno не включает категорию тема или язык программирования. Другие поисковые запросы Google по запросу Deno, которые не имеют ничего общего с технологией, по-прежнему включены в статистику.
Рост других технологий
В этом году уже было много чего предложить - в области фронтенда это был Svelte, в бэкенде - Deno. Кроме того, многие языки программирования в целом привлекают большое внимание. Rust и Julia являются хорошими примерами этого, в то время как популярность JavaScript не растет.
Новые технологии всегда приносят с собой новые возможности - новые фреймворки и библиотеки. Конечно, все они хотят, чтобы их опробовали, и поэтому, например, Actix Web от Rust привлек внимание, хотя бы в сообществе Rust и среди людей, заинтересованных в этом.
На мой взгляд, у Deno не было места для еще большего ажиотажа - но это еще и потому, что у него никогда не было амбиций перевернуть веб-мир с ног на голову - и это именно то, что стало ясно очень быстро.
Ничего грандиозного нового
В своей статье о различиях между Deno и Node.js я уже упоминал об этом. Вот основные особенности, которые предлагает Deno:
- Нет поддержки NPM
- Разрешения
- Ожидание верхнего уровня
- Поддержка окна-объекта
- Поддержка TypeScript из коробки
Это была основная особенность, упомянутая в глотке воздуха с Deno.
После множества проб и ошибок большинство разработчиков, вероятно, поняли, что их мир перевернут не функции. Специально для существующих бэкендов нет особого стимула все менять.
Это также отражается в профессиональном использовании Deno - по данным StackShare.io 7 компаний используют Deno.
Переезд стоит дорого и отчасти бессмысленно
Deno и Node.js, конечно, очень похожи. В Deno вы не только зависите от TypeScript. JavaScript также поддерживает это прямо из коробки.
Но когда появляется слово JavaScript, вы должны думать о многих библиотеках и фреймворках, которые распространены в сообществе JS.
Некоторые из них также доступны в мире Node.js.
Вспомните Express.js, Koa, Sails, Axios, Lodash или Sequelize. Все эти библиотеки часто используются в проектах Node.js и могут быть легко установлены через NPM.
И NPM - это ключевое слово, которое почему-то заставляет вас думать о Deno, потому что использование модулей NPM с Deno само по себе не предназначено и, следовательно, довольно громоздко.
Это затрудняет переход с Node.js на Deno.
Deno также известен своей безопасностью - тем, что практически все требует разрешения пользователя. Это тоже неплохо, определенно деликатный подход. Но, на мой взгляд, это не лучший аргумент для полной миграции существующего приложения Node.js в Deno.
Никакой дополнительной производительности
Здесь я хочу прояснить, что лично я не считаю, что Node.js следует размещать выше Deno только из-за его производительности.
По нашим измерениям, производительность часто бывает нереальной, и ею можно полностью пренебречь, особенно для небольших приложений с небольшим количеством пользователей. Масштабируемые поставщики услуг позволяют легко адаптироваться к вашим потребностям с точки зрения производительности - вам не нужно устанавливать максимально быстрый веб-сервер и базу данных на фиксированный корневой сервер.
Тем не менее нельзя не учитывать, что многие разработчики заинтересованы в производительности - даже если различия есть только на бумаге. Но с точки зрения производительности Deno не уступает Node.js.
Это не должно вызывать удивления. В конце концов, Deno никогда не стремился заменить Node.js с точки зрения производительности. Речь шла гораздо больше о безопасности и подобных вещах.
Вы можете найти его на официальном сайте Deno - тесты, доказывающие, что Deno не самый быстрый фреймворк. Даже по сравнению с Node.js.
Стандартные модули HTTP-запроса и ответа Node.js и Deno сравниваются в показанном выше тесте. Тест показывает, что Node.js предлагает более высокую производительность.
Я сам также провел тест между двумя платформами - результат тот же. Node.js работает явно лучше.
Несмотря на то, что Deno в целом выглядит неплохо, многие люди в основном ищут производительность.
Конечно, производительность не должна быть единственным решающим компонентом при выборе технологии. Фреймворки и технологии, такие как Fastify или HTTP-библиотеки для Go и Rust, которые выделяются своей производительностью, представляют большой интерес. Таким образом, вы можете четко сказать, что многие разработчики заинтересованы в хорошей производительности, а Deno не предлагает именно этого по сравнению с Node.js.
Это слишком рано
Новые технологии всегда быстро вызывают ажиотаж. Все хотят попробовать что-то новое, сейчас лучшее время для создания контента для этого. В результате, темы раздуваются до крайности, и большинство людей не пытается иметь серьезных намерений.
Некоторые зашли так далеко, что увидели конец Node.js с выпуском Deno - конечно, это контент, который привлекает много внимания и поэтому ценен для создателей - но, конечно, это было полным преувеличением.
Результатом является помпезное повествование, которое больше не имеет ничего общего с реальностью, и каждый хочет самостоятельно проверить, означает ли Deno конец Node.js.
Все остальное было бы нелогично. Я не решил переписать существующие приложения Node.js с помощью Deno, пока не попробовал.
В то время, когда Node.js был анонсирован и выпущен в 2010 году, интерес к нему был невысоким. Ранние версии проектов всегда кажутся немного кровавыми и устрашающими.
Некоторые технологии могут опередить свое время - через 2 года мир может выглядеть совсем иначе после того или иного скандала вокруг Node.js. В прошлом были серьезные случаи проблем с безопасностью пакетов NPM. Но в кризис всегда есть те, кто получает прибыль - может быть, Deno станет большим из них.
Подводя итоги
Deno неплох и имеет свое оправдание.
В своей первой версии Node.js не раздумывал, и еще есть время для улучшений. Так что Deno, вероятно, продолжит развиваться.
Многое может измениться, особенно в отношении производительности и функций, которых мы еще не знаем из node.js. Так что мне интересно, что будет с Deno, и я всегда буду проверять, что будет выпущено с новой версией.
Если вы хотите присоединиться к Medium и одновременно поддерживать меня:
Вы можете приобрести подписку здесь *.
* Партнерские ссылки. Если вы воспользуетесь этими ссылками для покупки чего-либо, я получу комиссию, но для вас не потребуется никаких дополнительных затрат. Большое спасибо!