Мнения разработчиков

Дено уже мертв?

Некоторые причины исчезнувшего ажиотажа

В мае этого года в центре внимания был не только коронавирус - 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 и одновременно поддерживать меня:
Вы можете приобрести подписку здесь *.

* Партнерские ссылки. Если вы воспользуетесь этими ссылками для покупки чего-либо, я получу комиссию, но для вас не потребуется никаких дополнительных затрат. Большое спасибо!