Новая среда выполнения 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.

  1. Защищено по умолчанию. Нет доступа к файлам, сети или среде, если явно не разрешено.
  2. Поддерживает TypeScript из коробки.
  3. Поставляется только один исполняемый файл.
  4. Имеет встроенные утилиты, такие как инспектор зависимостей (deno info) и средство форматирования кода (deno fmt).
  5. Имеет набор проверенных (проверенных) стандартных модулей, гарантированно работающих с 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 с распростертыми объятиями, веселая, лучшая и более стабильная среда - это не то, от чего бы уклонялись разработчики. Кто знает, возможно, Дено просто взлетит на новые высоты.