LINUX.ORG.RU

Deno 1.0

 ,


2

7

Состоялся мажорный релиз Deno – открытой, безопасной среды выполнения программ на языке TypeScript, обладающей следующими особенностями:

  • Исключительно явный доступ к файловой системе, сети и окружению через установку соответствующих разрешений пользователем;
  • Исполнение TypeScript без Node.JS и tsc;
  • Обратная совместимость с Javascript: любое подмножество программ для Deno, не ссылающееся на глобальное пространство имён Deno и являющееся валидным Javascript кодом можно исполнять в браузере;
  • Поставка в виде единственного исполняемого файла, также содержащего в себе дополнительные инструменты, такие как
    • deno run --inspect-brk: дебаг-сервер, взаимодействующий с Visual Studio Code и инструментами удалённой отладки в Google Chrome;
    • deno install: установщик программ для Deno из удалённых ресурсов. Производит загрузку вместе с зависимостями и добавляет в $HOME/.deno/bin cкрипт для запуска программы;
    • deno fmt: производит форматирование кода;
    • deno bundle: бандлер программ на Deno. Производит js-файл, содержащий в себе программу для Deno и её зависимости;
    • WIP: генератор документации и инструмент аудита зависимостей;
  • Отсутствие зависимости от npm и package.json: внешние модули подгружаются и используются (загрузка по сети происходит только во время первого выполнения, в дальнейшем модуль кэшируется вплоть до вызова с флагом --reload) после указания их URL прямо в программе:
    import * as log from "https://deno.land/std/log/mod.ts";
    
  • Абсолютно все асинхронные операции возвращают Promise, в отличие от Node.JS;
  • Выполнение программы всегда останавливается при возникновении необработанных ошибок.

Deno – встраиваемая среда, и может быть использована для расширения существующих программ на Rust с помощью крейта deno_core.

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

Deno подходит для использования в качестве выполнения скриптов – поддерживается вызов через shebang.
Есть REPL.
Написано на языке программирования Rust.

>>> Подробности



Проверено: leave ()

Я бы добавил

  • что автор Deno был одним из создателей Node
  • Написан на Rust.
  • Crait core_deno для встраивания JS в rust приложения.
  • песочницы V8 включены и по умолчанию нет доступа к фаловой системе, сети и т.д. Доступ нужно включить явно.
grim ★★★☆ ()
Последнее исправление: grim (всего исправлений: 3)
Ответ на: комментарий от grim

Не нашёл ничего кроме rust

Про явный доступ вот:

Исключительно явный доступ к файловой системе, сети и окружению через установку соответствующих разрешений пользователем;

Grom_ ()

Исполнение TypeScript без Node.JS и tsc;

руст - это всё таки какое-то заболевание мозга. поразительное ненужно от оригинального разработчика ненужно.

anonymous ()

Нужно. Как минимум как более молодая альтернатива ноде. Когда буду в следующий раз писать что-нибудь на жс, обязательно посмотрю.

Исключительно явный доступ к файловой системе, сети и окружению через установку соответствующих разрешений пользователем;

Вот это реально киллер-фича, учитывая какие приколы иногда хранит npm

rk-d ()

я прально понял, что песочница для хелоуворлдов, а для реальных приложений запускают с включённой сетью (как без этого), фс, и прочим :)

классика руста просто, выдать ограничение за сверхвозможности

anonymous ()

Любопытно какое будущее будет у этого проекта. Особенно хоть одна киллерфича для веба по сравнению с тем же го. Надеюсь, все понимают, что бОльшей части ЦА всё равно, что там «под капотом» - кресты или раст?

Вообще не понимаю: зачем и рантайм, и ПМ, и фмт, и бандлер вшивать в один испольняемый бинарь. Я понимаю подход «вся программа - это один бинарь со вшитыми зависимостями», у меня wtf по поводу «разные тулзы в одном». Их же логично отдельно разрабатывать.

Было бы актуально написать пару фраз «чем этот ПМ лучше и почему он не станет такой помойкой, как npm».

Любопытно, что здесь ставка на ТС, разработка которого вроде как контролируется M$, который уже вложил в npm столько, что можно было бы накормить этими деньгами чуть ли не всю Африку (правда всего пару раз + чиновники любого государства всё испортили бы, но это другая история). Так что манагерам M$ не по нраву «мы только инвестировали, как для хипстеров выкатили новый рантайм со своей экосистемой».

