Представлен выпуск Deno 1.28, платформы для обособленного выполнения приложений на языках JavaScript и TypeScript, которая может быть использована для создания обработчиков, работающих на сервере. Платформу развивает Райан Даль (Ryan Dahl), создатель Node.js. Как и в Node.js в Deno используется JavaScript-движок V8, который также применяется в браузерах на основе Chromium. При этом Deno не является ответвлением от Node.js, а представляет собой созданный с нуля новый проект. Код проекта распространяется под лицензией MIT. Сборки подготовлены для Linux, Windows и macOS...Подробнее: https://www.opennet.me/opennews/art.shtml?num=58113
А в чём смысл вообще, если оно всё равно на плюсах? Быстрее работать будет чи що?
Ты не поверишь...
М... ты так уверенно пишешь что оно на плюсах... что это даже немного странно))
А на чём же ещё оно написано? https://v8.dev/
А причем тут v8 если он используется и там и так?
А сравнивают Deno и Node.js
> А причем тут v8 если он используется и там и так?
> А сравнивают Deno и Node.jsО чём и речь. Смысл всех этих перестановок кроватей как-то теряется сразу, логично ведь писать на том же языке, на котором основной компонент. А раст просто наименее подходит для таких задач из-за статической линковки.
На ассемблере
> А в чём смысл вообще, если оно всё равно на плюсах?Мы поняли. Вы не читатель... Слабая глупая попытка потроллить растоманов. А в чём смысл вообще, если оно всё равно на Си (ядро ОС), а не на плюсах (v8)? А чего ядро ОС на Си, если у него есть куски на ассемблере - ведь такие пряморукие программисты как ты на ассемблере напишут в сто раз более оптимальный код, чем современные компиляторы.
Оно не на плюсах. Движок v8, который на плюсах - это не Deno. V8 сам по себе не делает того, для чего создан Deno. А то, что делает Deno, написано не на плюсах, а на расте, яваскрипте, тайпскрипте.
> Быстрее работать будет чи що?
(... а на Си бы еще быстрее работало, там всякие перегруженные виртуальные функции вызывать не надо)
Можно значительно быстрее разрабатывать веб-прикладухи, чем на плюсах. И это при не очень сильной просадке производительности (в этих прикладухах на пару порядков большее время тратится на взаимодействие с базами данных, чем на выполнение кода на сервере приложений) и одновременно при меньшей вероятности получить твои любимые ошибки при низкоуровневой работе с памятью.
У меня другой вопрос - зачем же я мечу бисер перед тролём-растохейтером? Не понимаю.
У типичного растафанатика довольно типично аналитика, как и вообще умение понимать написанное, просто от бога. Никто тут не собирается писать вебню на расте, это тупо обёртки над плюсовыми либами, применяемые для исполнения скриптов. Ну а критика вполне уместна, это платформа для запуска ПО, но при этом раст линкуется СТАТИЧЕСКИ, это означает, что у каждого дополнительного инстанса будет не хилый такой оверхед. Это относительно работает исключительно в ситуациях, когда 1 инстанс на ноду утилизирует все доступные ресурсы. Если возникает необходимость поднять дополнительный инстанс рядом в одном адресном пространстве, оверхед на пустом месте начинает множиться. Кроме того, разработка и сопровождение проектов, написанных на смеси изотерических ЯП с обычными, обходятся значительно дороже.
> Никто тут не собирается писать вебню на расте" - Дядя, ты <чудак>"? (ц) С чего ты мне эту галиматью приписываешь? Где ты это там увидел? Сам додумал? Завязывай, глупо выглядишь. В каментах строчки выборочно читаешь, как и саму статью? Кроме слова "раст" там еще были слова "яваскрипт, тайпскрипт" (на которых и писАть вебню) и ты их старательно пропустил? Я же тебе говорю - прочти статью. Там написано, что там на расте написано.
> это означает, что у каждого дополнительного инстанса будет не хилый такой оверхед
Какие дополнительные инстансы, окстись! Или ты думаешь, что чтобы на растовском фреймворке tokio обработать 1000 входящих запросов тебе надо 1000 инстансов поднять? Это тебе не древний сервер 1995 года с форками процесса на каждый запрос.
> Никто тут не собирается писать вебню на растеВдогонку. Отучайся говорить за всех. Про вебню на расте. Открой для себя Actix ("если звёзды зажигают значит это кому-нибудь нужно?"):
Оно не построено поверх в8 для запуска браузерного кода на локалхосте. Как я и сказал, выраженные проблемы с восприятием и пониманием информации.
> Как я и сказал, выраженные проблемы с восприятием и пониманием информации.У тебя. Причем очевидно. Начиная с первого поста.
Ты стрелки не переводи, в 1 посте вполне логичный и закономерный вопрос, на который ты выдал полный желчи и довольно оторванный от реальности ответ.
> в 1 посте вполне логичный и закономерный вопрос,Очень спорное утверждение. Именно в этом и проблема. Больше на троллинг похоже. Где там логичность и закономерность? Вот смотри, где логика: v8 сделали одни люди (условно, на чём знали на том и написали - на плюсах), а дено - совсем другой человек. Который мог и не знать плюсов. Отсюда твой посыл - ну если это на плюсах, то и то на плюсах - ложный. Но мы-то знаем, что автор дено знал плюсы (ноджс-то на нём писал) и сознательно сменил их на раст. Это была одна из его претензий к старому проекту. Отсюда следует что ты не закономерные вопросы задаешь, а тупо троллишь. Ну как сейчас вот.
Ну да. Если я беру какую-то либу, я могу написать для неё обвязку на баше, жс, питоне, чём угодно. Но если это липа написана на плюсах, а я пишу обвязку на си, это уже определённые, и весьма существенные, проблемы. Но всё ещё не такие, как если взять и написать обвязку на го для либы на плюсах. Поэтому я буду писать обвязку для либы на плюсах на плюсах. С растом ситуация по ряду аспектов довольно похожая выходит.
Кстати, а если бы v8 был написан на паскале, все остальные (сишники, гошники, питонщики, явисты) обязаны были бы писать обвязку на паскале? Даже не зная его, но только из-за того "ну библиотека же на нем написана"? Ядро линукса на Си, но ведь находятся нехорошие люди, которые на плюсах библиотеки и прикладухи пишут или создают питоновские скрипты и баш-портянки, не зная этого Си - да как посмели?
Паскаль довольно неплохой язык так-то, хоть генерируемые его компиляторами бинари и полны какой-то мутной дряни, которую так просто не отредактируешь в шестнадцатеричном редакторе, производительность его кода в итоге довольно близка к нативной (емнип вызовы транслируются в голый винапи, хотя не видел исходников той проприетарщины и не могу сказать, сколько на деле в том коде было паскаля, а сколько -- винапи, это было вне сферы моих интересов). Если бы в8 был на паскале и основная платформа для исполнения кода в нём была на паскале, то все остальные тоже писали бы на паскале, потому что это очевидно успешный язык и крайне удачное применение. Обвязку можно писать на чём угодно, вон есть биндинги для исполнения жс в питоне в spidermonkey. Но платформа для приложений на брейнфаке поверх движка жс на паскале, звучит ли это здравым и какие преимущества можно получить из такой затеи?
ну был же какой-то смысл в оригинальной ноде использовать смесь из C,C++ и JavaScript вместо того чтобы на чём-то одном православном всё писать.. может есть другие критерии кроме скорости работы? может они описаны прямым текстом даже в этой новости? как жаль что мы никогда не найдём ответов на эти вопросы..
> --allow-env --allow-readЧем это лучше namespace-изоляции?
Кроссплатформенностью.
Деплоишь на винде? Один фиг сейчас в докер все заворачивают.
Какой деплой, какой докер, шиз.deno как и node - это рантайм для js/ts. Такой же рантайм как рантаймы для python, ruby, php, perl, lua и прочих скриптовых языков программирования.
> Какой деплой, какой докер, шиз.
> deno как и node - это рантайм для js/ts. Такой же рантайм
> как рантаймы для python, ruby, php, perl, lua и прочих скриптовых
> языков программирования.Дурочку включил? Как ты свой рантайм будешь деплоить на сервер?
На какой сервер?
Ты зачем деплоишь локальный софт на сервер? Таблетки прими.
> На какой сервер?
> Ты зачем деплоишь локальный софт на сервер? Таблетки прими.Deno для локального софта? Ты сам вижу забыл их принять.
Чем deno для локального софта по-твоему хуже, чем питон, руби или даже джава? Ничем.
> Чем deno для локального софта по-твоему хуже, чем питон, руби или даже
> джава? Ничем.Нафига мне в нем изоляция локально, если я могу ее сделать средствами ос более надежно, дурень? И щас я буду локально тащить deno, который хер знает сколько весит. Проще питон взять, который у всех и так есть.
смотрю щас стандартную библиотеку: https://deno.land/api@v1.28.0?s=Deno.openвсе функции по работе с файлами принимают string в качестве пути к файлу. А на самом деле путь к файлу должен мочь быть буфером, набором байт с потенциально невалидной UTF-* последовательностью. В ноде модуль fs принимает буфер в качестве пути, в питоне тоже есть path-like object (is either a str or bytes). А тут такой косяк.
А есть пример где это нужно? В какой оси путь может быть невалидной utf-последовательностью (из тех что поддерживает deno разумеется)?
Это зависит не от оси, а от файловой системы.https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits
Смотри столбец "Allowable characters in directory entries". Для ext4 и btrfs это например "Any byte except '/' and NUL", причем не гарантируется, что имя файла будет валидной UTF-* последовательностью. Поэтому например в GIO для одного и того же имени файла различают "просто name", "edit name" и "display name". https://docs.gtk.org/gio/class.FileInfo.html
Понятно, спасибо.
Забавно, но саджешн на улучшение этого уже есть https://github.com/denoland/deno/issues/627 (хотя думаю он там будет еще долго)
> А есть пример где это нужно?Сомневаюсь. Так или иначе, там внутри либо строка в байты преобразовывается, либо байты в строку. Тому анону выше, наверное, лень самому преобразования делать.
> В какой оси путь может быть невалидной utf-последовательностью (из тех что поддерживает deno разумеется)?
В любой. И дело не в OS даже. Программист может ошибиться, пользователь ерунду прислать, шальной нейтрино об микросхему памяти стукнуться и флипнуть пару бит.
Не, если пользователь пришлет ерунду, то string просто не создастся и вы не сможете вызвать эту функцию (т.к. она принимает non-optional string).
Ну а от нейтрино ничего не защитит и аппа скорее всего упадет где-то в процессе.
В венде может, десяточка от этого в бсод вылетала. Вообще забавно как юникод в диалоге сохранения файла в блокноте, а бсод в ядре.
зато на си написано.. без этих ваших проверок сахарных которые нормальный програмист без компилятора может сделать..
Очевидно что джава-кодеры до невалидной utf строки, не додумались.
Не зря же их на опеннет называют "макакамм"
Причем тут джава-кодеры? Deno пишет автор node.js, который написал на с++.
Шёл 2022 год, старые пердуны с опеннета так и не научились отличать Java от JavaScript
Когда перепишут V8 на Rust?
Сначала нужна возможность запускать rust вместо javascript, зачем это слабое звено.
rustscript
Лучше совсем избавиться от всяких скриптов и оставить только голый текст. А то и свистелки им подавай и пеpделки.
Ты реально так думаешь? Возьми, попользуйся Netsurf хотя бы пару дней. Йотыбчыки в нём посмотри, на любой сайт залогинься. А потом отпишешся насколько удобно "без скриптов" пользоваться инетом.
До прихода Google Chrome все пользовались и всем норм было, это потом google стало навязывать идею, что жирносайты - это норально и все так делайте
Тут во многом прикол, что эти сайты завязаны на скрипты - тот же ютуб в паралельной вселенной мог вообще без них обойтись и выглядеть почти так же. Полностью избавиться от скриптов могла бы помочь (но мне не кажется, что это правильно) команда браузеру по http, что страница чистично изменилась. Ага, и держать соединение.
Большинство страниц Youtube даже не потребовали бы такого хака, т.к. не меняются после загрузки, поэтому могли бы обойтись средствами CSS и HTML5
Rust компилируется в WebAssembly :) Как и Go, C, C++ и другие языки.
сразу после сервы, брошенной в 2019-ом
> Когда перепишут V8 на Rust?Там люди работают, а не играют в переписывалки как растоманы.
Действительно, если на расте перепишешь всё, то могут и на мороз выгнать, ибо ошибок при работе с памятью не будет, соответственно и те кто чинить могут не потребуются.
> ибо ошибок при работе с памятью не будетГлавное не переставать это повторять
Так 30% ошибок никуда не денутся. Жить можно, хоть и не жирно. Зато по оппе получать от начальства будешь меньше
> модули устанавливаются при первом запуске приложения
> не используется файл package.json
> модули кэшируются в общем каталогеужас...
И зачем это когда есть bun.sh?
он уже готов?
пробовал как-то запустить на нем экспресс, а bun выругался и рухнул
Пора добавлять поддержку TypeScript в ядро
Deno - JavaScript здорового человека?
Deno — это сон разума порождающий чудовищ.
> deno run npm:install-malwareв голос
Вот это поворот!
Так долго стучал в грудь что npm не нужен, а надо делать как в го. А тут на тебе оказалось что без npm deno ненужен.
А в чем отличие го?
>Ключевым изменением в новом выпуске является стабилизация совместимости с пакетами, размещёнными в репозитории NPM, что позволяет использовать в Deno более 1.3 млн модулей, созданных для платформы Node.js1.3 млн модулей - это тебе не морковка собачья. Кто угодно смирится, уймёт свою гордыню, грустно взглянув на свои 2,5 модуля.
ещё одна нода.жс от автора ноды.жс? это такой аутоиммунный NIH-синдром?
Нет. Это твоё незнание всей этой истории. В свое время изначальный автор рассказывал почему он забросил проект, что именно в nodejs было сделано не так, какие там родовые травмы и кривые костыли, которые или уже невозможно исправить или никто не желает исправлять.
стоп, по сути же это капитуляция?