Новая среда выполнения JavaScript и Typescript
Кто-то всегда пытается добиться следующего большого успеха. Стремление быть лучшим, творцом, поиском новых вещей. Платформа для создания новых приложений с Javascript и TypeScript - это новая попытка.
Мужчина за паритем.
Райан Даль является первоначальным создателем Node.js, а Deno - его решением всего, чего, по его мнению, не хватало в Node.js. Впервые Дено упомянул о своем решении в 2018 году во время своего выступления «О чем я сожалею о Дено». Рим был построен не за один день, и Дено тоже. После двух лет непрерывной работы его проект был готов. 13 мая 2020 года наконец-то был выпущен Deno 1.0. Он хотел заменить Node.js, в нем было все, чего не хватало Node.js, Deno обещал высокую безопасность, исправление ошибок, которые Node.js не исправлял, и в целом лучший опыт.
Зачем создателю Node.js создавать совершенно другую платформу, а не просто решать проблемы с Node.js. Я сомневаюсь, что кто-то знает Node.js лучше, чем сам Райан. Он заявляет, и я цитирую: «Учитывая огромные изменения в ландшафте JavaScript и окружающей инфраструктуры программного обеспечения, создание проектов Node стало трудным делом. Стоило упростить его ».
Он может справиться с проблемами, но это может привести к гораздо большему. В простой и широкомасштабной среде Deno может делать все, что умеет Node, и даже лучше. Простота - это ключ к успеху, но действительно ли она может принести пользу?
Идея
Я уже упоминал об этом несколько раз, но не вдавался в подробности. Что такое Deno?
Deno - это простая современная среда выполнения для JavaScript и TypeScript, основанная на движке V8 и языке программирования Rust. Полностью совместим с существующим Node.js и имеет то, чего не хватает Node.js.
- Защищено по умолчанию. Нет доступа к файлам, сети или среде, если явно не разрешено.
- Поддерживает TypeScript из коробки.
- Поставляется только один исполняемый файл.
- Имеет встроенные утилиты, такие как инспектор зависимостей (
deno info
) и средство форматирования кода (deno fmt
). - Имеет набор проверенных (проверенных) стандартных модулей, гарантированно работающих с Deno: identify.land/std
Функции
Комплексная безопасность:
Deno не разрешает доступ по прихоти. Это защищает вас от рисков, связанных с более строгими запросами и предоставлением разрешений. Чтобы получить доступ к его файловой системе, переменным среды или сети, вам придется использовать аргументы командной строки, чтобы разрешить этот доступ.
Если вы хотите получить доступ к папке «xyz», используйте команду:
deno — allow-read=/xyz myscript.ts
Эта команда позволяет только читать. Чтобы написать, вам нужно будет использовать совершенно другую команду и получить разрешение. Это похоже на установку нового приложения, оно может запрашивать разрешение на доступ к вашему местоположению, контактам, фотографиям. Применяется то же понятие.
Стабильность:
При поддержании стабильного API любая функция и модуль, не готовые к стабилизации, скрываются за нестабильным флагом командной строки. Вы все еще можете использовать эти нестабильные API во время выполнения, но это также означает, что они не прошли проверку безопасности и не готовы.
"Библиотека":
Deno утверждает, что имеет полную библиотеку. Позволяет разработчикам выполнять основные задачи и решать сложные с помощью внешних библиотек.
Установка
Deno поставляется как единый исполняемый файл без зависимостей. Вы можете установить его с помощью установщиков, указанных ниже, или загрузить двоичный файл релиза со страницы релизов.
Оболочка (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
Шоколадный (Windows):
$choco install deno
Совок (Windows):
$scoop install deno
Сборка и установка из исходников с помощью Cargo:
$cargo install deno --locked
Дополнительные параметры установки см. В разделе identify_install.
Deno против Node.js
У всех платформ свое предназначение. Однако цели Deno и Node одинаковы, но механизмы, лежащие в их основе, различаются. Вы даже можете назвать Deno расширенной версией Node. Оба управляются событиями и имеют асинхронные инструменты. Основное различие заключается в следующем
- Ядра: Node’s был написан на C ++, а Deno - на Rust.
- В отличие от Node, Deno использует URL-адреса или пути к файлам для загрузки сторонних модулей и внешних зависимостей вместо
npm
- В то время как Node использует CommonJS в качестве модульной системы по умолчанию, Deno использует модули ES.
- В Deno нет реестра или
package.json
. Модули можно разместить повсюду в Интернете. - Deno нужны явные разрешения для доступа к файлам, сетям и переменным среды, что означает лучшую безопасность.
- В отличие от Node, Deno по умолчанию выполняет код в песочнице, что означает, что у него нет доступа к файловой системе, сети и переменным среды.
Обходит ли Deno Node.js?
Честно говоря, никто не знает. На данный момент ответ однозначный: Нет. Deno не может заменить Node, пока нет. Deno id больше, чем просто модифицированная версия Node.js, это его собственная платформа, совершенно другая реализация. Но определенно начинает соревноваться.
Ажиотаж, связанный с каждым новым нововведением, велик. Он все еще новый и продолжает расти, его первая версия была выпущена публично чуть больше года назад. У него уникальные особенности и потенциал. В будущее приветствуем Deno с распростертыми объятиями, веселая, лучшая и более стабильная среда - это не то, от чего бы уклонялись разработчики. Кто знает, возможно, Дено просто взлетит на новые высоты.