Кто такой 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, 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):
PowerShell (Windows):
Homebrew (Mac):
Chocolatey (Windows):
Scoop (Windows):
Сборка и установка из исходного кода с использованием Cargo:
Изучить дополнительные параметры установки всегда можно на официальном гитхабе.
Заключение
Похоже, что Deno собирается встряхнуть мир JS. Проект должен привнести следующие изменения в разработку:
- повышение производительности,
- улучшение безопасности,
- уменьшение боли для разработчика,
- соблюдение веб-стандартов,
- защита от устаревших API-интерфейсов,
- встроенный TypeScript и прочие инструменты.
Будущее Deno выглядит очень многообещающе. К месту упомянуть наши популярные статьи о TypeScript:
- Вот почему тебе нужен этот загадочный TypeScript
- Мигрируем с JavaScript на TypeScript быстро и безболезненно
- Про карринг и шаблоны TypeScript