Postřehy ohledně architektury JavaScriptu

YF

Postřehy ohledně architektury JavaScriptu
« kdy: 23. 08. 2016, 18:35:53 »
Cau - po letech sem si rekl ze se podivam do weboveho sveta - konkretne na javascript & nodejs - a jak se tim svetem tak ubiram tak me prijde v ledascems zajimavy - chtel sem vas poprosit o postrehy ohledne 'architektury' javascriptu - jak ho vlastne spravne pouzivat - (ciste z hlediska javascriptu prosim :) ) Zaujal me cofee script - nicmene nevim jak premyslet nad psanim kodu v necem co vlastne jenom provadi transkripci do js .. a tak :) prosim troly at si daj pohov - konstruktivni technicke prizpevky - diky.

YF
« Poslední změna: 23. 08. 2016, 21:20:23 od Petr Krčmář »


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:javascript
« Odpověď #1 kdy: 23. 08. 2016, 18:56:04 »
Cau - po letech sem si rekl ze se podivam do weboveho sveta - konkretne na javascript & nodejs - a jak se tim svetem tak ubiram tak me prijde v ledascems zajimavy - chtel sem vas poprosit o postrehy ohledne 'architektury' javascriptu - jak ho vlastne spravne pouzivat - (ciste z hlediska javascriptu prosim :) ) Zaujal me cofee script - nicmene nevim jak premyslet nad psanim kodu v necem co vlastne jenom provadi transkripci do js .. a tak :) prosim troly at si daj pohov - konstruktivni technicke prizpevky - diky.

YF
node.js je poměrně zajímavé díky smyčce událostí, nicméně samotný JS je dost nízkoúrovňový (před ES6). Občas je to trochu zmatek, ale "psaní kódu" je jako kdekoliv jinde, důležitá je filosofie node.js (callbacky). Stručně a jasně, není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích. libevent a podobné knihovny jsou beztak napsané v C, takže jdou použít z libovolného jazyka.

gl

Re:javascript
« Odpověď #2 kdy: 23. 08. 2016, 18:58:49 »
Coffeescript bych považoval spíš za preprocesor. Přeložený kód je čitelný a moc se neliší. ES6 implementuje většinu důležitých featur, které měl Coffeescript navíc. Používám Coffeescript a CSON hlavně kvůli víceřádkovým stringům, ale v novém nodejs už by mělo fungovat ``. Nový projekt už bych v Coffeescriptu nezačínal.

čumil

Re:javascript
« Odpověď #3 kdy: 23. 08. 2016, 20:12:08 »
Cau - po letech sem si rekl ze se podivam do weboveho sveta - konkretne na javascript & nodejs - a jak se tim svetem tak ubiram tak me prijde v ledascems zajimavy - chtel sem vas poprosit o postrehy ohledne 'architektury' javascriptu - jak ho vlastne spravne pouzivat - (ciste z hlediska javascriptu prosim :) ) Zaujal me cofee script - nicmene nevim jak premyslet nad psanim kodu v necem co vlastne jenom provadi transkripci do js .. a tak :) prosim troly at si daj pohov - konstruktivni technicke prizpevky - diky.

YF
Dám ti jeden tip, nauč se jak používat systém prototypů ... už to z tebe udělá JS boha vzhledem k jeho nepochopení. A pak piš klasický OOP kód doplnění sem tam o nějaký JS hack (tudle někam za běhu strčit metodu nebo ji přepsat ...).

A v nodejs se rozhodně nauč jak fungují streamy. Systém postavený na streamech je neskutečně elegantní věc, to ti řeknu.

gl

Re:javascript
« Odpověď #4 kdy: 23. 08. 2016, 20:14:46 »
node.js je poměrně zajímavé díky smyčce událostí, nicméně samotný JS je dost nízkoúrovňový (před ES6). Občas je to trochu zmatek, ale "psaní kódu" je jako kdekoliv jinde, důležitá je filosofie node.js (callbacky). Stručně a jasně, není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích. libevent a podobné knihovny jsou beztak napsané v C, takže jdou použít z libovolného jazyka.

