LINUX.ORG.RU

Deno 1.0

 ,

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 ()
Последнее исправление: Princesska (всего исправлений: 4)

И тут этот носок… Ненужно.

anonymous
()

Я бы добавил

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

Извиняюсь, про Райана действительно не написали. Но все остальное есть. :)

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

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

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

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

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

Cпасибо! Крейт действительно важно упомянуть; Дополнил новость, и в связи с этим добавил тег «rust». Явный доступ к ФС, сети и окружению, разумеется, упомянут.

Princesska ★★★★
() автор топика

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

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

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

пробывать

Всё что нужно знать о жаваскриптерах

anonymous
()

Годно, нужно.

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

Написан на Rust.

И да, rust - это (иногда) хорошо, но зачем об этом орать на каждом углу? Вы же не свидетели иеговы «Хотите поговорить о расте?»

Gentooshnik ★★★★★
()

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

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

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

rk-d
()
Ответ на: комментарий от rk-d

Только, насколько я понял, они таки наступили на те же грабли и не позволяют выдавать права отдельным модулям

rk-d
()

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

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

anonymous
()

А как все остальные фишки ноды и V8 типа JIT-компилятора и кучи разных оптимизаций? Их тоже переписали?

anonymous
()

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

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

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

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

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

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

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

arturianec100
()
Последнее исправление: arturianec100 (всего исправлений: 1)
Ответ на: комментарий от anonymous

нет, они несколько лет делали биндинги к русту, а когда доделали сказали, что теперь это очень безопасно. наслаждайся.

anonymous
()

Еще вот это:

Исполнение 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
()
Ответ на: комментарий от anonymous

А, то есть это реализация некоторых JS-функций на русте (плюс загрузчик)? Ясно, спасибо.

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

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

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

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

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

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

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

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

Вот это номер, прямо как руст изнутри на самом деле шланг.

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
()

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

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

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

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

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

anonymous
()

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

bread
()

пока это в состоянии чего-то кривого и непонятного

за 5 минут так и не смог сделать import в REPLe

Int0l ★★
()
Последнее исправление: Int0l (всего исправлений: 1)
Ответ на: комментарий от bread

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

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

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

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

bread
()

Node.js - нужно

Deno - ну не знаю, не знаю…

YogSagot ★★
()
Последнее исправление: YogSagot (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

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

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

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

ллвм для шланга

LLVM began as a research project at the University of Illinois, with the goal of providing a modern, SSA-based compilation strategy capable of supporting both static and dynamic compilation of arbitrary programming languages.

DarkEld3r ★★★★★
()

Он же сам говорил, что Go достаточно, зачем нам этот Deno? Go реально достаточно для сервера. А тут какое-то шило на мыло.

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

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

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

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

menangen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.