В случае успеха deno будет ещё один повод скандировать лозунг «раст шагает по планете и побеждает!!!». И при этом умолчать, что тогда на одного deno-разработчика на расте будет приходиться 9000 deno-разработчиков на тс.

Плюс царская риторика «скриптуха ворует крестовой v8» всё также непротиворечива. Но это уже другая история…

Имхо, вангования о будущем js/ts интереснее, чем очередной растосрач.

arturianec100 ()
Последнее исправление: arturianec100 (всего исправлений: 1)

Еще вот это:

Исполнение TypeScript без Node.JS и tsc;

tsc у них встроен, по ссылке они явно говорят, что используют его от микрософта. Есть планы переписать его на руст, но очень далекие: «Internally Deno uses Microsoft’s TypeScript compiler to check types and produce JavaScript.», «TSC must be ported to Rust.», и «This will be a massive undertaking and will not happen any time soon». (из контекста вроде не вырывал).

anonymous ()
Ответ на: комментарий от arturianec100

Надеюсь, все понимают, что бОльшей части ЦА всё равно, что там «под капотом» - кресты или раст?

Раст - это как PS3. Стильно, модно, блестит, но игор-то нет, одно мыльное кинцо за 2300. Чтобы этого не замечать, надо обладать довольно-таки запущенной миопией.

anonymous ()
Ответ на: комментарий от arturianec100

Надеюсь, все понимают, что бОльшей части ЦА всё равно, что там «под капотом» - кресты или раст?

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

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

anonymous ()
interface User {
  name: string;
  email: string;
}

const user: User = JSON.parse('{"evil": "foobar"}');

console.log(`${user.name} <${user.email}>`); // undefined <undefined>

Я же правильно понимаю, что никуда ЖСовское поведение не делось и TS как работал в компайл-тайме, так и работает?

static_lab ★★★★★ ()
Последнее исправление: static_lab (всего исправлений: 2)

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

anonymous ()
Ответ на: комментарий от anonymous

сектанты обиделись, что над сектой посмеялись. на, держи, эта копипаста будет вечной:

OpenRA 20170421 (комментарий)

C# - крайне удобный и продуманный язык для разработки проектов самых разнообразных видов. Альтернативы все по сути - кал. Котлин и джава - те же яйца только в профиль. Гоу - си на стероидах, для разработки не годен. C++ - либо использовать подмножество это надмножества над C и стереть руки в кровь, либо укуриться вхламину сначала мануалами на тему, что нынче в нём есть, а потом на тему - что, как и где поддерживается. В любом случае, на моём опыте, могу сказать, что на шарпе разработка идёт в разы быстрее, чем на крестах, при примерно одинаковом уровне владения этими языками. Продолжать можно долго. Авторы выбрали то, что выбрали. Их право, тем более, что проект бесплатный. Не нравится - перепиши на том, что считаешь правильным ЯП.

anonymous ()

Это та же нода, но без пакетов из npm? Всю помойку нужно будет заново переписывать на typescript? Или как? Непонятна цель велосипеда. Я сначала подумал, что это замена V8. Но конечно растишки такое потянуть не могут.

bread ()
Ответ на: комментарий от bread

Что за откровенно глупое предложение о растишках? Сишки так-то тоже не могут. На самом деле, потянуть разработку альтернативного полноценного, ничем не уступающего V8, движка могут разве только компании вроде Мозиллы, которые в теме. Микрософт вот не смогли, их движок заметно медленнее был. Завязывайте с откровенно тупым хейтом.

anonymous ()
Ответ на: комментарий от anonymous

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

Но это же как раз логово растишек. И мозиле как раз нужен такой движок.

bread ()
Ответ на: комментарий от anonymous

А зачем переписывать то, что и так отлично работает? LLVM сознательно заточен на использование разными языками, о каком воровстве речь?

anonymous ()
Ответ на: комментарий от bread

Продолжая мысль выше, Мозилла решила переписать то, что действительно в этом нуждается, и, помимо этого, создают новое А движок JS у них и так очень даже ничего, зачем переписывать ради переписывания?

anonymous ()
Ответ на: комментарий от anonymous

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

Esper ()
Ответ на: комментарий от anonymous

Им надо было быть умней - взять вместо v8 движок от FaceBook - Hermes и уже над ним писать обвязку на расте, плюс переписать на раст typescript компилятор и всё это в единую виртуальную машину, которая была бы на LLVM (как hermes)

menangen ★★★★★ ()