Javascript nikdy nebyl moc nízkoúrovňový. Jen mu chyběla a chybí rozsáhlejší standartní knihovna. Namísto callbacků se dají používat i coroutiny.


čumil

Re:javascript
« Odpověď #5 kdy: 23. 08. 2016, 20:15:01 »
Cau - po letech sem si rekl ze se podivam do weboveho sveta - konkretne na javascript & nodejs - a jak se tim svetem tak ubiram tak me prijde v ledascems zajimavy - chtel sem vas poprosit o postrehy ohledne 'architektury' javascriptu - jak ho vlastne spravne pouzivat - (ciste z hlediska javascriptu prosim :) ) Zaujal me cofee script - nicmene nevim jak premyslet nad psanim kodu v necem co vlastne jenom provadi transkripci do js .. a tak :) prosim troly at si daj pohov - konstruktivni technicke prizpevky - diky.

YF
node.js je poměrně zajímavé díky smyčce událostí, nicméně samotný JS je dost nízkoúrovňový (před ES6). Občas je to trochu zmatek, ale "psaní kódu" je jako kdekoliv jinde, důležitá je filosofie node.js (callbacky). Stručně a jasně, není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích. libevent a podobné knihovny jsou beztak napsané v C, takže jdou použít z libovolného jazyka.
Nejsem si docela jistý co myslíš tímhle "JS je dost nízkoúrovňový před ES6"

Pokud myslíš ten syntaktickej cukr kolem tříd, tak to je pouze pro lidi s takovou mírou ignorace, že se ani neobtěžují přečíst co to sou ty zasraný prototypy.

Kit

Re:javascript
« Odpověď #6 kdy: 23. 08. 2016, 20:58:44 »
node.js je poměrně zajímavé díky smyčce událostí, nicméně samotný JS je dost nízkoúrovňový (před ES6). Občas je to trochu zmatek, ale "psaní kódu" je jako kdekoliv jinde, důležitá je filosofie node.js (callbacky). Stručně a jasně, není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích. libevent a podobné knihovny jsou beztak napsané v C, takže jdou použít z libovolného jazyka.

JS se mi také nejeví jako nízkoúrovňový. Podle mne má vše, co je k OOP potřebné. Skoro bych řekl, že je objektovější než Java nebo C#.

tisnik

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #7 kdy: 23. 08. 2016, 22:02:28 »
Cau - po letech sem si rekl ze se podivam do weboveho sveta - konkretne na javascript & nodejs - a jak se tim svetem tak ubiram tak me prijde v ledascems zajimavy - chtel sem vas poprosit o postrehy ohledne 'architektury' javascriptu - jak ho vlastne spravne pouzivat - (ciste z hlediska javascriptu prosim :) ) Zaujal me cofee script - nicmene nevim jak premyslet nad psanim kodu v necem co vlastne jenom provadi transkripci do js .. a tak :) prosim troly at si daj pohov - konstruktivni technicke prizpevky - diky.

YF

To máš dost těžké, každý ti bude radit něco jiného podle vlastních zkušeností. JS je strašně rychle se měnící svět, viz https://segment.com/blog/the-deep-roots-of-js-fatigue/

Osobní názor: už bych dneska do CoffeeScriptu neinvestoval čas, ani do dalších JS-ale-ne-tak-úplně-JS like jazyků, protože ES6 a Lodash (IMHO) plně dostačují. Node.js je pro server-side určitě fajn, pokud už nepoužíváte jinou technologii.

Ivan Nový

Re:Postřehy ohledně architektury JavaScriptu
« Odpověď #8 kdy: 24. 08. 2016, 03:35:30 »
Zajímavější než JS je Dart. Architektura JS = lisp pro lopaty. Je to jazyk, který je snad nejvíce znásilňovaný ze všech.

SB

Re:javascript
« Odpověď #9 kdy: 24. 08. 2016, 10:57:25 »
...nicméně samotný JS je dost nízkoúrovňový (před ES6)...

