Отец Node ry выпустил новый проект deno: следующее поколение Node

Node.js внешний интерфейс Безопасность deno V8
| Сюй Чуань, Юй Юнь Недавно отец узла, Райан Даль, выпустил новый проект с открытым исходным кодом DENO.Из официального введения его можно считать узлом следующего поколения.Используйте язык Go вместо C++, перепишите кроссплатформенный драйвер undercarcier, верхний слой по-прежнему использует движок V8 и, наконец, обеспечивает один запуск Secure TypeScript.

Его особенности включают в себя:

  • Поддержка TypeScript 2.8 из коробки;

  • Нет package.json, нет npm, нет совместимости с Node;

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

import { test } from "https://unpkg.com/deno_testing@0.0.5/testing.ts"
import { log } from "./util.ts"скопировать код
  • Вы можете управлять файловыми системами и сетевым доступом для запуска кода песочницы, доступ по умолчанию к файловой системе только для чтения может получить доступ, без сетевых привилегий. Доступ между V8 и Golang может осуществляться только с помощью сообщений сериализации, определенных в Protobuf;

  • Автоматически завершать операцию при возникновении неперехваченной ошибки;

  • Поддержка верхнего уровня ожидания;

  • В конце концов создайте один исполняемый файл;

  • Цель — совместимый браузер;

  • Может быть импортирован как библиотека для создания собственной среды выполнения JavaScript.

Некоторые из этих функций нацелены на текущие болевые точки Node, включая отсутствие package.json, методы внедрения и обновления зависимостей, а также нацелены на негабаритные, на которые многие жалуются.node_modules.

В то же время отказ от совместимости с узлом может рассматриваться как желание полностью отказаться от ноши узла и создать лучшую среду выполнения JS.

Автор ответил на несколько вопросов разработчиков на GitHub Issue:

В чем разница между deno и Node?

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

На более высоком уровне Deno максимально упрощает связь между V8 и системным API и создает более простую и стабильную модульную систему, а также безопасную рабочую среду «песочницы».

Кроме того, использование Golang вместо C++ в качестве базового языка упрощает добавление расширенных функций, чем в Node, таких как добавление поддержки http2.0 в Go, просто путем добавления некоторого API маршрутизации и некоторой конфигурации в protobuf.

Deno был создан для создания более простых и безопасных сред выполнения без браузера, и это происходит в то время, когда инструменты разработки лучше, чем в 2009 году.

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

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

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

Адрес Deno Github:

https://github.com/ry/deno