Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 40(210)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8

Библиографическое описание:
Берьянов М.С. ИССЛЕДОВАНИЕ ПЛАТФОРМЫ DENO В СРАВНЕНИИ С NODE.JS // Студенческий: электрон. научн. журн. 2022. № 40(210). URL: https://sibac.info/journal/student/210/273000 (дата обращения: 25.11.2024).

ИССЛЕДОВАНИЕ ПЛАТФОРМЫ DENO В СРАВНЕНИИ С NODE.JS

Берьянов Максим Сергеевич

студент, факультет ПИиКТ, Университет ИТМО,

РФ, г. Санкт-Петербург

RESEARCH OF DENO ENVIRONMENT IN COMPARISON TO NODE.JS

 

Maxim Beryanov

student, PIKT faculty, ITMO University,

Russia, Saint-Petersburg

 

АННОТАЦИЯ

С момента своего создания платформа Node.js заняла особое место в программировании – это очень мощный и быстрый в изучении инструмент с огромным сообществом, создавшим сотни библиотек и сделавшим его частью предпочтительного стека для разработки приложений на многие годы. Но недавно появился Deno – конкурент, созданный тем же разработчиком, что и Node.js. В этой статье мы сравним эти две платформы (два окружения), кратко рассмотрев преимущества и особенности данных технологий, и попытаемся сделать вывод, есть ли у Deno потенциал для замены Node.js.

ABSTRACT

Since its creation, Node.js environment has earned a place in the programming world. It is a very powerful and easy-to-learn framework with huge community that has produced hundreds of libraries and made it the part of preferred stack for application development for years. But recently Deno arrived – a competitor driven by the same Node.js creator. In this article, we will compare these two platforms (two environments), briefly review the advantages and features of such technologies, and try to conclude whether Deno has the potential to replace Node.js.

 

Ключевые слова: Deno, Node.js, JavaScript, TypeScript.

Keywords: Deno, Node.js, JavaScript, TypeScript.

 

Чтобы лучше понять отличия между этими двумя технологиями, интересно сделать шаг назад и рассмотреть концепцию Runtime Environment, поскольку именно эта концепция их различает. В общих чертах можно сказать, что наш код запускается в среде выполнения, которая определяет, к каким объектам может обращаться наша программа, а также влияет на то, как программа работает. Различные функции и сущности доступны в различных средах выполнения, и в некотором роде они отличают интерфейсные приложения от серверных приложений. И Deno [1], и Node.js [2] — это среды выполнения, созданные одним и тем же человеком, имя которого – Райан Даль.

Общие сведения о платформах (окружениях)

Платформа Node, созданная в 2009 году, представляет собой ориентированную на серверную часть среду JavaScript, основанную на движке Google V8 JavaScript (По требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google является нарушителем законодательства Российской Федерации – прим. ред.) [3] и сфокусированную, простыми словами, на обработку запросов к веб-серверу. Данное окружение выполняет код JavaScript без браузера, что позволяет разработчикам создавать full-stack приложения, используя единый язык JavaScript. Node.js также обеспечивает I/O вызовы, что делает его способным быстро обрабатывать запросы, масштабироваться и быть подходящим для современных веб-приложений.

Платформа Deno, представленная в 2018 году, представляет собой среду выполнения, похожую на Node.js, которой суждено существовать как, казалось бы, лучшая версия Node.js, но с решением некоторых ограничений Node.js, таких как: проблемы безопасности, сложная конфигурация системы сборки, пакетов и node_modules. Это среда выполнения для языка JavaScript [4], а также и TypeScript [5], основанная на том же движке V8 и построенная на языке программирования Rust.

Безопасность и песочница

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

Браузерная совместимость

Deno также стремится быть совместимым с браузером, а это означает, что при использовании модулей ES нам не нужно использовать встроенные инструменты, такие как webpack [6], чтобы собрать наше приложение для использования в браузере. Набор сценариев Deno, которые написаны на JavaScript и не используют глобальное пространство имен Deno, означает, что они могут работать в современном веб-браузере без изменения кода. Deno следует стандартизированным API-интерфейсам JavaScript браузера. Поскольку Deno совместим с браузером, мы можем получить доступ и использовать браузерные API-интерфейсы, такие как fetch и глобальный объект window.

Поддержка TypeScript

TypeScript – это расширение языка JavaScript, созданный Microsoft, который позволяет клиентам предоставлять информацию в коде о типах используемых сущностей. Deno использует TypeScript из коробки через компилятор TypeScript с кешированием.

Управление модулями и пакетами

Deno использует ES модули, которые представляют собой общую структуру связывания кода JavaScript. После появления Node.js JavaScript использовал CommonJS, поскольку у него не было стандартного модуля. Одним из ключевых преимуществ Deno является то, что он использует совместимый с браузером протокол для загрузки модулей, что позволяет нам импортировать модули напрямую через URL-адрес без централизованного реестра. Это позволяет Deno действовать как среда выполнения и менеджер пакетов вместе, используя ссылки для локальных или удаленных зависимостей, в отличие от Node.js, который использует npm в качестве менеджера пакетов для установки сторонних пакетов и управления ими.

API

Deno минимизирует размер основного API, предоставляя при этом обширную библиотеку, что упрощает для разработчиков включение множества API в JavaScript. Библиотека Deno проста в использовании и импорте, а различные модули выполняют разные функции, такие как обработка HTTP, работа с датой и временем, работа с файловой системой.

Подведение итогов

Целью Deno было устранение недостатков, существующих в Node.js. Главное отличие, это уровень поддержки современных технологий «из коробки». Deno обеспечивает первоклассную поддержку TypeScript и включает компилятор TypeScript в своем исполнении, что означает, что нам не нужна конфигурация для работы с этим языком. Кроме того, Deno может сам обновляться до последней версии, а Node.js требует, чтобы сторонние менеджеры пакетов обновляли и устанавливали последние версии.

В то время как Deno ограничен с точки зрения разнообразия сообщества вокруг себя из-за своей относительной молодости, Node.js включает в себя крупнейшее в мире инициативное сообщество, которое разрабатывает и поддерживает его (в том числе с открытым исходным кодом – Open Source).

Deno может идеально подойти при написании нового проекта на TypeScript, но, учитывая отсутствие упомянутого сильного сообщества, на мой взгляд, большие проекты, требующие расширенных и специализированных библиотек, по-прежнему будут лучше работать с Node.js.

Если смотреть в обозримое будущее, кажется, что Deno — это альтернатива Node.js, а не замена. Deno предоставляет программистам такие возможности, как безопасность и возможность объединения кодовой базы в один файл, что повышает вероятность того, что со временем его будут внедрять все больше и больше. Противостояние между Deno и Node.js продолжается, но можно с уверенностью сказать, что в будущем они будут сосуществовать.

 

Список литературы:

  1. Deno [Электронный ресурс] URL: https://deno.land (дата обращения: 07.12.2022).
  2. Node.js [Электронный ресурс] URL: https://nodejs.org/en/ (дата обращения: 07.12.2022).
  3. V8 [Электронный ресурс] URL: https://v8.dev (дата обращения: 07.12.2022).
  4. JavaScript [Электронный ресурс] URL: https://developer.mozilla.org/ru/docs/Web/JavaScript (дата обращения: 07.12.2022).
  5. TypeScript [Электронный ресурс] URL: https://www.typescriptlang.org (дата обращения: 07.12.2022).
  6. Webpack [Электронный ресурс] URL: https://webpack.js.org (дата обращения: 07.12.2022).

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.