Безопасная среда выполнения для javascript и машинописного текста находится здесь. И если вы думали, что это был Node.js, то вот выступление создателя Node.js, самого Райана Даля, говорящего об ошибках проектирования в Node.js.

Итак, что такое означает?

Deno - это новая среда выполнения, похожая на Node.js, которая может запускать javascript и машинописный текст вне браузера, созданная создателем Node.js: Райаном Далем. Да, вы правильно прочитали. В Deno есть встроенный компилятор машинописного текста. В его основе - двигатель V8 и Rust.

Будучи разработчиком Node.js уже почти 4 года (2 года профессионально) и пробуя машинописный текст с помощью Node в течение последних 12 месяцев, мне нравится тот факт, что теперь я могу использовать машинописный текст в своем проекте без каких-либо дополнительных инструментов. Нет ничего веселее, чем немного больше контролировать свои типы в своих проектах.

Мы хотим, чтобы Deno был применим к широкому кругу проблемных областей: от небольших однострочных скриптов до сложной серверной бизнес-логики. По мере того, как программы становятся более сложными, все большее значение приобретает какая-либо форма проверки типов.

Еще в 2018 году, когда 🦕 Райана исполнился всего месяц, основными целями NEMO были безопасность, упрощение системы модулей, компилятор машинописного текста, встроенный в исполняемый файл ... Два года спустя с выходом identify 1.0, вот ключевые особенности, которые меня интересуют.

Безопасность 🛡

Сценарий выполняется в безопасной песочнице и по умолчанию не разрешает доступ к сети, файловой системе для записи или к среде. По сути, он не может выполнять какие-либо потенциально вредоносные действия в системе без предварительного разрешения. Пользователь может предоставлять разрешения сценариям с помощью таких флагов, как --allow-net и --allow-write.

Один исполняемый файл; одна пачка; 🧳

Deno поставляется в виде одного исполняемого файла. Таким образом, нет необходимости загружать сотни файлов для настройки среды разработки. Также сценарии, которые вы пишете, могут быть объединены в один файл javascript.

Упрощенная модульная система 🗄

По сравнению с Node.js, у Node нет отдельной программы для управления пакетами. Скорее у него есть собственный менеджер пакетов, поставляемый в том же исполняемом файле, который извлекает все ресурсы за вас.

Модули загружаются в приложение с помощью URL-адресов. Таким образом устраняется зависимость от централизованного реестра, такого как NPM для Node.js. При первом запуске модули загружаются и кешируются. Deno не будет загружать их снова, пока не будет указан флаг --reload.

Остается без файла package.json, и огромных коллекций node_modules.

Умереть при ошибках ⚰️

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

HTTP-сервер Hello-world Deno выполняет около 25 тыс. Запросов в секунду с максимальной задержкой 1,3 миллисекунды. Сопоставимая программа Node выполняет 34 тыс. Запросов в секунду с довольно неустойчивой максимальной задержкой от 2 до 300 миллисекунд.

Стандартная библиотека NEMO была вдохновлена ​​стандартной библиотекой Golang, а также впервые была написана на Go (еще в 2018 году), но позже в Rust.

Ожидание верхнего уровня и совместимость с браузером - еще две функции Deno, которые привлекли мое внимание. Совместимость с браузером означает, что мы частично совпадаем по функциональности с браузером. API Deno создан для работы с API браузера. Это означает, что разработчики могут легко переключаться между ними. Нет необходимости использовать инструменты сборки, такие как webpack, при использовании модулей ES, чтобы сделать его совместимым с браузером.

Убьет ли это Node.js?

Дело в том, что все еще находится на ранней стадии разработки. Я имею в виду, что версия 1.0 отсутствует, но все еще нуждается в доработке, чтобы быть готовой к производству. С другой стороны, Node раскачивает сцену с большим количеством компаний, использующих системы корпоративного уровня, не говоря уже о поддержке сообщества. Итак, нет, я не думаю, что Deme убьет узел, по крайней мере, в любое время раньше.

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

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

В заключение, я полагаю, что NODE доберется до того уровня, который Node сегодня рассматривает, учитывая сумму процентов на сегодняшний день. Но то, что я действительно не хочу видеть, - это кучка фреймворков на основе Den, которые пытаются решить или сделать то же самое, как мы видим на Node.

Я начал смотреть на денон после того, как увидел, что мои коллеги Чамод и Исуру пробуют его. Так что передайте им привет. Также я только начал играть с den, поэтому раздел комментариев открыт для любой критики, идей или предложений. Найдите мои работы со значком ниже, и они будут обновляться в будущем, когда я найду время.



Если вы хотите попробовать денем, проверьте ниже.





Удачного кодирования :)