Natívnejší JavaScript pre vývoj aplikácií rubrika: Programování: JavaScript

6 Mlocik97
položil/-a 21.8.2020
 
upravil/-a 21.8.2020

Zdravím,

teoretické téma... existuje mnoho spôsobov ako pristupovať ku riešeniu "desktopová/mobilná/natívna aplikácia v JavaScripte".
Máme tu Electron, ktorý všetci dobre znajú, podla popisu hovorí o tvorbe natívnych aplikácií, ale povedal by som že sú skôr hybrid. V prípade mobilých platforiem máme technológiu Cordova, ktorá funguje celkom podobne z pohľadu natívnosti, resp v tom že pre vykreslenie používa prehliadač... toto riešenie je dosť hodne pamäťožrútne. Potom tu pre mobily máme NativeScript, ktorý to zobral z iného uhlu, a v podstate sa dajú nazvať reálne natívne. U desktopu tu ďalej máme NW.js, ktorý úplne neznám, ale čo viem, je že je to niekde v polovici medzi natívnosťou akú má NativeScript a Hybrid aplikáciou... tak zaujímalo by ma či neznáte nejaké veľké riešenie, ktoré by bolo v podstate "reálne natívne". Je tu síce rozdiel akým spôsobom funguje Android a akým Windows alebo Linux. Napadlo ma že by to pre vykresľovanie mohlo využívať napríklad GTK.
Ďalšia vec je či by nešlo túto hranicu posunúť ešte ďalej, a z run-time JS, vytvoriť reálne kompilovaný JS do binárneho kódu (spustitelnej binárky) (E: jak pozerám, už niečo také existuje https://nectarjs.com/). Čo myslíte,... ešte pred rokmi by nikoho ani nenapadlo že by vôbec niečo ako beh JS mimo prehliadača bol možný. Tak ma zaujímalo aká b mohla byť budúcnosť JavaScriptu čo sa natívnosti týče, a ako moc je na tom natívnosť, a prípadne aké frameworky by ste odporučili pre čo najnatívnejší a performance focus aplikácie v JS, či už desktopové alebo mobilné, a či už s UI alebo bez.

odkaz
Anonym
odpověděl/-a 22.8.2020

Neviem sice co je otazka ale treba si upratat v pojmoch JS - jazyk, jeho interpreter/kompilator no a na zaver knicnice ktore mozes pouzivat. Este neviem ci rozumies celkom tomu co je NPM respektive node.js. To nie je prehliadac, to je vyrezany google JS engine napisany v C++, ziadny browser tam nie je (https://v8.dev/). Ked napriklad chces vykreslovat pomocou JS beziaceho v node.js GTK komponenty mozes pouzit https://github.com/romgrk/node-gtk, ako to ale potom dostat na android? To su problemy, preto sa pouzivaju rozne 'kniznice' ktore pouzivaju nativne komponenty danej platformy. Takze pre android mas inu 'kniznicu' ako pre Linux (GTK). Cela sa to samozrejme zvrhlo pri multiplatformovosti GUI na to ze sa tam da proste browser (HtmlView) ktory uz multiplatformovo vykreslovat vie.

Komentáře

  • Mlocik97 : čo je NPM, čo je node.js, čo je v8, to všetko viem a rozumiem tomu... ja ale skôr hovoril o electrone a nie node.js, a tam už browser je. Skôr hovorím o tom ako z JS a HTML vygenerovať UI bez prehliadača, čož sú možnosti, ako napríklad práve NativeScript či GTK. 22.8.2020
  • honzik : @Mlocik97: kdybych nesledoval root.cz a nevedel, ze se javascriptem zabyvas, reagoval bych podobne, ta otazka je takova zmatecna.. 22.8.2020
  • honzik : "ako z JS a HTML vygenerovať UI bez prehliadača" - neni prave "z HTML vygenerovat" == prohlizec? 22.8.2020
  • Mlocik97 : HTML môže mať viacero zmyslov... HTML ako špecifické pravidlá predpisujúce syntax/spôsob zápisu informácií... súbor s príponou HTML,... "kód" predpisujúci ako prehliadač má generovať DOM (Document Object Model). Takže záleží... 22.8.2020
  • Anonym : Tak neviem ci v tom mas jasno ale "ešte pred rokmi by nikoho ani nenapadlo že by vôbec niečo ako beh JS mimo prehliadača bol možný" davno niekoho napadlo kedze node.js je tu uz 11 rokov. 22.8.2020
  • Mlocik97 : @Palo77 to by napísal každý človek, čo má skúsenosti Internetom a webom v časoch Netscapu. "Ešte pred rokmi..." neviem ako v češtine, ale v slovenčine môže mať nostalgický význam. Obdobne by som napísal ešte pred rokmi sme používali gramofóny a kazetové prehrávače, či diskety a CRT monitory, guličkové myši a môžem pokračovať. 23.8.2020
  • honzik : @Mlocik97 "HTML môže mať viacero zmyslov" - o tom žádná. Narážel jsem na větu "ako z JS a HTML vygenerovať UI bez prehliadača". Není právě generování UI z HTML a JS hlavní účel prohlížeče? Jak by se měl tento "generátor" od prohlížeče lišit? Protože z mého pohledu by se výsledný generátor právě stal prohlížečem.. 4.9.2020
  • Mlocik97 : Áno prehliadač generuje UI z HTML. (Ale nemusí, viď WASM/Unity). A rovnako naopak z HTML môže byť vygenerované UI aj mimo prehliadača, a dokonca natívne (síce neznám žiadny taký projekt, ale je to možné, podobne ako je možné z JS vytvoriť natívnu binárku (NectarJS) https://nectarjs.com/docs/contribute/how-nectarjs-works/ . Keď je možné JS transpilovať do C++ (Čo NectarJS robí práve pred kompiláciou), určite jde HTML transpilovať napríklad do GTK. A nestal by sa prehliadačom. Lebo prehliadač využíva určitých vlastností, a práve tie odlištnosti by boli v tých vlastnostiach. Ako napríklad: žiadny DOM. natívna binárka (žiadne jadro v runtime), a pod. 4.9.2020

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.