eFusion 21 мая 2020

Кто такой Deno, и почему о нём все говорят?

🦕 Deno – это новая runtime-среда для JavaScript и TypeScript от создателя Node.js. Многие считают, что это крутая штука. Вкратце объясняем, что же есть в Deno такого хорошего.
0
7830

Что такое Deno? Кто такой Deno?

Deno (произносится «дино») – это защищённая среда выполнения JavaScript/TypeScript, построенная на V8, Rust и Tokio, обеспечивающая безопасность по умолчанию и удобная для разработчиков.

Среду Райан Даль (создатель Node.js) начал разрабатывать для замены Node.js, выпущенного в далёком 2009 г., из-за налчия в том важных, по его мнению, недочётов.

Основные причины обратить внимание на Deno:

  • продукт создан специалистом, запустившим Node.js;
  • в среде устраняются недостатки Node.js.

Давайте рассмотрим технологии, стоящие за Deno.

В чём же сила Deno?

V8
V8

Итак, в руководстве указано, что инструмент построен на V8, Rust и Tokio. Давайте разберём, что это за штуки такие:

  • V8 – высокопроизводительный JavaScript-движок (а теперь и WebAssembly) от Google, используемый Node.js и Chrome. Чтобы обеспечить высокую производительность, V8 компилирует JavaScript в машинный код.
  • Rust – быстроразвивающийся системный язык программирования, основное внимание в котором уделяется производительности и безопасности памяти.
  • Tokio – асинхронный рантайм для Rust. Это фреймворк для быстрых, надёжных и лёгких сетевых Rust-приложений. Он чрезвычайно хорошо справляется с параллелизмом и используется в виде основы для сторонних библиотек.

Таким образом, Deno базируется на быстрых, лёгких и безопасных технологиях.

Зачем что-то менять?

С 2009 года JavaScript изменился не так уж существенно. Сдвиг в лучшую сторону наблюдается только в удобстве разработки и производительности. Причиной Райана задуматься о Deno, стали несколько проблем в Node.js:

  • модульная система и ее распределение,
  • поддержка устаревших API,
  • вопросы безопасности.

Если вы работали какое-то время с Node.js, вы знаете о некоторых причудах npm. К тому же npm использует модель центрального репозитория (npmjs), которая имеет свои проблемы.

Модули Deno могут быть размещены в любом месте. Кроме того, модули локально кэшируются, и вам не нужно их обновлять, если нет необходимости.

Безопасность. Deno не имеет открытого доступа к файловым или сетевым ресурсам, если это не включено явным образом.

Встроенный TypeScript. Вы можете в полной мере использовать преимущества TypeScript для разработки, применять явные типы и другие полезности языка.

Дальше – больше

Deno обещает производительность и безопасность. Это большое преимущество, но самое многообещающее заключается в облегчении жизни разработчика – можно использовать:

  • ES6,
  • TypeScript,
  • удалённые репозитории.

А вот ещё несколько плюшек:

  • Тестирование. Больше не нужно использовать случайно найденные инструменты и сомневаться в них – всё уже встроено в ядро.
  • Форматирование кода. Для форматирования файлов можно использовать команду deno fmt . Одна из фич, знакомых Go-разработчикам, которые экономят время разработчика.
  • Дебаг. Есть встроенный отладчик – не придётся рыскать по интернету в поисках нормального инструмента.
  • Compile/Bundle. Эта функциональность пока не вполне готова, но уже сейчас есть приличный бандлер, и ожидается развитие в будущем.

У Deno на выходе всего один исполняемый файл для запуска. Любой, кто боролся с зависимостями и разрушительными изменениями, знает какое это чувство – наличие надежного исполняемого файла для запуска. Вы обновляетесь когда хотите, и не нужно переживать, что в это время происходит с зависимостями.

Установка

Процесс установки Deno – проще не придумаешь. Вы можете установить его с помощью описанных ниже установщиков или загрузить бинарник из гитхаба.

Shell (Mac, Linux):

        curl -fsSL https://deno.land/x/install/install.sh | sh
    

PowerShell (Windows):

        iwr https://deno.land/x/install/install.ps1 -useb | iex
    

Homebrew (Mac):

        brew install deno
    

Chocolatey (Windows):

        choco install deno
    

Scoop (Windows):

        scoop install deno
    

Сборка и установка из исходного кода с использованием Cargo:

        cargo install deno
    

Изучить дополнительные параметры установки всегда можно на официальном гитхабе.

Заключение

Похоже, что Deno собирается встряхнуть мир JS. Проект должен привнести следующие изменения в разработку:

  • повышение производительности,
  • улучшение безопасности,
  • уменьшение боли для разработчика,
  • соблюдение веб-стандартов,
  • защита от устаревших API-интерфейсов,
  • встроенный TypeScript и прочие инструменты.

Будущее Deno выглядит очень многообещающе. К месту упомянуть наши популярные статьи о TypeScript:

Источники

РУБРИКИ В СТАТЬЕ

МЕРОПРИЯТИЯ

Комментарии 0

ВАКАНСИИ

Senior JS разработчик
по итогам собеседования
Техлид Java
до 250000 RUB

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

BUG