To snad nemyslíte vážně...!!!!!

...důležitá je filosofie node.js (callbacky)...

Callbacky jsou jednou z nejproblematičtějších věcí Node.js, kdy strukturováním do funkcí (neboli vývojářem) je řešeno předávání vlákna, které v jiných jazycích řeší různé syncy ap.

...není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích...

To "přirozeně" myslíte jako v Javě a C++, ne? Tak v tom případě je Javascript protipólem těchto dvou jazyků, protože modelování v něm je značně jednoduché.

Kam na ty "rady" chodíte?

SB

Re:javascript
« Odpověď #10 kdy: 24. 08. 2016, 11:04:55 »
Dám ti jeden tip, nauč se jak používat systém prototypů ... už to z tebe udělá JS boha vzhledem k jeho nepochopení...

Asi tak. S prototypy se dá docela čarovat, řekl bych, že je to taková přímočařejší forma sdílení vlastností a chování objektů oproti třídně-instančnímu OOP. Rozhodně stojí za pozornost, a to i pro pochopení OOP.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:javascript
« Odpověď #11 kdy: 24. 08. 2016, 11:07:25 »
node.js je poměrně zajímavé díky smyčce událostí, nicméně samotný JS je dost nízkoúrovňový (před ES6). Občas je to trochu zmatek, ale "psaní kódu" je jako kdekoliv jinde, důležitá je filosofie node.js (callbacky). Stručně a jasně, není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích. libevent a podobné knihovny jsou beztak napsané v C, takže jdou použít z libovolného jazyka.

Javascript nikdy nebyl moc nízkoúrovňový. Jen mu chyběla a chybí rozsáhlejší standartní knihovna. Namísto callbacků se dají používat i coroutiny.
To jako knihovna pro standarty? K čemu by tam byla?

SB

Re:javascript
« Odpověď #12 kdy: 24. 08. 2016, 11:09:35 »
Javascript nikdy nebyl moc nízkoúrovňový. Jen mu chyběla a chybí rozsáhlejší standartní knihovna. Namísto callbacků se dají používat i coroutiny.

Nenapadá mě nic, co by se v Javascriptu dalo označit za nízkoúrovňové. Snad jen komplikovanost je zde nízkoúrovňová (i když už to autoři taky kurví, např. pseudotřídami, syntaktickým balastem...).

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:javascript
« Odpověď #13 kdy: 24. 08. 2016, 11:13:32 »
...nicméně samotný JS je dost nízkoúrovňový (před ES6)...

To snad nemyslíte vážně...!!!!!

...důležitá je filosofie node.js (callbacky)...

Callbacky jsou jednou z nejproblematičtějších věcí Node.js, kdy strukturováním do funkcí (neboli vývojářem) je řešeno předávání vlákna, které v jiných jazycích řeší různé syncy ap.

...není třeba si s tím lámat hlavu a psát přirozeně, jako v jiných OO jazycích...

To "přirozeně" myslíte jako v Javě a C++, ne? Tak v tom případě je Javascript protipólem těchto dvou jazyků, protože modelování v něm je značně jednoduché.

Kam na ty "rady" chodíte?
1) Myslím.
2) Callbacky jsou všude možně, nejen v JS, a vesměs jde o užitečný koncept.
3) Ne. Přirozeně znamená "idiomaticky", tedy bez různých frajeřinek, rádoby sofistikovaných konstrukcí a kdejakých epicyklů. V tomto exceluje například Go, jiné jazyky poskytují příliš volnosti, což bývá - u méně zkušených - na škodu.

SB

Re:javascript
« Odpověď #14 kdy: 24. 08. 2016, 11:14:37 »
JS se mi také nejeví jako nízkoúrovňový. Podle mne má vše, co je k OOP potřebné. Skoro bych řekl, že je objektovější než Java nebo C#.

Skoro? Např. velmi pozdní vazba a silná reflexivita je v porovnání s uvedenými bastly bezkonkurenční a velmi užitečná pro snadné objektové modelování.