LINUX.ORG.RU

Дайте ликбез про Node.js

 


1

3

Что это собственно такое, на пальцах и на что оно способно? Я так понял, это взяли JavaScript движок от браузера Chrome(V8), затолкали в отдельный пакет, который можно установить и вуаля, теперь можно на десктопе запускать JS код. Но везде всё какие-то «серверные» примеры использования, а возможно ли на этом делать десктопные приложения, скажем, какую-нибудь гляделку таблиц БД или графический редактор, чтобы не через веб-браузер?. Если да, то пара вопросов:

  • Насколько это целесообразно?
  • Есть ли библиотеки контролов к этому делу, там, вклади, текстовые поля, кнопки, таблицы, скроллбары и т.д или раз это всё «из веба», то это всё хозяйство рисуется самостоятельно на «всяких там css»?
  • Как оно по потреблению памяти и удобству установки и распространения на клиентских местах? Т.е сажем достаточно скачать папку с проектом, запустить в ней условно start.exe и всё будет работать, или нужно плясать с бубном на каждой машине?

Вроде всё, если ещё вспомню, спрошу :)

★★★★★

Это интерпретатор JavaScript на движке V8 и libev
Также - веб-фреймворк
Хочешь приложение десктопные - Electron, но это HTML5/CSS3/JS
Хочешь веб-приложение - ExpressJS и т.д.

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

Подсветку синтаксиса с обратным мапингом позиций курсора и попытки эффективно отобразить эту ботву средствами DOM.

И что тут сложного?

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

Ну открой в gedit минифицированный яваскрипт, увидишь.

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

Ну открой в gedit минифицированный яваскрипт, увидишь.

С позиции производительности, что в этом сложного? Что я должен увидеть?

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

Что я должен увидеть?

Тормоза, в сишной программе. На аналогичной задаче.

С позиции производительности, что в этом сложного?

Извини, но обучение тонким материям не входит в мои планы. Ты спрашивал где тормоза - я ответил. Дальше сам. Ну или можешь продолжать как и раньше оценивать скорость десктопного яваскрипта по редактору. Мне в принципе без разницы, кто чем страдает.

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

Тормоза, в сишной программе. На аналогичной задаче.

Я не знаю, как там в gedit, но в emacs тормозов при прокрутке как в atom нету.

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

при прокрутке как в atom нету.

Пруф можно? Я как-то раз импортировал в атом исходники ядра целиком и открывал десятки файлов, никаких тормозов. Подозреваю что это такая же басня как и «Linux только для программистов».

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

А еще там DOM нету. А еще в getid наоборот, подсветка может намертво зависнуть.

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

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

А еще там DOM нету.

Ичо?

А еще в getid наоборот, подсветка может намертво зависнуть.

Почему она должна намертво зависнуть? Поясни.

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

Да, потому что в редакторах может тормозить не только отображалка. В Vim, например, может подвиснуть что угодно, потому что плагины и гуй выполняются синхронно в одном треде. Это, собственно, причина появления NeoVim.

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

Я как-то раз импортировал в атом исходники ядра целиком и открывал десятки файлов, никаких тормозов.

Попробуй поскроллить длинные файлы.

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

Обычно лажа может случиться на больших файлах или на больших строках. Еще в скроллинге они зачитили, сделав минимальный шаг в 1 строку, а не 1 пиксель.

А вообще по мне так вообще чудо, что в атоме смогли сделать то что сейчас есть.

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

Почему она должна намертво зависнуть? Поясни.

Потому что не смогли написать чтобы не висла? Я не понял, ты открывал файл как я предлагал, или предпочитаешь вместо этого задавать странные вопросы?

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

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

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

Такой финт они проделали относительно недавно.

так вообще чудо

Ресурсы и деньги Github, большая и активная команда разработчиков и довольно большое комьюнити творит и не такие чудеса.

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

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

Я написал, что в редакторах может тормозить не только отрисовка. Приведи, пожалуйста, пример другого распространённого десктопного софта на JS.

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

В смысле, там можно как-то попиксельный сдвиг включить? Оно не то чтобы пипец как надо, но очень няшно выглядит, если судить по саблайму.

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

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

Это была учень крутая заявка в теме про десктопный софт. Оценил, да.

Приведи, пожалуйста, пример другого распространённого десктопного софта на JS.

Slack например. http://electron.atom.io/ самому не судьба посмотреть? Аналогично на альтернативных платформах - ну сходи и посмотри, они не скрывают.

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

Ресурсы и деньги Github, большая и активная команда разработчиков и довольно большое комьюнити творит и не такие чудеса.

