The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Автор Node.js представил защищённую JavaScript-платформу Deno 1.0

14.05.2020 09:08

После двух лет разработки представлен первый значительный выпуск Deno 1.0, платформы для обособленного выполнения приложений на языках JavaScript и TypeScript, которая может быть использована для создания обработчиков, работающих на сервере. Платформу развивает Райан Даль (Ryan Dahl), создатель Node.js. Как и в Node.js в Deno используется JavaScript-движок V8, который также применяется в браузерах на основе Chromium. При этом Deno не является ответвлением от Node.js, а представляет собой созданный с нуля новый проект. Код проекта распространяется под лицензией MIT. Сборки подготовлены для Linux, Windows и macOS.

Значительный номер версии связан со стабилизацией API в пространстве имён Deno, которые отвечают за взаимодействие приложений с ОС. Программные интерфейсы, которые пока не стабилизированы, по умолчанию скрыты и доступны только при запуске в режиме "--unstable". По мере формирования новых версий подобные API постепенно будут переводиться в разряд стабильных. API в глобальном пространстве имён, включающий такие общие функции как setTimeout() и fetch(), по возможности приближен к API обычных web-браузеров и развивается в соответствии с Web-стандартами для браузеров. Предоставляемые Rust API, которые применяется непосредственно в коде платформы, а также интерфейс для разработки плагинов к Deno runtime, пока не стабилизированы и продолжают развиваться.

Ключевыми мотивами создания новой JavaScript-платформы стало желание устранить концептуальные ошибки, допущенные в архитектуре Node.js, и предоставить пользователям более защищённое окружение. Для повышения безопасности обвязка вокруг движка V8 написана на языке Rust, позволяющем избежать многих уязвимостей, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера. Для обработки запросов в неблокирующем режиме применяется платформа Tokio, также написанная на языке Rust. Tokio позволяет создавать высокопроизводительные приложения на основе событийно-ориентированной архитектуры (Event-driven), поддерживающие многопоточность и обработку сетевых запросов в асинхронном режиме.

Основные особенности Deno:

  • Ориентация на безопасность в конфигурации по умолчанию. Обращения к файлам, сетевые возможности и доступ к переменным окружения по умолчанию блокированы и требуют явного включения. Приложения по умолчанию запускаются в изолированных sandbox-окружениях и не могут получить доступ к системным возможностям без предоставления явных полномочий;
  • Встроенная поддержка языка TypeScript помимо JavaScript. Для проверки типов и генерации JavaScript задействован штатный компилятор TypeScript, что приводит к проседанию производительности по сравнению с разбором JavaScript в V8. В будущем планируется подготовить собственную реализацию системы проверки типов TypeScript, которая позволит на порядок поднять производительность обработки TypeScript;
  • Runtime поставляется в форме одного самодостаточного исполняемого файла ("deno"). Для запуска приложений при помощи Deno достаточно загрузить для своей платформы один исполняемый файл, размером около 20 Мб, не имеющих внешних зависимостей и не требующий какой-то особой установки в систему. При этом deno не является монолитным приложением, а представляет собой коллекцию crate-пакетов на Rust (deno_core, rusty_v8), которые могут использоваться по отдельности;
  • При запуске программы, а также для загрузки модулей можно использовать адресацию через URL. Например, для запуска программы welcome.js можно использовать команду "deno https://deno.land/std/examples/welcome.js". Код с внешних ресурсов загружается и кэшируется на локальной системе, но никогда автоматически не обновляется (для обновления требуется явно запустить приложение с флагом "--reload");
  • Эффективная обработка в приложениях сетевых запросов по HTTP, платформа рассчитана на создание высокопроизводительных сетевых приложений;
  • Возможность создания универсальных web-приложений, которые могут выполниться как в Deno, так и в обычном web-браузере;
  • Наличие стандартного набора модулей, использование которых не требует привязки к внешним зависимостям. Модули из стандартной коллекции прошли дополнительный аудит и проверку на совместимость;
  • Кроме runtime платформа Deno также выполняет роль пакетного менеджера и позволяет внутри кода обращаться к модулям по URL. Например, для загрузки модуля можно указать в коде "import * as log from "https://deno.land/std/log/mod.ts". Файлы, загруженные с внешних серверов по URL, кэшируются. Привязка к версиям модулей определяются через указания номеров версий внутри URL, например, "https://unpkg.com/[email protected]/dist/liltest.js";
  • В состав интегрирована система инспектирования зависимостей (команда "deno info") и утилита для форматирования кода (deno fmt);
  • Все скрипты приложения могут быть объединены в один JavaScript файл.



