LINUX.ORG.RU

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

 


1

3

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

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

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

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

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

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

Насколько это целесообразно?

Настолько, насколько целесообразно делать троллейбус из буханки хлеба. По факту оно нужно чтобы рендерить что-то на сервере (ради фантома, например). В остальных случаях результат очень похож на говно.

Debasher ★★★★★
()

QtQuick позволяет писать настольные приложения на JS, библиотека контролов есть, при необходимости можно распространять папкой.

CrossFire ★★★★★
()

«возможно ли на этом делать десктопные приложения» electon. ЕМНИП - есть более легковесные аналоги, впрочем.

«чтобы не через веб-браузер» не через отдельное приложение - вообще не вопрос. Не через компонент браузера - ЕМНИП, что-то было, но ХЗ что.

«Есть ли библиотеки контролов» Собственно, для юзающих хромиум проектов - очевидно, из веба.

«Как оно по потреблению памяти и удобству установки и распространения на клиентских местах?» Вроде бы ело весьма немало.

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

Да, и ведь, кстати, QtQuick. Правда, он достаточно далек от браузерно-нодовых реалий.

alex4321
()

Стек UI(HTML+CSS)/JS если только, но не другие извращения. Вот посмотрите пример деска (node-webkit).
http://tutorialzine.com/2015/01/your-first-node-webkit-app/
И, показательно, что используют мешанину ноды с жиквери, чтобы навсегда отбить у вас желание использовать _это_ для десктопа. Хотя... Если вы хипстер...

znenyegvkby
()

а возможно ли на этом делать десктопные приложения, скажем, какую-нибудь гляделку таблиц БД или графический редактор, чтобы не через веб-браузер?

на чистой ноде нет, но если совместить ноду и чромиум - получается электрон, вот на нем можно: http://electron.atom.io/

а целесообразность зависит от задач.

waker ★★★★★
()

Понял, значит не стоит оно того, лучше буду на tkinter рисовать )

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

tl;dr: не делай так.

anonymous
()

Как оно по потреблению памяти и удобству установки и распространения на клиентских местах? Т.е сажем достаточно скачать папку с проектом, запустить в ней условно start.exe и всё будет работать, или нужно плясать с бубном на каждой машине?

ну вот, например, сейчас запущен slack - это такой корпоративный чатик, кушает 214MB.

т.е. примерно столько же, сколько и обычный браузер (чром ест 263MB прямо сейчас).

как работает установка, можешь сам посмотреть, на примере того же atom, или slack.

waker ★★★★★
()

Отличный, развивающийся язык (JS). Простой деплой, куча пакетов. Скромное потребление ресурсов, парадигма асинхронности в самом языке. Клёвая штука, в общем.

Но везде всё какие-то «серверные» примеры использования, а возможно ли на этом делать десктопные приложения, скажем, какую-нибудь гляделку таблиц БД или графический редактор, чтобы не через веб-браузер?

NodeJS это сервер. На декстопе должна быть морда - либо браузер, либо интеграция движка браузера в GUI (но зачем?).

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

Я так понимаю, NW.js это и есть такая штука(интеграция браузера в GUI), вернее отдельно JS движок для рисования гуя на десктопе?

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

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

Потому что чуваки, знающие только JS, хотят считать себя настоящими программистами.

hateyoufeel ★★★★★
()

или раз это всё «из веба», то это всё хозяйство рисуется самостоятельно на «всяких там css»?

да

Как оно по потреблению памяти

полный ппц и не управляется естественно

и удобству установки и распространения на клиентских местах?

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

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

Для чего оно тогда вообще надо, это Node.js

Чтобы можно было утилизировать JS-программистов на серверной стороне.

видно, что JS это УГ

Все существующие языки ужасны, но с помощью некоторых можно решать проблемы и зарабатывать денежку - JavaScript один из.
А с Lodash или Ramda это даже не очень больно.

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

А есть где-нибудь объяснение, почему, вроде бы не глупые люди, стремятся сделать все, чтобы программировать мог даже полный дегенерат?

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

Но везде всё какие-то «серверные» примеры использования, а возможно ли на этом делать десктопные приложения, скажем, какую-нибудь гляделку таблиц БД или графический редактор, чтобы не через веб-браузер

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

Насколько это целесообразно?

Целесообразно в следующих аспектах:

1 совместное использование части кода на клиентской и серверных сторонах

2 Асинхронность — годно для высокопроизводительных приложений

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

Есть ли библиотеки контролов к этому делу, там, вклади, текстовые поля, кнопки, таблицы, скроллбары

Есть, но лучше писать все свое

т.д или раз это всё «из веба», то это всё хозяйство рисуется самостоятельно на «всяких там css»?

снова бред

Как оно по потреблению памяти и удобству установки и распространения на клиентских местах?

зависит от степени кривизны рук

Т.е сажем достаточно скачать папку с проектом, запустить в ней условно start.exe

достаточно.

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

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

снова бред

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

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

electron - это нода и cef нода и chromium - это nwjs

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

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

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

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

<html>
?
похапе тут
?
</html>
стало
<html>

результат выполнения похапе тут

</html>
это чтоли они имеют в виду под рендерингом?

filequest
()

К ноде есть биндинги gui либ, если надо.

Писать десктопное приложение на базе электрона или nwjs стоит только в том случае, если приложение реально массивное, с широким функционалом. Иначе нет смысла тянуть за целый браузер, можно ограничиться демоном (на все той же ноде), а рендерить ui в браузере, который и так у всех есть.

А вообще, ты неправильно подходишь к задаче. Все зависит от того, что ты там хочешь писать.

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

Ты реально на нем что-то делал и понимаешь о чем пишешь

Нет конечно. Я поставил, посмотрел как он подвисает и вернулся обратно на emacs. Нахрен мне такое счастье?

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

Дебашер сравнил ноду именно с рендер-сервисом (awesomium\phantom\etc). задача которых рендерить DOM в фоне.

Суть в том, что нода это вообще о другом. В 2016-ом стыдно не знать.

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

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

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

коммент удалили, постараюсь помягче. Ты читал сам эту статью? Ты видел, что он там несет? Это вообще какой-то школьник, треснутый на всю голову. Профит не в том, что нода отдаст ему фибоначи быстрей, естественно, фибоначи в его случае будет считаться также (а он что, волшебства какого то ожидал? Он запустил жирный блокирующий код в единственном потоке), а в том, что если клиент обратился к серверу, нода не будет ждать, завершения вычисления результата этого запроса (например, чтение файла), она может обслуживать других клиентов. Если этот дегенерат решил заблокировать единственный поток своим сраным фибоначи, то это не проблема ноды, а проблема психиатра этого чувака, значит он выписал ему недостаточно заботистые таблетки, и он все еще может срать в бложике, что ему категорически противопоказано. А ссылаясь на подобных персонажей, ты сам позоришься.

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

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

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

Какое вы извращение описали! Чего только люди не делают, лишь бы не использовать фортран или цэ. Ну, у меня не вам претензия, а к чуваку с фиббоначи.

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

попутав среду исполнения и редактор

Ты начал про десктопный софт на JS, я привёл тебе пример, пожалуй, наиболее популярной десктопной программы на JS.

решил что мне нужно знать о твоих проблемах?

Конечно. Если бы тебе не было нужно, ты бы не написал этот комментарий.

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

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

А можно выкинуть node.js в помойку, где ей и место, и всё точно будет ништяк.

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

Не мой, это иллюстрация к «куча пакетов». Такие вот пакеты, в этой куче.

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

Ты начал про десктопный софт на JS, я привёл тебе пример, пожалуй, наиболее популярной десктопной программы на JS.

Знаешь, по-моему ты не совсем здоров, если приводишь в качестве типового примера текстовый редактор.

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

Знаешь, по-моему ты не совсем здоров, если приводишь в качестве типового примера текстовый редактор.

Действительно, редактирование текста - это такая редкая задача. Нет уж, я привёл пример достаточно простой десктопной программы на JS, которая тем не менее умудряется подвисать периодически. Я могу поверить, что это косяк конкретно Атома (или Electron), но я не видел других настолько распространённых программ на JS чтобы сравнить.

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

Нет уж, я привёл пример достаточно простой десктопной программы на JS, которая тем не менее умудряется подвисать периодически.

Теперь уже отображение и редактирование раскрашенного текста стало простой десктопной программой. У тебя проблемы прогрессируют по минутам буквально.

Я могу поверить, что это косяк конкретно Атома (или Electron), но я не видел других настолько распространённых программ на JS чтобы сравнить.

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

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

А какого хрена ты по одной программе судишь о языке?

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

Кстати, имакс со свистоперделками тоже тормозит, и даже вим. Это аргументация секретарши.

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

Теперь уже отображение и редактирование раскрашенного текста стало простой десктопной программой.

Удивительно, правда? MS Word примерно то же делает.

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

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

Vit ★★★★★
()

возможно ли на этом делать десктопные приложения, скажем, какую-нибудь гляделку таблиц БД или графический редактор, чтобы не через веб-браузер?

https://www.npmjs.com/package/node-gtk но лучше через веб-браузер.

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