Ну, со слов одного персонажа в этом треде - редактор с возможностями атома (да и текстовый процессор по типу ms word) - это предельно тривиальные приложения.

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

Приведи, пожалуйста, пример другого распространённого десктопного софта на JS.

devtools в любом браузере.

anonymous ()

ЖС это недоязычек для попап менюшек и торможения жиробравзеров.

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

Для чего оно тогда вообще надо, это Node.js и почему так нынче в тренде фапать на все JS фреймворки

[Смузи-воин mode]

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

[/смузи-воин mode]

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

Ну в общем очередная гламурнота, лучше буду дальше питон ковырять :)

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

gedit это сраный блокнот, у которого травма при рождении еще. Давай vim откроем лучше. Там нет никаких тормозов. и файл в 600мегабайт, например, открывает сразу и бегает по нему вообще без залипонов в отличие от...

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

С позиции производительности, что в этом сложного

На асме попробуй это провернуть. Чтоб узреть в какие нелегкие идёт твой проц для обработки текста. Это далеко не так просто.

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

Скажи, это как-то поможет сделать вывод о тормозах электрона и компании? У «мальчика который запустил atom» был железный аргумент - он больше ничего другого не запускал, так как не знал и искать не собирался. Видимо в его представлении все пишут исключительно текстовые редакторы, а подсветку сделает даже школьник левой ногой (что мы и наблюдаем на примере gedit).

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

Скажи, это как-то поможет сделать вывод о тормозах электрона и компании?

легко.

У меня на старом ноуте атом не осиливает открыть лог в 600 мегабайт, а вим даже не моргает.

а подсветку сделает даже школьник левой ногой (что мы и наблюдаем на примере gedit).

там проблема не в подсветке (вим, емакс с этим проблем не испытывают), а вообще в архитектуре ... хотя кому это я, про архитектуру то ...

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

легко.

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

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

Ну в общем очередная гламурнота, лучше буду дальше питон ковырять :)

Ты такой мнимо-внушаемо-ведомый, что просто ужас. Все правильно. Ковыряй в своей песочнице, и не лезь никуда больше. Ты там не нужен.

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

Сравнивать vim и atom это как сравнивать elinks и chromium

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

Не требовательные? С дуба рухнули? На qml ещё можно, ну можно попробовать на gjs(забив на кросплатформенность). А писать на электроне или nw нельзя нетребовательно, ибо веб, браузер и израиль.

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

А вот это нет, неверно. Атом ребёнок по функциональности, это как разные редакторы текста на javascript. А vim это зрелый редактор с кучей возможностей. То что атом тащит за собой всё что можно, а скоро ещё и цистерну с бензином будет тащить, не значит что он может хоть что-нибудь.

В то же время elinks никогда и не разрабатывали как браузер, поддерживающий широкие возможности веб.

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

Нет, это верно. Атом как платформа имеет не меньше возможностей расширяемости, чем vim, и даже больше. То, что под него пока написано очень мало плагинов - вопрос молодости. При этом, под него можно реализовать такие плагины, которые под vim не удасться. Например работа с psd при верстке по типу как в brackets. И прочие иные ништяки, с использованием всей интерактивно мощи WebApi. При чем само это расширение куда проще. Сам редактор - его платформа - это живой рантайм.

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

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

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

Платформа возможно, даже соглашусь что проще расширять. Однако это не значит что под него многое будет. Тут дело в разработчиках. Будут ли они мигрировать с элипсов, джетбрейнсов, емаксов и вимов? Это вряд ли. А только они могут делать хорошие плагины. Низкоквалифицированные вебмакаки не способны делать ничего «c использованием мощи WebApi». И не надо так громко, мощь WebApi не дотягивает до Qt мохнатых годов. Хороший же разработчик может относительно быстро сделать нужный ему редактор на Qt, если он конечно хороший разработчик. Ах да, уже же есть у них ide).

В общем не всё так радужно.

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

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

Что до того, что напишут или не напишут, это второстепенный вопрос. Я начал о том, что сравнивать вим и атом, это именно что сравнивать елинкс и хромиум. Все это похоже лишь поверхностно.

anonymous ()

а вот, пару недель назад разработчики ядра сошлись во мнении, что некоторые вещи из «функционала» node.js будут быстрее, если их делать на стороне ядра ОС: https://lkml.org/lkml/2016/3/31/1108

//разве это все пропустили?...

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

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

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

Вот когда ты подрастешь, и научишься отличать библиотечную пользовательскую функцию от функционала рантайма

Купи себе немного ЧЮ.

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


Вот когда ты подрастешь, и научишься отличать


научись ссылки читать внимательно сперва, а потом советы давай ;)

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