Отличия от Node.js:

  • Deno не использует пакетный менеджер npm и не привязывается к репозиториям, адресация модулей осуществляется через URL или по файловому пути, а сами модули могут размещаться на любом сайте;
  • В Deno не используется "package.json" для определения модулей;
  • Различие API, все асинхронные действия в Deno возвращают promise;
  • Deno требует явного определения всех необходимых полномочий для файлов, сети и переменных окружения;
  • Все ошибки, не снабжённые обработчиками, приводят к завершению выполнения приложения;
  • В Deno применяется система модулей ECMAScript и не поддерживается require();
  • Встроенный HTTP-сервер Deno написан на TypeScript и работает поверх нативных TCP-сокетов, а HTTP-сервер Node.js написан на Си и предоставляет привязки для JavaScript. Разработчики Deno сосредоточили усилия на оптимизации всего слоя TCP-сокетов и предоставление более общего интерфейса. HTTP-сервер Deno обеспечивает меньшую пропускную способность, но гарантирует предсказуемые низкие задержки. Например, в тесте простое приложение на базе Deno HTTP server смогло обработать 25 тысяч запросов в секунду с максимальной задержкой в 1.3 миллисекунд. В Node.js аналогичное приложение обработало 34 тысячи запросов в секунду, но задержки колебались от 2 и 300 миллисекунд.
  • Deno не совместим с пакетами для Node.js (NPM), но отдельно развивается прослойка для совместимости со стандартной библиотекой Node.js, по мере развития которой в Deno смогут запускаться всё больше приложений, написанных для Node.js.


  1. Главная ссылка к новости (https://github.com/denoland/de...)
  2. OpenNews: Проект Deno развивает защищённую JavaScript-платформу, похожую на Node.js
  3. OpenNews: Бывший техдиректор NPM развивает распределённый репозиторий пакетов Entropic
  4. OpenNews: Выпуск серверной JavaScript-платформы Node.js 14.0
  5. OpenNews: Facebook открыл код JavaScript-движка Hermes
  6. OpenNews: Mozilla развивает WASI для использования WebAssembly вне браузера
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52947-deno
Ключевые слова: deno, node.js, rust, javascript, typescript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (99) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:50, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оно ведь однопоточное, да?
     
     
  • 2.2, Аноним (2), 09:54, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Deno supports Web Worker API.

    Workers can be used to run code on multiple threads. Each instance of Worker is run on a separate thread, dedicated only to that worker.

    https://deno.land/manual/runtime/workers

     
     
  • 3.5, Аноним (1), 10:10, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну так это и в обыкновенном JS/ноде есть.
     
     
  • 4.17, Аноним (17), 10:53, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так тут обещают Токио на Расте.
     
     
  • 5.22, Аноним (22), 11:16, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Токио на Расте
    Название аниме, не иначе.
     
     
  • 6.23, Аноним (23), 11:20, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я, наверное, старый уже, но первая ассоциация у меня — фильмы про Годзиллу.
     
  • 5.24, Аноним (1), 11:38, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нода на libuv который тоже, внезапно, умеет многопоточность (в C), но от этого сама нода не становится многопоточной; такие дела.
     
     
  • 6.26, коржик (?), 11:42, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    токио тоже как бы не про многопоточность, а про асинхронность и IO
     
     
  • 7.28, Аноним (1), 12:01, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Tokio позволяет создавать высокопроизводительные приложения на основе событийно-ориентированной архитектуры (Event-driven), поддерживающие многопоточность

    слово "многопоточность" мне померещилось, наверное...

     
     
  • 8.91, Аноним (91), 12:07, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Именно V8 не умеет в многопоточный жс , потому что для каждого воркера он со... текст свёрнут, показать
     
  • 2.44, Аноним (44), 12:50, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Правильный ответ:
    1. Сетевая часть сделана на Rust + Tokio через thread pool.
    2. Клиентская (API, твой ts/js-код) часть сделана через Web Worker API.
    3. Each instance of Worker is run on a separate thread, dedicated only to that worker. -- скорее ограничение, т.к. режим thread pool (в общем понимании; с растом никак не связан) может быть предпочтительней для ряда приложений.
    4. Worker внутри Worker можно, но unstable и поддерживается только полное копирование прав от основного процесса: https://deno.land/manual/runtime/workers

    Итог: полноценного API к потокам пока что нет. Возможно завезут позднее, т.к. идея deno ближе к питону, перлу, нежели просто вертеть JS через http на сервере.

     
     
  • 3.74, хотел спросить (?), 22:22, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    притом js в силу своей браузерной природы не дает передавать данные между потоками полноценно

    да и вообще кому это говнище надо... я про сам язык

     
     
  • 4.94, Аноним (94), 19:55, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    JS - быстрейший скриптовый язык. Всяким питоноруби и не снилось.
    Но потоки немного неудобные, да
    Впрочем, потоки в JS - далеко не ежедневный юзкейс
     
     
  • 5.95, хотел спросить (?), 01:11, 16/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    быстрейшим не может быть язык, быстрейшим может быть только его реализация у мен... большой текст свёрнут, показать
     
     
  • 6.97, Lex (??), 23:41, 17/05/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Шарп и джава.. невольно вспоминаются времена, когда даже простое шарповое приложение было легко узнать по тому, что даже на десктопе оно запускалось с очень ощутимым лагом и не давало никаких ощутимых плюсов в плане производительности.
    Про джаву с её апплетами в вебе, пожалуй, даже и вспоминать не стоит, т.к то г.нище не то, что с js, но даже с flash ни шло ни в какое сравнение по тормознутости и жору ресурсов.
    Но это уже к слову о неудачных попытках и проч.
     
  • 2.48, Вы забыли заполнить поле Name (?), 13:21, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если js, то однопоточный конечно.
     
  • 2.87, КО (?), 09:43, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    С одной стороны да, с другой стороны ничто не мешает обратиться приложению к себе же, как к серверу и вызвать еще один обработчик.
     

  • 1.3, Аноним (3), 10:03, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Кажись буква "e" там лишняя в названии...
     
  • 1.6, Аноним (6), 10:11, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Интересно, как там соблюдается безопасность rust плагинов, которые могут обращаться куда угодно и читать что угодно (ну, пока операционка позволяет)
     
     
  • 2.50, jOKer (ok), 13:24, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вероятно платформа гарантирует безопасность исполнения js-скриптов, но не гарантирует безопасности исполнения собственных компонентов. Для этой цели есть ОС. Хотя, конечно, какие-то общие правила и минимальная "защита от дурака" в плагинах, скорее всего, все же есть.
     
     
  • 3.72, Аноним (72), 20:44, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вероятно платформа гарантирует безопасность исполнения js-скриптов, но не гарантирует
    > безопасности исполнения собственных компонентов. Для этой цели есть ОС. Хотя, конечно,
    > какие-то общие правила и минимальная "защита от дурака" в плагинах, скорее
    > всего, все же есть.

    А то!
    "Автор Node.js представил защищённую JavaScript-платформу"
    Помяните моё слово, вангую: "Скриншотьте, посоны! То что представлено как защищённое, а уж тем более на JS не простоит и года, как надут дыру или кто-то ломанёт!"

     
     
  • 4.88, Аноним (88), 11:28, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ...Автор Node.js представил защищённую JavaScript-платформу ... Скриншотьте, посоны

    На шутку не тянет ну совсем, глупо. Что скриншотить, заголовок статьи, который (заголовок) "автор ноде" не писАл? Вы только заголовки статей читаете, саму статью не удосужились? (хоть и ее "автор ноде" не писАл).

    В самой статье там далее пишется "... и предоставить пользователям более защищённое окружение.". Не абсолютная и полная безопасность, а только её некоторое повышение (слово "более"). Опять же следом фраза "Для повышения безопасности обвязка вокруг..." - не полное исключение уязвимостей, а только уменьшение их возможного кол-ва.

     

  • 1.7, jehy (?), 10:12, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Писал о том, что это бесполезная хрень, полгода назад (https://habr.com/ru/post/476972/). Мне клялись и божились написать, как и в чём я не прав. Воз и ныне там.
     
     
  • 2.18, terryfilch (ok), 10:53, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если бы так господа думали, то и Python и C# и даже java не появились, ибо ну есть С/С++ и збс, юзаем их
     
     
  • 3.58, Gefest (?), 14:01, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Поржал. Мало было в 80-х интерпретаторов ...
     
  • 3.75, хотел спросить (?), 22:29, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Java и C# вполне себе годные вещи и покрывают определенную и притом немаленькую нишу на рынке.

    Питон как язык шляпа еще та, но имеет свои инфраструктуру, крутится под линем без проблем, много AI framework'ов и всяких других плюх. Ниша поменьше у тем не менее...

    JS - это унылое Г, для которого просто нет альтернатив в браузере.

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

    Притом начинает страдать десктоп от всяких электронов, нодов и прощей куйни.

     
     
  • 4.98, Lex (??), 23:51, 17/05/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    171 Годной вещью 187 тот же шарп на десктопе стал лишь с ростом производител... большой текст свёрнут, показать
     
  • 4.99, Somebody you used to know (?), 11:48, 18/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У вас какая-то детская травма? Чего вы так рьяно поливаете JS дерьмом? Его создали в середине 90-х. С тех пор очень многое изменилось. А вы судите язык, который развивается и уходит от многих проблем, как будто его вчера создали и сразу сделали плохо.

    Он выполняет свою функцию. Он был сделан для веба и в вебе он очень хорошо работает. Там не нужны супер сложные алгоритмы, работа с памятью и так далее. Для 90% того, что вы хотите сделать в браузере - его достаточно. В если вы хотите играть в 3D игры уровня UT3 в браузере, то это не проблема языка или браузера, это ваша проблема.

     
     
  • 5.100, JL2001 (ok), 12:23, 18/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Чего вы так рьяно поливаете JS дерьмом?
    > Его создали в середине 90-х. С тех пор очень многое изменилось.

    ничего не изменилось
    как не было ститической типизации - так и нету
    наоборот - за это время он ещё и стандартнообфусцированным стал и в этом преимущество перед вебасембли потерял

    > Он выполняет свою функцию. Он был сделан для веба и в вебе
    > он очень хорошо работает. Там не нужны супер сложные алгоритмы, работа
    > с памятью и так далее. Для 90% того, что вы хотите
    > сделать в браузере - его достаточно.

    и поэтому хабр после майского обновления интерфейса на 50 комментах в мобильном браузере вешает мне показ комментов или вообще пишет "комментов: 50. Извините, комментов к статье пока нету!"

    а на опеннете 200 комментов летают в том же браузере

     
     
  • 6.101, хотел спросить (?), 18:14, 18/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы только одна статическая типизация.
    Они "решили" эту проблему с помощью TypeScript.
    Oчередной костыль, в котором нет ничерта: ни неймспейсов, ни полноценного ООП.
    Да и смысл в очередном транспайлере. Тогду уж лучше Bridge.NET, потяжелее будет, но зато полноценный C#.

     
  • 2.35, proninyaroslav (ok), 12:23, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Полезная или бесполезная будеть зависеть от хайпа.
     
     
  • 3.76, хотел спросить (?), 22:30, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы путаете полезность и популярность.
     
     
  • 4.79, proninyaroslav (ok), 00:14, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вы путаете полезность и популярность.

    Ну если он популярен значит он кому-то полезен, например для зарабатывания денег или для самоудовлетворения

     
  • 2.41, Анончик (?), 12:39, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Пройдём по пунктам:
    >Rust — не преимущество.

    Ну если вы не собираетесь разрабатывать эту платформу то конечно нет.
    >TypeScript — не преимущество.

    Да все верно js  форева [1, 2, 3] + [4, 5, 6]  // -> '1,2,34,5,6'
    >Загрузка модулей по URL без NPM — скорее два шага назад.

    ага сейчас то идеяльно, кучка на гитхабе и кучка в npm, красота
    В npm нет проблем именно по этому у вас, npm,yarn, ...
    >Улучшения безопасности — выглядит ужасно.

    Очень рад что вы так считаете, curl http://nevedomaja.hren/to/me/install.sh | bash
    >Остальные отличия непринципиальны. Разве что лого. Лого офигенное. Люблю динозавров!

    Ну хотя бы что то вам нравиться, заль вы не столь известны как автор Deno у вас столько классных проектов https://github.com/jehy

     

  • 1.8, Im banana man (?), 10:15, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    То есть автор встал в позу, обиделся на всех, за 2 года напилил свой "Node.JS version 2.0" без NPM и барышень.

    Очень напоминает персонажа, кто также встал в позу и стал делать Svelte-фреймворк.

    Поживем - увидим. То ли останутся фриковыми поделиями. То ли порвут всех и мы будем юзать Svelte/Deno (сомневаюсь).

     
     
  • 2.19, имя (ok), 10:55, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    От Svelte хотя бы минимальная польза есть: <s>джаваскриптеры будут продолжать страдать, переписывая сайтик на очередном фреймворке</s> может хоть этот ужас с конструкциями типа «$:» поспособствует похудению и ускорению монструозных страниц, занятых сейчас бесполезным перетеребонькиванием virtual DOM.
     
     
  • 3.21, Аноним (17), 11:14, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ничто не мешает им генерировать статику на сервере на том же ноджсе или этим дено. Они решают проблему которой нет.
     
     
  • 4.45, имя (ok), 13:02, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ах, если б только все сайты были статичными, а приложения — нативными… Увы, такого в ближайшее время ожидать не приходится.
     
  • 3.61, Im banana man (?), 16:06, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > От Svelte хотя бы минимальная польза есть: <s>джаваскриптеры будут продолжать страдать,
    > переписывая сайтик на очередном фреймворке</s> может хоть этот ужас с конструкциями
    > типа «$:» поспособствует похудению и ускорению монструозных страниц, занятых
    > сейчас бесполезным перетеребонькиванием virtual DOM.

    Очередная возня в маленьком мирке жабаскриптеров. Заняться нечем - переписывают с фреймворка на фреймворк.

     
  • 2.62, Аноним (62), 17:28, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Очень напоминает персонажа, кто также встал в позу и стал делать Svelte-фреймворк.

    А его идеи подхватил Evan You в Vue.js
    Что в этом плохого?

     
     
  • 3.65, Im banana man (?), 18:23, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Очень напоминает персонажа, кто также встал в позу и стал делать Svelte-фреймворк.
    > А его идеи подхватил Evan You в Vue.js
    > Что в этом плохого?

    Чем бы дитя не тешилось. Просто фрагментарность мирка JS многих пугает. + NIH-синдром повсеместный. В итоге делаем тысячи библиотек, делающих то же самое )


     
     
  • 4.77, хотел спросить (?), 22:37, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так каждый надеется на то, что вот он запилит охрененный фреймворк, исправит косяки присущие другим фреймворками, в итого получается очередной N+1 говенный фреймворк.

    Никакой макияж не поможет, если у тебя 3 ноги ))


     
  • 4.86, Аноним (62), 04:53, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто фрагментарность мирка JS многих пугает.

    Кого пугает, пусть дома сидят :)
    А если серьёзно, когда в очередной раз меня достало заниматься манипулированием DOM дерева, я понял, что надо уже что-то изучать. Посмотрел на React — пздц, посмотрел на Angular — тоже. Попался мне vuejs ещё тогда версии 1 и с тех пор ещё ни разу не пожалел, что выбрал его.
    Притом что я больше backend.

     
     
  • 5.89, Im banana man (?), 11:37, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Просто фрагментарность мирка JS многих пугает.
    > Кого пугает, пусть дома сидят :)
    > А если серьёзно, когда в очередной раз меня достало заниматься манипулированием DOM
    > дерева, я понял, что надо уже что-то изучать. Посмотрел на React
    > — пздц, посмотрел на Angular — тоже. Попался мне vuejs ещё тогда
    > версии 1 и с тех пор ещё ни разу не пожалел,
    > что выбрал его.
    > Притом что я больше backend.

    Чем Vue так лучше React? Просто интересно.

     
  • 2.90, Вы забыли заполнить поле Name (?), 11:38, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > То есть автор встал в позу, обиделся на всех, за 2 года напилил свой "Node.JS version 2.0" без NPM и барышень.

    Где инфа, что он обиделся? От ноды он уже давно ушел.

     

  • 1.9, Иваня (?), 10:17, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Ненужно, буду пользоваться NodeJS, там всё уже есть, куча туториалов написано как безопасно использовать.
     
     
  • 2.73, Led (ok), 21:50, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ненужно, буду пользоваться NodeJS

    Всё верно: NodeJS как раз для таких, как иваня.

     

  • 1.10, ейтер (?), 10:22, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зря автор отказался от package.json. Очень удобно видеть когда сторонная либа обновляется.
    Ну и пользователи Deno готовьтесь что клон проекта спустя полгода будет смотреть на битые JSки. Централизованные репозитории были лучше.
     
     
  • 2.13, Аноним (17), 10:40, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Го такой же пакетный менеджер как и в Го все работает. УМВР.
     
     
  • 3.14, Аноним (14), 10:44, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > В Го такой же пакетный менеджер как и в Го все работает.

    Ась? Где опечатка то?

     
     
  • 4.15, Аноним (17), 10:47, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    В Дено такой же пакетный менеджер как и в Го. И в Го все работает.

    Ехал Го через Го, Го-Го, И-Го-Го.

     
  • 3.78, Аноним (78), 23:17, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты наверное умалчиваешь что в го появилась возможность и более привычным способом ставить зависимости с явным указанием версий.. И что людям оно зашло больше чем изначально предлагает голенг
     
  • 2.81, deeaitch (ok), 02:14, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    json головного мозга
     

  • 1.11, Аноним (11), 10:32, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >js
    >на сервере

    Устарело. В 2020 году на сервере предпочитают более производительные решения.

     
     
  • 2.16, terryfilch (ok), 10:52, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    например какие?
    я за последний год штук 100 проектов видел в разных компаниях на nodejs, и фрилансеры в основе своей предлагают пилить веб на нем, т.к. хоть и криворукие но все же один язык для фронта и бекенда...

    я не защищаю, просто есть стереотип, но SPA приложения/сайты/страницы нужно пилить именно на node.js, при том, что на go/rust, да даже python api пишутся быстрее и качественнее в итоге для саппорта и миграции, нежели на меркзом node

    за форк я только плюсую автору Deno, т.к. все в курсе, что Npm выкуплен MS-ом, потому скорей всего Deno будет жить + вангую, что автор давно предвидел покупку npm-a, потому напилил форк

     
     
  • 3.20, Аноним (17), 11:02, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше бы он запилил единую библиотеку со всеми лефтпадами и прочими фичами которые в джаваскрипт забыли положить.
     
     
  • 4.34, trikadin (?), 12:22, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Sugar.js уже есть
     
     
  • 5.40, Антон (??), 12:31, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    посмотрел. Какая-то помесь jQuery и lodash родом из 2011. Никогда о ней не слышал. В чем профит?
     
     
  • 6.60, НяшМяш (ok), 14:38, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати никто не мешает подключить в дено тот же лодаш, в нём нет платформозависимых вещей.
     
  • 4.66, Im banana man (?), 19:06, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше бы он запилил единую библиотеку со всеми лефтпадами и прочими фичами
    > которые в джаваскрипт забыли положить.

    Лефтпад уже в стандарте языка. С разморозкой

     
     
  • 5.69, Аноним (69), 20:13, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вон недавно еще с какой-то микролибой весь ноджс мирок покрашился. Это пора прекращать.
     
     
  • 6.92, Im banana man (?), 12:13, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вон недавно еще с какой-то микролибой весь ноджс мирок покрашился. Это пора
    > прекращать.

    Так уже. Организации хостят свои репозитории с библиотеками, не полагаясь на глобальный NPM. Nexus, насколько я помню для этого годится

     
  • 3.68, Аноним (14), 19:56, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > за форк я только плюсую автору Deno, т.к. все в курсе, что Npm выкуплен MS-ом

    И что? NPM - не часть ноды, можно использовать любой другой пакетный менеджер, этот просто выбран дефолтным (там даже разрабы разные), т.к. был первым.

     
  • 2.25, коржик (?), 11:40, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    я бы в 2020 дотнет рекомендовал. C# 8, няшка, его очень хорошо научили работать с нуллабельными значениями. Строгие типы, функциональщина, linq, ооп, одна из лучших имплементаций дженериков. Нормальный нугет. .net core. Хороший инструментарий в виде Rider/Resharper

    Но я дотнетчик и не вижу всей картины в целом.

     
     
  • 3.27, Anonym6778 (?), 11:58, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    NetCore, кстати, неплох: MIT-лицензия и C# развивается хорошо, в отличие от java, у которой сомнительная лицензия и сам язык java еле-как развивается.
    В этом году вроде Net5 обещают выпустить.
     
     
  • 4.29, 111 (??), 12:09, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У Java есть ранатайм от Oracle, и есть от OpenJDK.

    Первый платный, второй бесплатный под LGPLv2 + classpath exception. Первый сделан на основе второго + некоторые коммерческие фичи.

    Oracle решила стричь денег с динозавров, кому нужен "официальный JRE с коммерческой поддержкой". Но помимо Oracle есть еще N+1 сертифицированный JRE, так что.

     
     
  • 5.31, A546yfg (?), 12:19, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если java API по free open source лицензии, почему Oracle засудила Google за использование java API в android sdk? Ведь android sdk по Apach 2 лицензии и Google не пытался продавать android sdk.
     
     
  • 6.36, 111 (??), 12:24, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что Oracle хочет денег, и поэтому уже много (10?) лет судится из-за API. Хотя это какой-то бред. А вообще dalvik -- это не совсем та же JVM, что и у Oracle. Там используется Java, другой байткод, кишки. В этом и претензия, наверное была.

    Я кстати думаю, что если бы ReactOS откусила рынок настольных ПК у MS, то там такой же иск подъехал бы. Тут вопрос на миллиарды долларов все-таки.

     
     
  • 7.39, A546yfg (?), 12:27, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    есть сомнения, что технология java не является free open source технологией
     
     
  • 8.43, 111 (??), 12:45, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы Google взяли JVM от OpenJDK Oracle, то этого не было бы У таких крупных... текст свёрнут, показать
     
  • 6.38, 111 (??), 12:26, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    * в Dalvik другой байткод, другие кишки, другое все. Т.е. это несовместимая с официальной спекой JVM.
     
  • 4.32, 111 (??), 12:19, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    И да, язык развивается медленно, но гармоничнее. На подходе достаточное кол-во фич, которые зарекомендовали себя в других языках, а что-то вообще свое в принципе. Посмотрите roadmap, что ли. Плюс в Java есть такая вещь как 100%* обратная совместимость (один из основных якорей).
    Для любителей свежего есть Kotlin/Scala. Первый вообще выглядит как один из самых сбалансированных и продуктивных языков в мире на текущий момент. Scala 3 тоже на пятки наступает.

    C# очень часто напоминает полигон технологий: туда тащат вообще все подряд, в итоге у языка проблема С++ -- одну и ту же вещь можно сделать M+1 способом. А потом это читай и поддерживай.

    * если не использовать internal api и подтягивать, вынесенные в либы, компоненты.

     
     
  • 5.37, A546yfg (?), 12:26, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    те фичи, которые в java только на подходе, уже давно были в kotlin
     
     
  • 6.42, 111 (??), 12:41, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да, а до этого они были в N+1 языке программирования. Заслуга Kotlin в том, что он собрал в себе фичи очень гармонично, язык в принципе сделан комфортной для работы.

    Ну и на популярность сильно сказалось качество тулинга + почти бесшовный interop + поддержка Android (война с Oracle, из-за которой Google перестал поддерживать актуальные версии Java и обновлять Dalvik).

    Медленное обновление Java -- это фича, в язык берут фичи, без которых уже никто разработку не представляет. Отсюда и лаг -- пока обкатают, пока выберут, пока реализуют. Обратная совместимость опять же (за которую держатся очень сильно, не знаю, нужна или она настолько, но такой приоритет у языка). Тот же Kotlin несколько раз её ломал уже.

     
  • 5.47, Аноним (44), 13:15, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >C# очень часто напоминает полигон технологий

    А с чего все должны равняться на Java? Т.е. это нормально что всем джавистам на собесе задают вопрос, что лучше int, short или byte? Хотя по факту внутри java оперирует только на уровне int, а все остальное (short, byte) это сахарок. И никакого перформанса short и byte по сути не дают. Или это уже не так?

    Второй момент, когда Java научится сама делать минимальный рантайм? Или по-другому, когда она научится динимачески выделять память, а не заставлять программиста высчитывать сколько памяти будет жрать программа?

    Третье, когда в Java завезут нормальный GUI, а не поделие из 2000х?

    P.S. Это все риторические вопросы, чтобы java-фаны не раскидывались словами, что java ути-пути какая крутая, а все остальные ЯП это фуфло.

     
     
  • 6.49, 111 (??), 13:24, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ни разу такой вопрос не задавали, по внутренностям скорее про JMM и GC спрашивали. Ну и в целом странный аргумент.

    Минимальный рантайм это что? модульный JRE (JPMS)? Ну ему уже лет 5-6, наверное. Или речь про параметры потребления памяти? Ну так работает GC. Никто не запрещает сделать xmx равный всему объему RAM или настроить GC.

    Есть JavaFX, но до WPF/QML ему далеко.

    P.S. хреновые риторические вопросы, на которые есть ответы.

     
     
  • 7.52, Аноним (44), 13:32, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Или речь про параметры потребления памяти? Ну так работает GC. Никто не запрещает сделать xmx равный всему объему RAM или настроить GC.

    А нафига программисту этим заниматься вообще?

    >P.S. хреновые риторические вопросы, на которые есть ответы.

    Конечно есть ответы, т.к. это они показывают изъяны в идеальной java.

     
     
  • 8.54, 111 (??), 13:36, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что от этого зависит производительность приложения Можно поставить сред... текст свёрнут, показать
     
     
  • 9.56, Аноним (44), 13:48, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А, теперь ты задаешь риторические вопросы ОК От размера пула памяти при динами... большой текст свёрнут, показать
     
     
  • 10.57, 111 (??), 14:01, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Java изначально позиционировалась как серверная система Для любого приложения н... текст свёрнут, показать
     
     
  • 11.59, Аноним (44), 14:12, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    О истории Java https en wikipedia org wiki Java_ software_platform History Кл... большой текст свёрнут, показать
     
  • 7.55, Аноним (44), 13:36, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Есть JavaFX

    This software is licensed under GPL v2 https://gluonhq.com/products/javafx/

    Ты что советуешь? Что это? Как на этом деньги зарабатывать? Ау =)))

     
  • 6.51, 111 (??), 13:26, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И да, я не против новых языков, наоборот, я только рад новым возможностям. Я говорил про конкретные минусы C# (на котором я тоже, кстати, пишу).
     
     
  • 7.93, Im banana man (?), 12:23, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > И да, я не против новых языков, наоборот, я только рад новым
    > возможностям. Я говорил про конкретные минусы C# (на котором я тоже,
    > кстати, пишу).

    Мне нравилось программирование до тех пор, пока я не встретился с другими программистами ) Вечно какие-то холивары )

     

  • 1.12, Аноним (17), 10:35, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Да этот Даль уже не знает как ему выпендриваться или хайпануть.
     
     
  • 2.63, Аноним (63), 17:45, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Согласен. Достаточно одного Node.js, а зачем он эту платформу запилил? Было бы понятно если бы он например только TypeScript поддерживал, но ведь это же по прежнему использует JavaScript как промежуточный слой. Так же мало гордости в том что он переписал на JavaScript прослойку HTTP. Единственный плюс это пожалуй возможно система сборки получше чем у Node.js
     
     
  • 3.70, Аноним (69), 20:15, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет просто у автора ноды прокаченный них-синдром, он постоянно все хочет сделать и переделать сам.
     

  • 1.30, Dnina (ok), 12:09, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Наканецта, можно переписывать ядро линукса на жс.
    Сначала хотел пошутить про госуслуги, но там хуже уже не будет.
     
  • 1.33, vitalif (ok), 12:20, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Шо, опять?
     
  • 1.46, Аноним (46), 13:04, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >При запуске программы, а также для загрузки модулей можно использовать адресацию через URL
    >Защищенная система

    Тьфу, хипсторы.
    /0

     
     
  • 2.82, deeaitch (ok), 02:16, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И таки да. Они реально сайты на js называют программамми.
     

  • 1.53, leap42 (ok), 13:33, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > представляет собой созданный с нуля новый проект

    вот это означает что в проекте не используются миллионы строк кода движка v8, на то оно и с нуля, а не с миллиона

     
  • 1.64, Dzen Python (ok), 17:55, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Какой смысл js вообще на десктопе?
     
     
  • 2.67, Im banana man (?), 19:08, 14/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Какой смысл js вообще на десктопе?

    Прототипирование и зарабатывание бабла

     
  • 2.83, deeaitch (ok), 02:17, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Очень правильный вопрос.

    Ты ищешь смысл там где его нет.
    Ответ прост. НИКАКОГО.

     
  • 2.85, leap42 (ok), 02:52, 15/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну как минимум производительность: как бы не хотелось этого признавать, JS быстрее любой другой скриптоты в разы
     

  • 1.71, YetAnotherOnanym (ok), 20:33, 14/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    То есть, вместо того, чтобы до написания "платформы" продумать её архитектуру, товарищ бросился кодить, и только через 10 лет прочухался и осознал "концептуальные ошибки".
    > сами модули могут размещаться на любом сайте

    А, не, нифига...

     
     
  • 2.96, Аноним (96), 14:42, 17/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > бросился кодить

    Бросился говнoкодить: C++ не осилил, а на libuv сделал какое-то peшетo с use-after-free. И даже через 10 лет он мало что понял, судя по новым архитектурным решениям. Просто решил, что ржавчина его спасёт от всех проблем.

     

  • 1.80, deeaitch (ok), 02:07, 15/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да конечно. Я в это так и поверил. Дадада.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру