Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

що е node.js и има ли то почва (у нас)
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=15826
Страница 1 от 1

Автор:  ДедоБоре [ Съб Мар 24, 2018 9:23 am ]
Заглавие:  що е node.js и има ли то почва (у нас)

в няколко теми споменавате node.js в различни контексти, в темата за малинката, примерно,
върви и въпроса за ползването на минималистичен хардуер (ланукс с 256? RAM)

понеже ми стана интересено и имам бели петна около въпросното нещо, поразгледах набързо за какво иде реч.
честно казано, очаквах, че думичката 'node' наистина означава едно малко спретнато интерпретаторче на JS, което да може да се подкара едва ли не и на по-голям пикльо. обаче май нещата не са баш така, или пък понятието 'node' е по-грандоманско.

може ли знаещите да обяснят какъв е чара на node.js, очевидно не иде реч за спартнска реализация при малко ресурси.

Автор:  palavrov [ Съб Мар 24, 2018 9:59 am ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

Преди 10-на години бях отвратен от M$ и започнах да се оглеждам за дългосрочна алтернатива на .NET за писане на софтуер. Изискванията ми бяха:
  • да може да го търкалям на всякаква платформа а не само на виндовс
  • да може да се ползва за веб интерфейс, десктоп интерфейс, мобилни апп
  • да е опън сорс
  • да има голямо комюнити, инструментариум и т.н. полезни неща
  • да скалира от ембедед машина до облак
И тъй като по това време ми беше айляк реших да отделя повечке време за ресърч и след може би повече от година оглеждане и експериментиране се очертаха само 2 технологии които ставаха:
  • node.js
  • Qt
Qt нещо не ми хареса - адски тежко Ц++ с допълнителен синтаксис, предкомпилатор и т.н. Но най вече, че на сървъра месиш C++ с JS като ти трябва да правиш web interface - а то светът вървеше натам, че даже вече и подмина с тия мобилни технологии. С node.js обаче в това отношение няма проблем - всичко е JS - верно е много малоумен език ама щеш не щеш пишеш ли софтуер рано или късно ще се сблъскаш с него. Заложих на node и определено не съм сбъркал.

Конкретен пример - вчера колегите ми мрънкаха, че искали експорт на данните от скенера - 300 снимки по 3-4мб ... няма как да се свалят една по една през web interface, на мен пък не ми се отваря достъп до файловата систена на storage където ги пазя (не съм луд да ги вкарвам в SQL база данни) и им предложих да си ги свалят като zip файл - хареса им - на мен ми костваше 20-на реда код:

Код:
app.get('/scan/:scan.zip', async (browser_request, browser_response) => {
    try {
        var archive = archiver('zip', { store: true });
        const { scanPath } = paths(Path.join(config.PATH,'/db'), browser_request.scan[service.id]);

        archive.pipe(browser_response);
        archive.directory(scanPath, false);

        archive.on('warning', error => debug('Archive warning:', error));
        archive.on('error', error => debug('Archive error:', error));

        archive.finalize();
    } catch(error) {
        debug('Error:', error);
        browser_response.status(500).send(error);
    }
});

И съответно в HTML файла добавих:
Код:
<a href={`/scan/${scan.id}.zip`}>Download</a>

И готово - сега който иска да си сваля данните с каквото му е кеф - browser, wget, curl, etc ... та ако трябваше това да го разпиша на .нет или qt или каквото и да е друго - щеше да ми коства сигурно дни и сумати изписан код. И това нещо не генерира никакви локални zip файлове на сървъра.

И така мантрата ми е
  • C за performance (без ++)
  • node.js за всичко останало

Автор:  ToHu [ Съб Мар 24, 2018 8:11 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

ДедоБоре написа:
в няколко теми споменавате node.js в различни контексти, в темата за малинката, примерно,
върви и въпроса за ползването на минималистичен хардуер (ланукс с 256? RAM)

понеже ми стана интересено и имам бели петна около въпросното нещо, поразгледах набързо за какво иде реч.
честно казано, очаквах, че думичката 'node' наистина означава едно малко спретнато интерпретаторче на JS, което да може да се подкара едва ли не и на по-голям пикльо. обаче май нещата не са баш така, или пък понятието 'node' е по-грандоманско.

може ли знаещите да обяснят какъв е чара на node.js, очевидно не иде реч за спартнска реализация при малко ресурси.


Разпитай Хищника ако го хванеш на скайпа, иначе мога да ти кажа общи неа но тях ще ги намериш и сам. Удобно е за интерфейси, последно едно интефейсче към еидн контролер праивхме с него, контролера е на USB като HID, но няма значение, и на сериен става. Друго за което сме го изпозлвали са разни анимации в web, такива които трбява да са динамични, т.е. да се влияят от някакви данни, също става бързо и сранвително лесно.

Автор:  ДедоБоре [ Съб Мар 24, 2018 8:49 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

като говорите за графични интерфейси (предполагам нещо ала-GUI), това само през барузър ли е или ...?
нормалния JS е куц откум тредове и/или ползване на повече (локални) ядра. пък и мултитаскинга му е спънат.

примерчето с zip файла изглежда елегантно, но предполагам че гълта над гигабайт в твоя случай?

и в двата контекста все още ми се губи думичката 'node'...
по какво се различава от PHP+JS (+apache) с всичките им модули и плъгини?

Хищника и на пържоли не кълве, ти за node.js ме караш да го тормозя. зор нямам, просто имам бяло петно и питам.

Автор:  TheWizard [ Съб Мар 24, 2018 8:52 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

зависи къде и как ще го ползваш... има почва - веб интерфейси, рест апита, там монгоДБ
за АРМ го компилирах както си е фул...
не ми хареса 40 меги( стрипнато стана 26 ) домързя ме да оптимизирам и да махам не нужното... зае.ахго за други времена

мисля да го полвам за рест апита... за ембедед е спорно да го полвам, лапа рам, тромаво...
ама знае ли се :)

Автор:  palavrov [ Съб Мар 24, 2018 11:34 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

ДедоБоре написа:
като говорите за графични интерфейси (предполагам нещо ала-GUI), това само през барузър ли е или ...?

Става и за нейтив интерфейси - основните варианти са ReactNative & NativeScript (т'ва е българско, на Телерик) - идеята е, че пишеш логиката на JS но вместо да рендва HTML си ползва нейтив компоненти. Като бавнодействие е все едно пишеш GUI на python.
ДедоБоре написа:
нормалния JS е куц откум тредове и/или ползване на повече (локални) ядра. пък и мултитаскинга му е спънат.

Ще се учудиш колко задачи могат да се изпълнят много задачно в една нишка - особенно с добавянето на async/await синтаксиса е направо приказка. Разбира се всичко си има цена - ако не го знаеш как работи изодзадзе има да му се звериш като теле в зеле като нещи не работи както го очакваш ;)
ДедоБоре написа:
примерчето с zip файла изглежда елегантно, но предполагам че гълта над гигабайт в твоя случай?

Тц - нищо не гълта - тъпче си в стрийма когато му се опразнят буферите т.е. всичко е асинхронно - и TCP/IP стриймовете и файловия достъп - пуска си заявките и като някой от тях е готов го пуска по веригата на следващия. Имам и друг елегантен пример - как правя прокси към всяка малинка да и показвам кво има на камерата - пак е има няма 10-на реда код - получавам заявка, вадя от URL-a mac адрес на малинката щото това ми е всъщност primary key и от един голям хеш вадя вече конкретния IP адрес от който да взема някакъв файл през HTTP - на нея съм пуснал busybox httpd, че не съм я подкарвал с ноде - трябваше ми openmax за управление на камерите и реших да си го пиша сам на чисто C.
ДедоБоре написа:
и в двата контекста все още ми се губи думичката 'node'...
по какво се различава от PHP+JS (+apache) с всичките им модули и плъгини?

Пишеш на един език - не ти трябва да знаеш PHP с все инфраструктура около него. Да не говорим, че много от библиотеките работят както на браузъра така и на сървъра - абе приказка си е ...

Автор:  palavrov [ Съб Мар 24, 2018 11:46 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

TheWizard написа:
мисля да го полвам за рест апита... за ембедед е спорно да го полвам, лапа рам, тромаво...

На менн ми лапа някъде към 100-на мегабайта - в началото тръгва някъде към 30-40 но като го понатоваря като хората скача до към 100-130 - имах съмнения, че нещо GC ми прави въртели та го гледах малко със снайпера - сърбал съм попарата на GC едно време с .NET и съм много лют ... но се оказа, че сам съм си вкарал бъгче и като го оправих всичко си дойде на мястото. Ей това му е проблема на embedded платформа - трудничко се дебъгва самото node, но въпреки всичко плюсовете са повече от минусите.

Общо взето всяко устройство последно време трябва да има някакъв UI и web interface е доста добър избор. Все още много хора подскачат като им се изрепча, че пиша на JS & C - за момента е рядка комбинация обаче така ми се развързаха ръцете, че мога да правя почти всякакъв софтуер върху минимален хардуер - тежкото е после в браузъра където и гигахерци и гигабайти има колкото искаш.

Отделно, че в комбинация с buildroot успях да вкарам всичко в едно хранилище - целия фирмуер + юзер интерфейс + rest api и т.н. се пази на едно място и се компилира с един прост make който ти вади един sd card image - ръгаш го и тръгва.

Автор:  miro_atc [ Нед Мар 25, 2018 3:06 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

Е за тва си трябва една семинарче с по-обстойно представяне ;-)

Автор:  palavrov [ Нед Мар 25, 2018 6:51 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

2-5 април съм в Пловдив - който има мерак да се обажда :)

Автор:  bobihot [ Нед Мар 25, 2018 8:04 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

На Андроида може ло лесно да се пише-изпълнява?
-Като съм с таблета да си пробвам разни графични нещица? Нещо като ГИУ има ли?

Автор:  palavrov [ Нед Мар 25, 2018 11:15 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

Андроид по принцип не е платформа за разработка, не че няма разни апп-ки дето горе долу позволяват да го ползваш като дев машина де ама все пак.

Иначе и с NativеScript и с React Native може да пишеш и за Андроид и за иОс - това са си нативни ГУИ-та - има и разни други които всъщност ти отварят браузър и всъщност гуи-то е хтмл - но е по бавно и тромаво и не е много за таблет/телефон.

Самия node.js няма проблем да върви на 1ГХц кортекс А нещо си - не е като на х86 ама пък не е и като да не става.

Автор:  gicho [ Вто Мар 27, 2018 3:27 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

На андроид най-лесно тръгва през termux - а той дава и други благинки за линукс-ориентираните.
edit: като питаш за ГУИ сигурно ще ти хареса node-red и подобни

Автор:  Predator_MF [ Пон Яну 06, 2020 5:11 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

За UI ToHu има в предвид AngularJS.

Node.js е среда за писане с JS, има вградени модули за FS, IO, Networking и т.н. както при python, java и пр. Става и за Server, както и за Desktop приложения https://electronjs.org/. Не е заместител на PHP, за съжаление и за MCU не става. Много лесно можеш да напишеш C++ модул (щракане на LED), с който да си правиш нещо специално, ако го няма в хилядите готови модули.
Чарове много, основно, че се пише на JS и работи доста по-бързо от PHP в определени ситуации. Скрипта седи зареден през цялото време в memory, не както в PHP при всяка нова конекция нов процес/нишка, отваряне на връзка с SQL, инициализация на променливи и т.н. Много лесно се пишат приложения със sockets - TCP/UDP/WebSocket всичко опира до require() на модул.

Автор:  palavrov [ Пон Яну 06, 2020 10:48 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

С React Native можеш да избегнеш electronjs т.е. да не влачиш почти целият Chromium браузър за десктоп апп. Има рендери за каквото ти душа сака - https://renative.org/ - или пък мултиплатформено с Qt - https://github.com/status-im/react-native-desktop

А иначе за nodejs за mcu има разни портове но един дявол ги знае дали стават за промишлена употреба:
https://www.espruino.com/
https://tessel.io/
https://jerryscript.net/
https://github.com/cesanta/mjs
https://bellard.org/quickjs/

Автор:  nickich [ Сря Яну 08, 2020 10:18 pm ]
Заглавие:  Re: що е node.js и има ли то почва (у нас)

Страхотно е за сървърни приложения. Няма графична среда - това му е идеята - да изпълнява JavaScript код извън браузера. Върви обикновено на V8 JS Engine, но има и орязани версии за малки контролерчета, които честно казано са неизползваеми. При NodeJS функциите са non-blocking, което в частност е добре за мрежови приложения и много връзки...
Тук виждам малко объркване между Qt, NodeJS, ElectronJS и т.н.
Единствената прилика между NodeJS и ElectronJS е, че backend-a на ElectronJS е nodejs, което служи да си въртиш логиката, която по принцип не можеш да подкараш на браузер заради ограниченията поради сигурността. Frontend-a му е обикновен браузер..
По същия начин може да си стартираш браузер widget в Qt и да си пишеш на JavaScript, но това няма да е node. Не, че е невъзможно да ги покараш Qt с node, ама не виждам смисъл.
Иначе Qt е супер от гледна точка на бързина. За момента няма конкуренция, все пак си е Ц...

Страница 1 от 1 Часовете са според зоната UTC + 1 час [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/