eFusion 21 мая 2020

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

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

Что такое 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

ВАКАНСИИ

Middle\Senior .Net разработчик
от 120000 RUB до 165000 RUB
Programmer Unity
Краснодар, по итогам собеседования
Unreal Engine Developer
по итогам собеседования
Unity Developer
по итогам собеседования

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

BUG