Если вы разработчик JavaScript, возможно, вы слышали о новой среде выполнения JavaScript под названием Deno. Как и я, вы, вероятно, подумали: О нет! Это снова мы. Будет ли это еще одно фиаско Nodejs против io.js или битва npm против yarn?. Возможно, вы даже подумали: Еще один инструмент в экосистеме JavaScript, который сделает нашу жизнь невыносимой. В конце концов, JavaScript всегда заставлял разработчиков чувствовать себя измотанными. Станет ли Deno еще одной причиной, по которой разработчики не любят JavaScript?

Короткий ответ — нет. На самом деле все с точностью до наоборот. Вы обязательно должны изучить Deno в 2022 году. Если вы хотите знать, почему, продолжайте читать эту статью. Если вы уже убеждены, отлично! Зайдите на сайт Deno и начните изучать его к 2022 году.

Просто еще один блестящий инструмент?

Во-первых, давайте уберем это с дороги. Deno НЕ ЯВЛЯЕТСЯ просто новым блестящим инструментом для JavaScript. Он решает реальные проблемы, с которыми сталкиваются разработчики JavaScript, и предлагает действительно продуктивные инструменты, которые могут помочь разработчикам JavaScript в процессе разработки.

Что такое Дено?

Официальный сайт Deno сообщил:

Deno (/ˈdiːnoʊ/, произносится как ди-но) — это среда выполнения JavaScript/TypeScript с безопасными настройками по умолчанию и удобным интерфейсом для разработчиков.
….

Любого разработчика Nodejs уже одно это объяснение должно взволновать. Во-первых, Deno — это среда выполнения JavaScript/TypeScript. Позвольте мне повторить, Deno — это среда выполнения JavaScript/TypeScript. Он поддерживает Typescript прямо из коробки! Нет необходимости загружать другой инструмент или какой-либо транспилятор для запуска вашего кода. Deno относится к этим языкам довольно одинаково.

Команда для запуска файлов JavaScript:

deno run YourFile.js

Команда для запуска файлов TypeScript также:

deno run YourFile.ts

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

«…среда выполнения с безопасными настройками по умолчанию».

Вы должны явно установить разрешения для вашего сценария, если вы хотите, чтобы он имел доступ к файлам, сети или среде. Это означает, что когда вы используете сторонний пакет, вы будете знать, к чему будет обращаться этот сценарий. Это действительно полезно с точки зрения безопасности. Например, если вы импортируете сторонний пакет с именем StringValidator и ему нужен доступ к Интернету, вы можете дважды проверить, что этот пакет действительно делает.

Deno может импортировать модули из любого места в Интернете. У вас также есть возможность импортировать свои модули из службы хостинга Deno, deno.land/x. Если вы это сделаете, вам гарантировано, что модуль будет там. Поскольку все загружаемые версии модулей неизменяемы, чтобы предотвратить поломку программ, которые на них полагаются. Если вы начнете использовать более новую версию модуля и обнаружите, что существуют угрозы безопасности, вы можете легко вернуться к предыдущей версии, не беспокоясь.

«...отличный опыт разработчика».

Что может сделать Deno лучшим опытом для разработчиков, чем Nodejs?

Он совместим с Интернетом. Это означает, что ваши знания Javascript, полученные при написании интерфейсных приложений для FireFox, Chrome, Edge и т. д., можно перенести в Deno. Вы можете использовать Fetch, Web Workers, Web Storage, Blob, FormData, WebSocket, даже Web Assembly и многое другое. Это меньше сторонних модулей, о которых вам нужно беспокоиться, прощайте, axios.

Он имеет встроенные утилиты, облегчающие разработку. Например,

  1. Линтер (дено линт)
  2. Бандлер (дено бандлер)
  3. Тестовый бегун (дено-тест)
  4. Code Formatter (дено форматтер)
  5. Инспектор зависимостей (deno info)
  6. Генератор документации (deno doc)

Это не те инструменты, которые «приятно иметь». Это необходимые инструменты. Когда разработчики видят, что среда выполнения, которую они используют, предоставляет эти инструменты без какой-либо дополнительной сумасшедшей раздражающей конфигурации, это укрепляет их уверенность в среде выполнения и в их способности лучше использовать язык.

Deno также предоставляет встроенные модули, которые поддерживаются командой Deno. Эти модули очень полезны для повседневных задач программирования. Например, модуль Collection имеет функции для работы с такими коллекциями, как groupBy, partition, union. Модуль DateTime имеет функции для работы с датами. У него также есть модуль, позволяющий нам использовать модули Nodejs, которые не используют API-интерфейсы Node без полифиллов.

Это лишь некоторые из особенностей, которые делают Deno привлекательным для изучения. Но мы еще не говорили о том, как Deno обрабатывает управление пакетами, как Deno обрабатывает промисы, расширяет Deno с помощью плагинов Rust, Deno Deploy (бессерверное решение, позволяющее пользователям быстро создавать сценарии распределенных HTTPS-серверов) и даже компилировать ваши сценарии в самостоятельную компиляцию. содержит исполняемые файлы!!

Дено выглядит многообещающе. У него есть команда разработчиков и инвесторов, чтобы вывести его на новый уровень. 2022 год определенно будет захватывающим для него. Даже если он не заменит Nodejs, он определенно подтолкнет всех к лучшей экосистеме JavaScript.