Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: oss 25. 09. 2018, 08:13:17

Název: Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: oss 25. 09. 2018, 08:13:17
Ahojte,
je tu plno tem na rozne jazyky a mna zaujima
co vam vadi na javascripre v roku 2018? Teda na jeho sucasnom stave.
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: Cikáda 25. 09. 2018, 08:30:17
Nejvíc mi vadí "komunita". Strašně rychle přechází z jednoho nástroje/frameworku/čehokoliv na něco jiného, apod., protože původní řešení není dost "in" a "cool". To tomu, jinak pěknému, jazyku škodí. (snažím se psát co nejvíc vanilla, protože na půlku nástrojů není spoleh)

Ono se to časem spraví. Holt je to daň za relativně rychlý vývoj. :)
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: test 25. 09. 2018, 08:30:48
Co mi na javascriptu vadí? Javascript.
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: michal2 25. 09. 2018, 08:45:42
Tohle vzniklo nekdy v roce 2002.... a porad je to pravda: http://old.decky.cz/data/js.htm
:-p
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: ZAJDAN 25. 09. 2018, 09:20:59
Tohle vzniklo nekdy v roce 2002.... a porad je to pravda: http://old.decky.cz/data/js.htm
:-p
Rád si nechám poradit v čem by šli udělat event handlery na interaktivní manipulaci se SVG elementy, když ne JavaScriptem.
Tady se opět strhává diskuze jen proto, že někdo stále nechce pochopit, že polévku jím lžící a maso řežu nožem.
Ano viděl jsem na vojně "universály" co sežrali cokoli jen pomocí lžíce(i špagety).
Já si nářadí vybírám dle toho co chci dělat. A Javascript má stále své důležité místo.
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: michal2 25. 09. 2018, 09:47:06
Tohle vzniklo nekdy v roce 2002.... a porad je to pravda: http://old.decky.cz/data/js.htm
:-p
Rád si nechám poradit v čem by šli udělat event handlery na interaktivní manipulaci se SVG elementy, když ne JavaScriptem.
Tady se opět strhává diskuze jen proto, že někdo stále nechce pochopit, že polévku jím lžící a maso řežu nožem.
Ano viděl jsem na vojně "universály" co sežrali cokoli jen pomocí lžíce(i špagety).
Já si nářadí vybírám dle toho co chci dělat. A Javascript má stále své důležité místo.

To, ze na urcitou cinnost existuje jeden jediny nastroj, jeste neznamena, ze neni nahovno...
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: Bukanyr 25. 09. 2018, 09:49:32
Co mi na javascriptu vadí? Javascript.
Lip bych to nerekl.
Název: Re:Co vam vadi na javascripre v roku 2018?
Přispěvatel: ZAJDAN 25. 09. 2018, 09:56:19
To, ze na urcitou cinnost existuje jeden jediny nastroj, jeste neznamena, ze neni nahovno...
mluv za sebe, pro mne je to perfektní nástroj
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 25. 09. 2018, 10:26:30
Mne na ňom nevadí nič. JS, Node a Vue mi sadlo najviac.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 10:32:01
Na Javascriptu mi nejvíc vadí, že mnoho vývojářů ho používá chybně.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 25. 09. 2018, 10:46:47
Na Javascriptu mi nejvíc vadí, že mnoho vývojářů ho používá chybně.

Za mňa bod. A to sú tí, čo naň najviac nadávajú.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Inkvizitor 25. 09. 2018, 10:56:02
Hloupa reprezentace cisel.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: oss 25. 09. 2018, 11:05:05
Mne osobne vadi, ze hnusny zaklad sa lepia pomerne dobre veci, ale tym zakladom je to skazene.

Na Javascriptu mi nejvíc vadí, že mnoho vývojářů ho používá chybně.
Ako ho teda pouzit spravne?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 12:04:31
Mne osobne vadi, ze hnusny zaklad sa lepia pomerne dobre veci, ale tym zakladom je to skazene.

Spíš opačně. Na dobrý základ se lepí hnusné věci (frameworky) a na ty se lepí ještě hnusnější věci.

Na Javascriptu mi nejvíc vadí, že mnoho vývojářů ho používá chybně.
Ako ho teda pouzit spravne?

Zeptej se těch dobrých vývojářů. V Javascriptu dělám jen když musím a jen tak, aby aplikace fungovala dle zadání.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 25. 09. 2018, 12:04:38
JavaScript je ve sve podstate dokonaly skoro od pocatku. Vsechno je objekt, event driven, jednoducha syntax a uspokojiva sada zakladnich knihoven, proste klasicky computational complete scriptovaci jazyk 3.5te generace = udelas v nem vse. Novejsi varianty od ES6+ nebo TS jsou povetsinou sugar syntax nadstavbou nad dokonalym zakladem ale taky pridavaji FP ficury co muzeme nalezt u jinych jazyku (treba iteratory, generatory, nove operatory atd.)

Co mu lze vytknout je v podstate to, ze mnoho odpousti a tam kde by jiny jazyk uz bezmocne rval tak JS se porad este snazi nepadnout. I kdyz je jednoduchy tak neni moc pro zacatecniky, treba operator + ma dvoji vyznam (na kterem je zalozena drtiva vetsina JS vtipku a snazi se autocastnout cokoliv aby nepadnul).

Ta C-like syntax je zaroven zdroj potizi pro prebehlivce z jinych jazyku, protoze si mysli, ze kdyz umi C ci Javu tak daji JS levou zadni a pak rvou nesmysly po forach misto toho aby si koukli manual a naucili se JS pouzivat spravne. Prasarny se daji delat v kazdem jazyku, naucte se ho poradne a nedelejte je, pak bude JS dobry sluha.

Casto se mu vytyka matika ale je to standardni implementace jako u spousty jinych jazyku a komu je to malo ma hafo knihoven pro presnejsi matiku.

Sila JS je taky v tom, ze vzhledem na chudost zabudovanych knihoven vzniklo milion frameworku a nadstaveb takze je z ceho vybirat a nemusite vynalezat kolo. Typicky treba utilitky pro funkcionalni programovani jako underscore nebo lodash.

Suma sumarum JS dnes vladne webu, vyhrava na frontendu (Electron, desktop managery) a pomalu si podmanuje backend (nodejs). Milovnici starych "dobrych" casu a jazykou mohou spkripat zuby, ale je to tak, zitra bude vsechno v JS resp. jeho novejsich iteracich.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Lol Phirae 25. 09. 2018, 12:37:36
JavaScript je ve sve podstate dokonaly skoro od pocatku. ... zitra bude vsechno v JS resp. jeho novejsich iteracich.

Prosimtě, moh bys mi poslat tak asi kamion toho materiálu, na kterym jedeš?  ;D
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 12:43:54
JavaScript je ve sve podstate dokonaly skoro od pocatku. ... zitra bude vsechno v JS resp. jeho novejsich iteracich.

Prosimtě, moh bys mi poslat tak asi kamion toho materiálu, na kterym jedeš?  ;D

Javascript je volně dostupný.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: oss 25. 09. 2018, 12:47:08
Mne osobne vadi, ze hnusny zaklad sa lepia pomerne dobre veci, ale tym zakladom je to skazene.

Spíš opačně. Na dobrý základ se lepí hnusné věci (frameworky) a na ty se lepí ještě hnusnější věci.

Na Javascriptu mi nejvíc vadí, že mnoho vývojářů ho používá chybně.
Ako ho teda pouzit spravne?

Zeptej se těch dobrých vývojářů. V Javascriptu dělám jen když musím a jen tak, aby aplikace fungovala dle zadání.
ja som nemyslel frameworky, tych je milion, skor ES3, ES6,...

A co by ste na nom vylepsili?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Matik 25. 09. 2018, 13:11:10
pomalu si podmanuje backend (nodejs)
Nestraš.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Jano7 25. 09. 2018, 13:25:18
Na JavaScripte mi vadí ten Prototype nezmysel, všetko čo súvisí s Babelom, nemám tiež rád transpilery -- len zväčšujú už tak dosť veľký zmätok. Nepáči sa mi nedotiahnutý modulový systém, existencia desiatok či stoviek závislostí medzi knižnicami. Chýbajú mi zavedené štandardy, napr. ako organizovať, správne nakódiť databázovú vrstvu atď.

Vadí mi história jazyka, pretože prvý dojem bol príšerný, a to sa vlečie s jazykom doteraz, a množstvo programátorov JavaScript odsudzuje, hoci je to v súčasnosti naozaj veľmi dobrý jazyk.

Samozrejme, tiež sa pripájam k spomínaným prudkým zmenám v ekosystéme. Napríklad, začnete študovať Express.js framework, zistíte že je to skvelá vec. No a o pár mesiacov zistíte, že Express.js je passé, pretože je tu Koa.js (vytvorená autormi Expressu), ktorá zahrňuje nové vlastnosti jazyka (async, await). Je úplne logické, že sa autori tak rozhodli, pretože tieto novinky sú obrovským plusom a do Expressu sa to zrejme nedalo jednoducho dorobiť, ale teda nepoteší to, že zasa treba niečo prijať a zahodiť.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 25. 09. 2018, 13:29:18
Prosimtě, moh bys mi poslat tak asi kamion toho materiálu, na kterym jedeš?  ;D

Salvation & JavaScript is free. Nac bys vyhazoval penize na drogy kdyz ty endorfiny ti da zdarma vira a kodeni v javascriptu ? Ja resim oboje soubezne asi 10 let a je mi skvele i bez chemie.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 25. 09. 2018, 13:34:00
Napríklad, začnete študovať Express.js framework, zistíte že je to skvelá vec. No a o pár mesiacov zistíte, že Express.js je passé, pretože je tu Koa.js (vytvorená autormi Expressu), ktorá zahrňuje nové vlastnosti jazyka (async, await).

Kdo si nenakodil vlastni framework neni JS koder! Radim ti, nekoukej moc po cizich hipsterskych frameworcich ale nakod si vlastni nebo slohni jadro z nerychlejsiho a dopln to co potrebujes. Pak ty iterace a zastaravani az tak neplati a cas na novou verzi je tak jednou za 3-4 roky.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Jano7 25. 09. 2018, 13:36:29
Citace
JavaScript je ve sve podstate dokonaly skoro od pocatku.

Tak jazyk, ktorý má v syntaxe use strict nemohol nikdy byť dokonalý.

Citace
Ta C-like syntax je zaroven zdroj potizi pro prebehlivce z jinych jazyku, protoze si mysli, ze kdyz umi C ci Javu tak daji JS levou zadni a pak rvou nesmysly po forach misto toho aby si koukli manual a naucili se JS pouzivat spravne.

Podľa Douglas Crockforda to bolo spôsobené tým, že JavaScript bol vytvorený ako funkcionálny jazyk, s čím ale manažment nesúhlasil, preto mal navonok vyzerať ako štandardný jazyk. To bol jeden z viacerých kameňov úrazu jazyka.

Citace
Suma sumarum JS dnes vladne webu, vyhrava na frontendu (Electron, desktop managery) a pomalu si podmanuje backend (nodejs). Milovnici starych "dobrych" casu a jazykou mohou spkripat zuby, ale je to tak, zitra bude vsechno v JS resp. jeho novejsich iteracich.

Na frontende "vládne" C a C++ a veľmi ťažko si viem predstaviť, že by JavaScript vytlačil PHP a Javu zo svojich domén.
JavaScript zažíva prudký rozmach avšak zavedené technológie  len tak ľahko nenahradí.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 13:39:49
Napríklad, začnete študovať Express.js framework, zistíte že je to skvelá vec. No a o pár mesiacov zistíte, že Express.js je passé, pretože je tu Koa.js (vytvorená autormi Expressu), ktorá zahrňuje nové vlastnosti jazyka (async, await).
Kdo si nenakodil vlastni framework neni JS koder! Radim ti, nekoukej moc po cizich hipsterskych frameworcich ale nakod si vlastni nebo slohni jadro z nerychlejsiho a dopln to co potrebujes. Pak ty iterace a zastaravani az tak neplati a cas na novou verzi je tak jednou za 3-4 roky.

Není lepší si napsat vlastní transpiler?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 25. 09. 2018, 13:47:00
Počet frameworkov nemá nič spoločné s kvalitou jazyka. A ani ich nie je milión, v súčasnosti sú top React a Angular, z ktorých React sa snažil o čo najviac funkcionálny prístup, Angular zasa o objektový. Mne sadol ten tretí, Vue, lebo je o čistom JS, nehrá sa ani na funkcionálny, ani na objektový framework, ikeď ide použiť aj tak. A že má milión závislostí? Nie, má nula závislostí. A že treťostranné knižnice sú delené na moduly? No a? Lebo Java nie je? Na klasy? A väčší projekt ich má pokojne tisíce? Len neviete o čom hovoríte. To nie je žiadna slabina JS, to je proste organizácia kódu a zasa to nemá nič spoločné s kvalitou jazyka. A že je v ňom dedičnosť implementovaná ako reťaz prototypov? No a? To je feature, zasa nie slabina. JS nie je ani zlý, ani dobrý. JS proste je. Prestaňte sa strápňovať jeho hodnotením, neviete o čom hovoríte. A pripájam článok od Java profesionála, ktorému JS učaroval rovnako ako mne. A ešte som to aj zažil osobne, Java profík z Telekomu po zoznámení s JS a princípov moderných web aplikácií (loose coupled arch., serverless s AWS, microservices, atď) za dva týždne bez problémov kódil f-e s Vue a b-e nad AWS a tiež sa mu to zapáčilo. Otvorte oči ovce, jazykov a princípov je milión, nie len ten jediný ktorý
viete. Tak nepičovať a hor sa učiť sa :)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Honza 25. 09. 2018, 13:56:34
Javascript není konzistentní ani sám se sebou...

https://slikts.github.io/js-equality-game/
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 14:01:09
Citace
Suma sumarum JS dnes vladne webu, vyhrava na frontendu (Electron, desktop managery) a pomalu si podmanuje backend (nodejs). Milovnici starych "dobrych" casu a jazykou mohou spkripat zuby, ale je to tak, zitra bude vsechno v JS resp. jeho novejsich iteracich.

Na frontende "vládne" C a C++ a veľmi ťažko si viem predstaviť, že by JavaScript vytlačil PHP a Javu zo svojich domén.
JavaScript zažíva prudký rozmach avšak zavedené technológie  len tak ľahko nenahradí.

Jazyky C a C++ jsou přeceňovány, protože v něm píší programátoři pro programátory, zejména low-level aplikace. Skutečnost je mnohem rozmanitější. NodeJS se chová zcela jinak než PHP, proto budou stále koexistovat. Webhostingů s NodeJS je stále málo. Python byl kdysi také velkým webovým favoritem. Stále se používá, ale mainstreamem se nestal.

Přestože je Javascript zajímavým jazykem, stále má na Lisp co dohánět, ostatně jako většina jazyků.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: avc 25. 09. 2018, 14:02:23
Skor si myslim, ze JS bude akurat na lepenie kodu z webassembly. Kto normalny by sa ucil takyto balast. Ano, su tam pekne vlastnosti ako prototypovy objektovy pristup, ale tym to hasne.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: s 25. 09. 2018, 14:06:26
Uplne nejvic nejzakladnejsi priklad, co mne napada, je treba ze proti hadani hesel se dela (mimo jine) ze po zadani credentialu se 1s pocka. Obvykly sleep ma ten problem, ze na tu sekundu zablokuje thread/proces. V JS se tohle dela snadno.

Anebo, pisu neco jako WWW proxy a sluzba vraci neco, co si pred tim vyzada realtime nekde jinde. Kdyz je "to nekde jinde" pomale, zase to blokne cely thread/proces.

Ne ze by se neco takoveho nedalo naspat v pythonu, ale JS je z podstaty async a i vsechny knihovny jsou taky async. Takze, kdyz treba pisete neco, co ceka na AWS SQS, je to v JS SDK rovnou async. Kdyz to budete delat v pythonu/ruby/java, tak to mate blby a musite delat thready/procesy.  V JS si efektivne klidne stacite s 1 procesem/threadem.

Vznika nove paradigma, misto toho, aby funkce vracela navratovou hodnotu, vola callback. Ne kazdy se s tim dokaze poprat a ano, nekdy je to opravdu nesikovne...
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Cikáda 25. 09. 2018, 14:14:38
Počet frameworkov nemá nič spoločné s kvalitou jazyka. A ani ich nie je milión, v súčasnosti sú top React a Angular, z ktorých React sa snažil o čo najviac funkcionálny prístup, Angular zasa o objektový. Mne sadol ten tretí, Vue, lebo je o čistom JS, nehrá sa ani na funkcionálny, ani na objektový framework, ikeď ide použiť aj tak. A že má milión závislostí? Nie, má nula závislostí. A že treťostranné knižnice sú delené na moduly? No a? Lebo Java nie je? Na klasy? A väčší projekt ich má pokojne tisíce? Len neviete o čom hovoríte. To nie je žiadna slabina JS, to je proste organizácia kódu a zasa to nemá nič spoločné s kvalitou jazyka. A že je v ňom dedičnosť implementovaná ako reťaz prototypov? No a? To je feature, zasa nie slabina. JS nie je ani zlý, ani dobrý. JS proste je. Prestaňte sa strápňovať jeho hodnotením, neviete o čom hovoríte. A pripájam článok od Java profesionála, ktorému JS učaroval rovnako ako mne. A ešte som to aj zažil osobne, Java profík z Telekomu po zoznámení s JS a princípov moderných web aplikácií (loose coupled arch., serverless s AWS, microservices, atď) za dva týždne bez problémov kódil f-e s Vue a b-e nad AWS a tiež sa mu to zapáčilo. Otvorte oči ovce, jazykov a princípov je milión, nie len ten jediný ktorý
viete. Tak nepičovať a hor sa učiť sa :)

Je jich milión a je v tom bordel. A to říkám jako někdo, kdo má JavaScript velmi rád. Ono se to časem srovná, ale teď je to fakt občas síla. :)

Javascript není konzistentní ani sám se sebou...

https://slikts.github.io/js-equality-game/

A nebo někdo neumí číst standard. ;)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Honza 25. 09. 2018, 14:33:40
Že se používá na skoro všech webech i těch v principu se statickým obsahem na straně klienta. Ještě před 10 lety jela většina webů i bez js, dnes už jen čestné výjimky. Js je pro mě jazyk na srandičky a hříčky a validaci formuláře na straně klienta.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Cikáda 25. 09. 2018, 14:35:15
Js je pro mě jazyk na srandičky a hříčky a validaci formuláře na straně klienta.

Tak to jsi asi sto let pozadu. :)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: BoneFlute 25. 09. 2018, 14:47:19
JavaScript je ve sve podstate dokonaly skoro od pocatku. Vsechno je objekt, event driven, jednoducha syntax a uspokojiva sada zakladnich knihoven, proste klasicky computational complete scriptovaci jazyk 3.5te generace = udelas v nem vse. Novejsi varianty od ES6+ nebo TS jsou povetsinou sugar syntax nadstavbou nad dokonalym zakladem ale taky pridavaji FP ficury co muzeme nalezt u jinych jazyku (treba iteratory, generatory, nove operatory atd.)

Co mu lze vytknout je v podstate to, ze mnoho odpousti a tam kde by jiny jazyk uz bezmocne rval tak JS se porad este snazi nepadnout. I kdyz je jednoduchy tak neni moc pro zacatecniky, treba operator + ma dvoji vyznam (na kterem je zalozena drtiva vetsina JS vtipku a snazi se autocastnout cokoliv aby nepadnul).

Ta C-like syntax je zaroven zdroj potizi pro prebehlivce z jinych jazyku, protoze si mysli, ze kdyz umi C ci Javu tak daji JS levou zadni a pak rvou nesmysly po forach misto toho aby si koukli manual a naucili se JS pouzivat spravne. Prasarny se daji delat v kazdem jazyku, naucte se ho poradne a nedelejte je, pak bude JS dobry sluha.

Casto se mu vytyka matika ale je to standardni implementace jako u spousty jinych jazyku a komu je to malo ma hafo knihoven pro presnejsi matiku.

Sila JS je taky v tom, ze vzhledem na chudost zabudovanych knihoven vzniklo milion frameworku a nadstaveb takze je z ceho vybirat a nemusite vynalezat kolo. Typicky treba utilitky pro funkcionalni programovani jako underscore nebo lodash.

Suma sumarum JS dnes vladne webu, vyhrava na frontendu (Electron, desktop managery) a pomalu si podmanuje backend (nodejs). Milovnici starych "dobrych" casu a jazykou mohou spkripat zuby, ale je to tak, zitra bude vsechno v JS resp. jeho novejsich iteracich.

Vjacemeněj souhlasím.

Moje výhrady:
- Je složitý. Pro začátečníka je to past vedle pasti.
- Je velký. Taková Lua mi přijde mnohem příjemnější. Na rozdíl od JS se pro ní dají snáze vytvářet céčkové extenze, snáze se bundluje do nějaké aplikace, má mnohem menší paměťovou náročnost. Syntaxí je mnohem kompaktnější a čistější. JS má naopak zbytečně zbytnělou syntax. Umí výjimky, ale neumí foreach.
- Monkey patching.
- Absence statického typování.

Co na JS naopak oceňuju:
- skoro všechno je first-class, funkce, typy
- céčková syntaxe
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 25. 09. 2018, 14:47:46
Js je pro mě jazyk na srandičky a hříčky a validaci formuláře na straně klienta.
Já už si zvykl ty formuláře přes ajax odesílat na server a redirect jinam udělat až po potvrzení úspěšného uložení.
A pokud jsou navíc součástí i nějaké větší soubory a uploaduje se to dlouho, tak klient alespoň může sledovat stav ukládání na server.
<form action=""><input type="submit"></form> už je fousatá historie. :-)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Cikáda 25. 09. 2018, 15:02:51
Moje výhrady:
- Je složitý. Pro začátečníka je to past vedle pasti.
- Je velký. Taková Lua mi přijde mnohem příjemnější. Na rozdíl od JS se pro ní dají snáze vytvářet céčkové extenze, snáze se bundluje do nějaké aplikace, má mnohem menší paměťovou náročnost. Syntaxí je mnohem kompaktnější a čistější. JS má naopak zbytečně zbytnělou syntax. Umí výjimky, ale neumí foreach.
- Monkey patching.
- Absence statického typování.

Co na JS naopak oceňuju:
- skoro všechno je first-class, funkce, typy
- céčková syntaxe

S tím se dá souhlasit, ale s tím, že je pro začátečníka těžký nevím... Pokud začátečník jiný jazyk neviděl, tak to naopak může být fajn. Nativně asynchronní (přejít na synchronní není takový problém jako opačně), složitější části jazyka lze objevovat postupně... A je všude + díky provázanosti s webem jde relativně rychle udělat základní gui. Ale ano, pokud začátečník přejde z nějakého jiného jazyka, tak se asi brzo střelí do nohy. :)

Btw neumí foreach?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 25. 09. 2018, 15:07:27
Že se používá na skoro všech webech i těch v principu se statickým obsahem na straně klienta. Ještě před 10 lety jela většina webů i bez js, dnes už jen čestné výjimky. Js je pro mě jazyk na srandičky a hříčky a validaci formuláře na straně klienta.

Jsi zaspal dobu, kdyz si myslis ze to jen validace formulare a blikani a hvizdani.  :D
MVC/MVVM singlepage app se kodili uz snad pred 8 lety (treba fb, twitter a spousta dalsich) takze se v tom normalne kodi aplikace. Akorat nebezi primo v OS ale v browseru. Ostate proto dnes mas desitky multiplatformnich aplikaci, ktere prdi na to jaky OS maji pod sebou, staci ze tam frci jadro chrome (Electron, Cobalt, Cordova...). Anebo na to neprdi, ty si kodis s jistymi pravidly web apku a na pozadi to vyuziva API OS (obvykle u mobilu, React Native, PhoneGap).

By si se divil co mas v mobilu anebo na desktopu a frci to v JavaScriptu (Skype, Slack, VisualStudio Code, Atom, Discord, WhasApp, Viber a spousta dalsich).
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 25. 09. 2018, 15:08:42
Btw neumí foreach?

Jenom jako iterace prvku pole. Kdyz chces iterovat props objektu tak na to musis for cyklem.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 25. 09. 2018, 15:16:24
Btw neumí foreach?

Jenom jako iterace prvku pole. Kdyz chces iterovat props objektu tak na to musis for cyklem.

Akurát, že nie bežný for, ale for in cyklus.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 25. 09. 2018, 15:25:08
PS: Object.keys(myObj).foreach(cb), ak na to chceš ísť funkcionálne
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 25. 09. 2018, 15:31:06
Object.keys(myObj) je pole - takže zase foreach nad polem. :-)

Ale stačilo aby místo "for each (variable in object)" byla syntaxe "foreach (variable in object)" a Boo by byl spokojený :-)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: JardaH 25. 09. 2018, 15:40:50
Já jsem měl chuť udělat hru v browseru v HTML5, canvas a čistý JavaScript, tzv. vanilkový.  Předtím jsem naposledy viděl JS někdy v roce '96, kdy něco fungovalo v Netscapu, něco v MSIE, ale kompatibilita žádná. Pak JS skoro umřel na všechno bylo PHP a pak už jsem se nikdy až na pár vyjímek s něčím okolo webu srát nemusel.

Takže jsem začal od nuly, pokoušel se proniknout do ECMAScript6, snažil se udělat jakýs-takýs mírně objektový design, nějaké datové struktury atd, a ke canvasu se snažil přistupovat jako k bytovému poli, čistý kód...

No s tímhle přístupem jsem si tak maximálně nabil držku a posléze jsem se na to z vysoka vysral. Prostě mi to vůbec nevyhovovalo, maximálně jsem se lehce uklidňoval nad tím, že to má aspoň C syntax... Kdybych to napsal v C/SDL a pak zkompiloval pomocí llvm+emscripten, tak jsem to mohl mít za dva víkendy hotový.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 15:43:27
Object.keys(myObj) je pole - takže zase foreach nad polem. :-)

Pole se v Javascriptu chová spíš jako seznam, podobně jako v PHP, takže ten foreach je namístě.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 15:48:27
No s tímhle přístupem jsem si tak maximálně nabil držku a posléze jsem se na to z vysoka vysral. Prostě mi to vůbec nevyhovovalo, maximálně jsem se lehce uklidňoval nad tím, že to má aspoň C syntax... Kdybych to napsal v C/SDL a pak zkompiloval pomocí llvm+emscripten, tak jsem to mohl mít za dva víkendy hotový.

Nebyla náhodou chyba v tom, že jsi k canvasu přistupoval jako k bajtovému poli? To musel být docela opruz.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: 0 25. 09. 2018, 15:55:03
muj problem s javascriptem je ten, ze jakakoliv slozitejsi aplikace napsana v nem je prasarna z pohledu vykonu a systemovych prostredku

moje nejcerstvejsi zkusenost je ten webovy photoshop od ceskeho tvurce. Na prvni pohled to vypada velmi dobre, ale kdyz to zacnete pouzivat zjistite ze to je prilis pomale a nenazrane
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 25. 09. 2018, 15:58:07
muj problem s javascriptem je ten, ze jakakoliv slozitejsi aplikace napsana v nem je prasarna z pohledu vykonu a systemovych prostredku

moje nejcerstvejsi zkusenost je ten webovy photoshop od ceskeho tvurce. Na prvni pohled to vypada velmi dobre, ale kdyz to zacnete pouzivat zjistite ze to je prilis pomale a nenazrane
To by mělo do budoucna řešit WebAssembly.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Cikáda 25. 09. 2018, 16:03:09
No s tímhle přístupem jsem si tak maximálně nabil držku a posléze jsem se na to z vysoka vysral. Prostě mi to vůbec nevyhovovalo, maximálně jsem se lehce uklidňoval nad tím, že to má aspoň C syntax... Kdybych to napsal v C/SDL a pak zkompiloval pomocí llvm+emscripten, tak jsem to mohl mít za dva víkendy hotový.

Nebyla náhodou chyba v tom, že jsi k canvasu přistupoval jako k bajtovému poli? To musel být docela opruz.

To bude ono :)

Btw neumí foreach?

Jenom jako iterace prvku pole. Kdyz chces iterovat props objektu tak na to musis for cyklem.

Jo tak to jo. Čemu to vadí? (zvlášť s ES6+) :)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Petra 25. 09. 2018, 16:11:22
muj problem s javascriptem je ten, ze jakakoliv slozitejsi aplikace napsana v nem je prasarna z pohledu vykonu a systemovych prostredku

V porovnání s jinými scriptovacími jazyky si vede velice dobře:

JS vs Ruby: https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/node-yarv.html
JS vs Python: https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/node-python3.html
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 25. 09. 2018, 16:16:16
Btw neumí foreach?

Jenom jako iterace prvku pole. Kdyz chces iterovat props objektu tak na to musis for cyklem.

Jo tak to jo. Čemu to vadí? (zvlášť s ES6+) :)
[/quote]

Ja nerikam ze mi to vadi, pouze jsem odpovedel jak to je s foreach v JS. Stejne si kazdy nakodi nejaky vlastni each(cokoliv, (e,i)=>{}) nebo pouzije knihovnu.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Ondrej Nemecek 25. 09. 2018, 16:33:12
Uplne nejvic nejzakladnejsi priklad, co mne napada, je treba ze proti hadani hesel se dela (mimo jine) ze po zadani credentialu se 1s pocka. Obvykly sleep ma ten problem, ze na tu sekundu zablokuje thread/proces. V JS se tohle dela snadno.

Anebo, pisu neco jako WWW proxy a sluzba vraci neco, co si pred tim vyzada realtime nekde jinde. Kdyz je "to nekde jinde" pomale, zase to blokne cely thread/proces.

Ne ze by se neco takoveho nedalo naspat v pythonu, ale JS je z podstaty async a i vsechny knihovny jsou taky async. Takze, kdyz treba pisete neco, co ceka na AWS SQS, je to v JS SDK rovnou async. Kdyz to budete delat v pythonu/ruby/java, tak to mate blby a musite delat thready/procesy.  V JS si efektivne klidne stacite s 1 procesem/threadem.

Vznika nove paradigma, misto toho, aby funkce vracela navratovou hodnotu, vola callback. Ne kazdy se s tim dokaze poprat a ano, nekdy je to opravdu nesikovne...

To ale není žádná výsada Javascriptu a naopak to mají jiné jazyky často vyřešeno lépe. Javascript je jen místo, kde na to začínající (nebo sváteční) programátoři nejdřív narazí.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: michal2 25. 09. 2018, 17:29:15
Mě vadí, že je to jednovláknová šmejďárna. V době 32jádrových procesorů navíc s HT dost problém. Všechny eventy a callbacky se řadí pěkně do frony a pak se synchronně provádějí. Jako cesta do pravěku, reminiscence na programování pro windows 3.11 je to fajn. Ale používat to v 2018? No nevím...
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 17:45:54
Mě vadí, že je to jednovláknová šmejďárna. V době 32jádrových procesorů navíc s HT dost problém. Všechny eventy a callbacky se řadí pěkně do frony a pak se synchronně provádějí. Jako cesta do pravěku, reminiscence na programování pro windows 3.11 je to fajn. Ale používat to v 2018? No nevím...

Tak přejdi na 64 bitů, když ti 32 nestačí.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 25. 09. 2018, 17:53:32
Mě vadí, že je to jednovláknová šmejďárna. V době 32jádrových procesorů navíc s HT dost problém. Všechny eventy a callbacky se řadí pěkně do frony a pak se synchronně provádějí. Jako cesta do pravěku, reminiscence na programování pro windows 3.11 je to fajn. Ale používat to v 2018? No nevím...

Nutno dodať, že v prehliadači to tak má svoj význam a Node na pozadí jednovláknový nie je.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Cikáda 25. 09. 2018, 20:45:07
On není jednovláknový ani v prohlížeči, spousta věcí na pozadí jede paralelně.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Honza 25. 09. 2018, 21:30:12
Možná je doba 32-jádrových procesorů, ale také je doba 32 tabů v prohlížeči otevřených současně. A to se vsadím, že většina uživatelů má tak 4, možná 8-jádro. Proč by tedy měla mít jedna stránka k dispozici více vláken?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Fuki 25. 09. 2018, 21:40:51
Možná je doba 32-jádrových procesorů, ale také je doba 32 tabů v prohlížeči otevřených současně.

A co ma tvojich 32 tabov spolocneho s JavaScriptom ?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 25. 09. 2018, 22:00:34
Možná je doba 32-jádrových procesorů, ale také je doba 32 tabů v prohlížeči otevřených současně. A to se vsadím, že většina uživatelů má tak 4, možná 8-jádro. Proč by tedy měla mít jedna stránka k dispozici více vláken?

Třeba proto, aby se ty podúlohy na té jedné stránce při nějakém čekání vzájemně neblokovaly.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Honza 25. 09. 2018, 22:08:22
Možná je doba 32-jádrových procesorů, ale také je doba 32 tabů v prohlížeči otevřených současně. A to se vsadím, že většina uživatelů má tak 4, možná 8-jádro. Proč by tedy měla mít jedna stránka k dispozici více vláken?

Třeba proto, aby se ty podúlohy na té jedné stránce při nějakém čekání vzájemně neblokovaly.
Souhlas, ale na to není potřeba více vláken.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: to_je_jedno 25. 09. 2018, 23:45:03
vetsinou hlavne to, ze nefunguje "back". nejde poslat odkaz na konkretni vec na webu.

a nerikam, ze je to hlavne problem JS - myslim, ze dobry vyvojar to umi osetrit.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 26. 09. 2018, 00:11:05
vetsinou hlavne to, ze nefunguje "back". nejde poslat odkaz na konkretni vec na webu.

Tohle je jen chybou vývojáře. Když to neumí, tak to má přenechat na HTML.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: ded.kenedy 26. 09. 2018, 00:43:43
Citace
Vznika nove paradigma, misto toho, aby funkce vracela navratovou hodnotu, vola callback. Ne kazdy se s tim dokaze poprat a ano, nekdy je to opravdu nesikovne...

Nejedna se o paradigma, ale o styl programovani, ktery se oznacuje jako "Continuation-passing style". A neni to nic noveho, protoze se jiz leta pouziva jako jeden z kroku prekladu funkcionalnich programu. Takovou zakladni cetbou je Appel: Compiling with Continuations z roku 1992.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: kkt1 26. 09. 2018, 08:46:25
Možná je doba 32-jádrových procesorů, ale také je doba 32 tabů v prohlížeči otevřených současně. A to se vsadím, že většina uživatelů má tak 4, možná 8-jádro. Proč by tedy měla mít jedna stránka k dispozici více vláken?

Třeba proto, aby se ty podúlohy na té jedné stránce při nějakém čekání vzájemně neblokovaly.
Souhlas, ale na to není potřeba více vláken.
Vice vlaken obecne ma vzdy smysl. Co kdyz amd/intel uvede treba 1024core cpu? Budeme si porad rikat ze single thread je vporadku?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Scripter 26. 09. 2018, 08:53:57
Možná je doba 32-jádrových procesorů, ale také je doba 32 tabů v prohlížeči otevřených současně. A to se vsadím, že většina uživatelů má tak 4, možná 8-jádro. Proč by tedy měla mít jedna stránka k dispozici více vláken?
Třeba proto, aby se ty podúlohy na té jedné stránce při nějakém čekání vzájemně neblokovaly.
Proč by se měly blokovat? Pleteš si concurrency s paralelismem.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: jean 26. 09. 2018, 09:27:17
Javascriptu jsem na chut neprisel, ale Javascript VM a browser jako runtime pro beh frontend aplikaci transpilovanych ze silne typovejch jazyku je bezva. Java ani .Net nastroje pro debug/tuneni se na Chrome DevTools nechytaji. Navic JS appky dokazi bejt svizny, pokud programator vi co dela.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: neznamy 26. 09. 2018, 09:49:58
Jako programator, ktery posledni rok pise pouze javascript se nestacim divit co se tady pise za bludy.

1) v javascriptu se dnes pomalu dela vse, 70% veskereho frontendu (zbytek je kotlin/swift na mobilech), a taky v podstate valna vetsina microservicu na backendu. jen u klasickych monolitickych backendu se pouziva spring/net/symphony.

Node.js je v mnoha ohledech velmi rychly.

Jsem zhrozeny ze vetsina programatoru zde nechape jak funguje a jak se da implementovat async - (epoll & friends, pripadne jen jako user friendly frontend na klasickem multithreaded backendu podobne jak to je v browseru). ze vy ste kluci nikdy nepsali multi threaded appky a nechali ste nakou knihovnu nadtim vasim sync psanym backendem aby se s tim poprala? nojo klasika.

rozlisujte callback, a async callback dekuji.

v expressu muzete async/await psat bez jakekoliv koy.js.

async/await je stejne jen glorifikovany cukr nad promissma ktery se snazi zalibit synchronnim programatorum.
Vznika tak naprosto zabavny kolotoc abstrakce, kdy HW-> asynchronni, OS nabidne thready aby to vypadalo jako synchronni pro uzivatele -> multithreaded browser nabidne asynchronni js interface -> ES6 nabidne synchronne vypadajici async/await s try catch. je to genialni nebo dementni? sam nevim.

peo typy v js je typescript.

modulovy system je jiz vyresen a v browseru implementovan (import z es6) v nodu pod flagama zatim (meli by si uz pohnout). transpilace babelem je uzbtemer nepotrebna pro ecma featury, potrebujete ho jenom na framework specific syntax. ano webpack ma priserny interface zdroje a dokumentaci.

co je na js nahovno jsou akorat legacy veci a zoraseny truthy tsble, null/undefined, debilni +, a ten nesmysl s prototypama na ktery dnes muze srat a delat jen v classes ktere sou sane.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: neznamy 26. 09. 2018, 09:50:12
Jako programator, ktery posledni rok pise pouze javascript se nestacim divit co se tady pise za bludy.

1) v javascriptu se dnes pomalu dela vse, 70% veskereho frontendu (zbytek je kotlin/swift na mobilech), a taky v podstate valna vetsina microservicu na backendu. jen u klasickych monolitickych backendu se pouziva spring/net/symphony.

Node.js je v mnoha ohledech velmi rychly.

Jsem zhrozeny ze vetsina programatoru zde nechape jak funguje a jak se da implementovat async - (epoll & friends, pripadne jen jako user friendly frontend na klasickem multithreaded backendu podobne jak to je v browseru). ze vy ste kluci nikdy nepsali multi threaded appky a nechali ste nakou knihovnu nadtim vasim sync psanym backendem aby se s tim poprala? nojo klasika.

rozlisujte callback, a async callback dekuji.

v expressu muzete async/await psat bez jakekoliv koy.js.

async/await je stejne jen glorifikovany cukr nad promissma ktery se snazi zalibit synchronnim programatorum.
Vznika tak naprosto zabavny kolotoc abstrakce, kdy HW-> asynchronni, OS nabidne thready aby to vypadalo jako synchronni pro uzivatele -> multithreaded browser nabidne asynchronni js interface -> ES6 nabidne synchronne vypadajici async/await s try catch. je to genialni nebo dementni? sam nevim.

peo typy v js je typescript.

modulovy system je jiz vyresen a v browseru implementovan (import z es6) v nodu pod flagama zatim (meli by si uz pohnout). transpilace babelem je uzbtemer nepotrebna pro ecma featury, potrebujete ho jenom na framework specific syntax. ano webpack ma priserny interface zdroje a dokumentaci.

co je na js nahovno jsou akorat legacy veci a zoraseny truthy tsble, null/undefined, debilni +, a ten nesmysl s prototypama na ktery dnes muze srat a delat jen v classes ktere sou sane.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: michal2 26. 09. 2018, 09:54:00
Proč by tedy měla mít jedna stránka k dispozici více vláken?

Protože se tam chtějí upravovat fotky ( https://www.photopea.com/ ), hrat hry s 3D grafikou a narocnou AI a provozovat tabulkove procesory s narocnymi formulemi. A brzy bude nekdo chtit clientside strihat video a provadet vedecke vypocty. Ale ja beru JS jako univerzalni jazyk. Kdybych bral JS jen jako jazyk pro clinet side webovou samohanou, tak bych pro nej mel jinou vytku, ze neni univerzalni ale jen pro tu samohanou.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Pep 26. 09. 2018, 09:58:59
Proč by tedy měla mít jedna stránka k dispozici více vláken?

Protože se tam chtějí upravovat fotky ( https://www.photopea.com/ ), hrat hry s 3D grafikou a narocnou AI a provozovat tabulkove procesory s narocnymi formulemi. A brzy bude nekdo chtit clientside strihat video a provadet vedecke vypocty. Ale ja beru JS jako univerzalni jazyk. Kdybych bral JS jen jako jazyk pro clinet side webovou samohanou, tak bych pro nej mel jinou vytku, ze neni univerzalni ale jen pro tu samohanou.
Na takové věci máme WebAssembly.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: neznamy 26. 09. 2018, 10:06:30
prectete si neco o web workerech.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Jano7 26. 09. 2018, 11:12:34
Citace
v expressu muzete async/await psat bez jakekoliv koy.js.

Natívna podpora pre middleware sa plánuje pre Express 5.

V Koa to máme takto krásne jednoducho:

Kód: [Vybrat]
const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);


Citace
modulovy system je jiz vyresen a v browseru implementovan (import z es6) v nodu pod flagama zatim (meli by si uz pohnout).

No veď to, v Node to ešte nie je stále ready.

Citace
a ten nesmysl s prototypama na ktery dnes muze srat a delat jen v classes ktere sou sane.

Prototype sa dá ignorovať, ale straší to v Mozille dokumentácii, napr. Date.prototype.getDate(). Nielenže JavaScript má class, ale dajú sa jednoducho vytvárať objekty pomocou JSON syntaxe. A to môjmu Java mozgu istý čas trvalo pochopiť, že je možné vytvárať objekty takto krásne priamočiaro, bez všetkej tej ceremónie.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: andy 26. 09. 2018, 11:32:56
async/await je stejne jen glorifikovany cukr nad promissma ktery se snazi zalibit synchronnim programatorum.
Tohle by mě zajímalo - mně se synchronní programování líbí. Připadá mi to značně přehlednější, jednodušší a spravovatelnější než "callback hell". Takže mě překvapuje, že někdo má jiný názor - mohl bys to rozvést?

Citace
Vznika tak naprosto zabavny kolotoc abstrakce, kdy HW-> asynchronni, OS nabidne thready aby to vypadalo jako synchronni pro uzivatele -> multithreaded browser nabidne asynchronni js interface -> ES6 nabidne synchronne vypadajici async/await s try catch. je to genialni nebo dementni? sam nevim.
Mně by se líbil runtime, který na N OS threadech (N ~ počet CPU) poběží M "app" threadů, které se z programátorského hlediska budou jevit jako synchronní (tzn. nebudu řešit async/await), ale runtime to bude dělat asynchronně (bude to řešit za mě). Nemá to tak Go?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: asd 26. 09. 2018, 11:55:23
Citace
Nielenže JavaScript má class, ale dajú sa jednoducho vytvárať objekty pomocou JSON syntaxe. A to môjmu Java mozgu istý čas trvalo pochopiť, že je možné vytvárať objekty takto krásne priamočiaro, bez všetkej tej ceremónie.

No a přitom pořád stejně pracuješ s prototypy... Javistům to obecně trvá chvilku dýl, ale když si to po chvíli všechno "sedne", tak si to pravděpodobně ještě oblíbíš.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 12:09:36
Tohle by mě zajímalo - mně se synchronní programování líbí. Připadá mi to značně přehlednější, jednodušší a spravovatelnější než "callback hell". Takže mě překvapuje, že někdo má jiný názor - mohl bys to rozvést?
Možná je to jednodušší a přehlednější, ale má to v časově náročnějších operacích vliv na výkon.
Představ si že máš v browseru jednovláknový synchronně zpracovávnaý skript, který přes ajax získává data/hodnoty z 20 různých zdrojů a zobrazí je v tabulce.
- synchronně: dáš volání do smyčky - zavoláš první, počkáš na výsledek, zobrazíš, zavoláš druhý.... za 20 sekund máš možná výsledek.
- asynchronně: dáš volání také do smyčky - zavoláš první a jen určíš, kdo bude nezávisle na hlavním vlákně čekat na výsledek a zobrazovat ho, zavoláš druhý... pokud bude jedno čekání na výsledek/hodnotu trvet cca sekundu jako v minulém případě, máš komplet hotovo dřív než za 1,5 sekundy 
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 26. 09. 2018, 12:29:41
Mně by se líbil runtime, který na N OS threadech (N ~ počet CPU) poběží M "app" threadů, které se z programátorského hlediska budou jevit jako synchronní (tzn. nebudu řešit async/await), ale runtime to bude dělat asynchronně (bude to řešit za mě). Nemá to tak Go?
Go nebo třeba GCD.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Michal2 26. 09. 2018, 12:42:15
prectete si neco o web workerech.

Ty se hodí v případě, že chci spustit nějaký delší výpočet a pak získat výsledek. Když chci 60FPS, tak potřebuji sdílenou paměť, synchronizační primitiva,...
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo 26. 09. 2018, 14:06:34
Citace
v expressu muzete async/await psat bez jakekoliv koy.js.

Natívna podpora pre middleware sa plánuje pre Express 5.

V Koa to máme takto krásne jednoducho:

Kód: [Vybrat]
const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);


Citace
modulovy system je jiz vyresen a v browseru implementovan (import z es6) v nodu pod flagama zatim (meli by si uz pohnout).

No veď to, v Node to ešte nie je stále ready.

Citace
a ten nesmysl s prototypama na ktery dnes muze srat a delat jen v classes ktere sou sane.

Prototype sa dá ignorovať, ale straší to v Mozille dokumentácii, napr. Date.prototype.getDate(). Nielenže JavaScript má class, ale dajú sa jednoducho vytvárať objekty pomocou JSON syntaxe. A to môjmu Java mozgu istý čas trvalo pochopiť, že je možné vytvárať objekty takto krásne priamočiaro, bez všetkej tej ceremónie.

to mate mirne casove popleteny, javascript mel objekty vzdy, akorat nebyl class-based (class tam jsou az od nedavna jako doplnek). tzn objekty se tvorily vzdy literalne, NASLEDNE vznikl JSON ktery to ma primo v nazvu "javascript object notation" - dalo by se rici "javascript object creation notation" abychom byli presnejsi.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo 26. 09. 2018, 14:14:08
async/await je stejne jen glorifikovany cukr nad promissma ktery se snazi zalibit synchronnim programatorum.
Tohle by mě zajímalo - mně se synchronní programování líbí. Připadá mi to značně přehlednější, jednodušší a spravovatelnější než "callback hell". Takže mě překvapuje, že někdo má jiný názor - mohl bys to rozvést?

Citace
Vznika tak naprosto zabavny kolotoc abstrakce, kdy HW-> asynchronni, OS nabidne thready aby to vypadalo jako synchronni pro uzivatele -> multithreaded browser nabidne asynchronni js interface -> ES6 nabidne synchronne vypadajici async/await s try catch. je to genialni nebo dementni? sam nevim.
Mně by se líbil runtime, který na N OS threadech (N ~ počet CPU) poběží M "app" threadů, které se z programátorského hlediska budou jevit jako synchronní (tzn. nebudu řešit async/await), ale runtime to bude dělat asynchronně (bude to řešit za mě). Nemá to tak Go?

ten autor tam prece nehodnoti zdali je sync lepsi nez async, ale na vasi otazku -
callback hell resi prave uz promisy ktere vypadaji "velmi synchronne"

nabizi se potom uz jen otazka zdali mate radsi try catch nebo then catch

promise()
.then
.then
.then
.catch

vs

try {
await()
await()
await()
}
catch() {
}
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Petra 26. 09. 2018, 14:19:18
null/undefined

Staci to vedet pouzivat. Undefined je default pri deklaraci promenne, ktere nebyla prirazena hodnota. Null by se mel prirazovat zamerne aby bylo videt rozdil jestli se promenne priradilo nic zamerne nebo deklaraci. Takze:
Kód: [Vybrat]
let promenna = 'neco mam';
promenna = undefined; // prasarna
promenna = null; // dobry
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Petra 26. 09. 2018, 14:23:59
Promise vs async - pozor bezne promise.then.then. funguje seriove. Async funguje paralelne, async je tedy spise Promise.all().
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Phi 26. 09. 2018, 14:30:44
Je úplne logické, že sa autori tak rozhodli, pretože tieto novinky sú obrovským plusom a do Expressu sa to zrejme nedalo jednoducho dorobiť, ale teda nepoteší to, že zasa treba niečo prijať a zahodiť.
Tohle se děje tak často, že se ptám, jestli není JavaScript write only jazyk.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo 26. 09. 2018, 14:57:42
null/undefined

Staci to vedet pouzivat. Undefined je default pri deklaraci promenne, ktere nebyla prirazena hodnota. Null by se mel prirazovat zamerne aby bylo videt rozdil jestli se promenne priradilo nic zamerne nebo deklaraci. Takze:
Kód: [Vybrat]
let promenna = 'neco mam';
promenna = undefined; // prasarna
promenna = null; // dobry

Petro nestaci, tohole je typicka legacy chyba pri navrhu jazyka. Pokud se to "naucite" pouzivat, ten investovany cas je ztraceny a mohla ste se ucit neco jineho, nehlede na to, ze je to dalsi zatez do pameti programatora. Muzete se naucit vselijake brikule vsemoznych jazyku, to nic nemeni na tom, ze je to spatne navrzene, kdyz jazyk vedle vam ukazuje jak je to spravne (napriklad python).
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Jano7 26. 09. 2018, 15:01:12
Citace
to mate mirne casove popleteny, javascript mel objekty vzdy, akorat nebyl class-based (class tam jsou az od nedavna jako doplnek). tzn objekty se tvorily vzdy literalne, NASLEDNE vznikl JSON ktery to ma primo v nazvu "javascript object notation" - dalo by se rici "javascript object creation notation" abychom byli presnejsi.

Nemám to časovo popletené, neviem prečo vznikol taký dojem. To, že JavaScript až do es6 nemal kľúčové slovo class, viem veľmi dobre. Pretože som ho pred vyše 10 rokmi tam márne hľadal, keď som vo firme dostal zadanie spraviť niečo v JavaScripte na frontende. Malo to C syntax, písalo sa o ňom, že je OOP, tak predsa tam to class musí byť. A nebolo. Objekty sa tvorili aj ináč, čo sa mi vrylo do pamäti ako prvé, tak to boli konštruktor funkcie.

Kód: [Vybrat]
// constructor function

function Item(name, maker) {

    this.name = name;
    this.maker = maker;
    this.getInfo = function () {
        return `${this.name} - ${this.maker}`
    };
 }

var item = new Item('IPhone', 'Apple');
console.log(item.getInfo());

Pre mňa bol AHA moment ten, keď som si uvedomil, že sa dajú vytvárať objekty a kolekcie objektov bez definovania tried, getterov a setterov a všektého toho balastu okolo. Pretože rokmi programovania v Jave sa človeku vryje do mozu, že trieda sa definuje pomocou class a objekt vytvorí pomocou new.

Kód: [Vybrat]
const R = require('ramda');

const users = [
    { name: 'John', city: 'London', born: '2001-04-01' },
    { name: 'Lenny', city: 'New York', born: '1997-12-11' },
    { name: 'Andrew', city: 'Boston', born: '1987-02-22' },
    { name: 'Peter', city: 'Prague', born: '1936-03-24' },
    { name: 'Anna', city: 'Bratislava', born: '1973-11-12' },
    { name: 'Albert', city: 'Bratislava', born: '1940-18-19' },
    { name: 'Adam', city: 'Trnava', born:'1983-12-01' },
    { name: 'Robert', city: 'Bratislava', born: '1935-05-15' },
    { name: 'Robert', city: 'Prague', born:'1998-03-14' }
  ];

let res = R.reject(R.propEq('city', 'Bratislava'))(users);
console.log(res);

let res2 = R.filter(R.propEq('city', 'Bratislava'))(users);
console.log(res2);

No a keď si človek uvedomí nakoniec, že veci sa dajú robiť oveľa jednoduchšie a elegantnejšie, tak precitne. Hore uvedený príklad by v Jave vyžadoval desiatky riadkov kódu navyše. JSON syntax a možnosť funkcionálneho spracovania dát napr. pomocou Ramdy ma na JavaScripte najviac zaujalo.

No a keď sa potom ešte Javista, ktorý má skúsenosť trebárs so Springom pozrie na taký Express, ako sa tam oveľa jednoduchšie nastavujú veci, tak dochádza k paradigm shift.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 15:02:53
Staci to vedet pouzivat. Undefined je default pri deklaraci promenne, ktere nebyla prirazena hodnota. Null by se mel prirazovat zamerne aby bylo videt rozdil jestli se promenne priradilo nic zamerne nebo deklaraci. Takze:
Kód: [Vybrat]
let promenna = 'neco mam';
promenna = undefined; // prasarna
promenna = null; // dobry
null / undefined / NaN / "" / 0 ...
Vcelku dobře je to vysvětléné tady: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo 26. 09. 2018, 15:04:42
Promise vs async - pozor bezne promise.then.then. funguje seriove. Async funguje paralelne, async je tedy spise Promise.all().

Toto neni pravda, async tak napsany jak jsem psal ja, je sekvencni!!!!  async muzete zavolat paralelne a taky to jinak musite napsat.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo 26. 09. 2018, 15:06:26
Promise vs async - pozor bezne promise.then.then. funguje seriove. Async funguje paralelne, async je tedy spise Promise.all().

Toto neni pravda, async tak napsany jak jsem psal ja, je sekvencni!!!!  async muzete zavolat paralelne a taky to jinak musite napsat.

Doporucim vam knizku You Don't know javascript - nejlepsi knizky o javascriptu, kde jsou tyto veci velmi dobre vysvetlene.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 15:08:49
Promise vs async - pozor bezne promise.then.then. funguje seriove. Async funguje paralelne, async je tedy spise Promise.all().

Toto neni pravda, async tak napsany jak jsem psal ja, je sekvencni!!!!  async muzete zavolat paralelne a taky to jinak musite napsat.

Doporucim vam knizku You Don't know javascript - nejlepsi knizky o javascriptu, kde jsou tyto veci velmi dobre vysvetlene.

Odporúčam tú knihu miesto odporúčania radšej prečítať. Awaity v async funkcii sú vykonávané jeden po druhom, nie paralelne. Ergo, nie je to náhrada za Promise.all()
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 15:16:27
Ok nevim komu odpovidate ale aby nedoslo k mylce.

1) await bla { - SEKVENCNI!!! (jak jsem psal vyse)
  try{
    async()
    async()
    async()
  }
  catch{
  }
}

2) await bla { - PARALELNI (mnoho lidi tohle nezna a nechape async)
let call1 = work1();
let call2 = work2();
result = [await call1, await call2] (v pripade promisu je tuna zdroju jak volat promisy paralelne)
}
--------

asyncy jsou ve vetsine pripadu seekvencni  (protoze vic casu potrebujete sekvenci a ne paralel ciste prakticky) a pisou se v podstate stejne jako promisy, ergo jen syntax cukr.


Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 15:17:55
a najdete mi pet rozdilu mezi timhle

promise()
.then()
.then()
.catch()

vs

await() {
try {
  async1();
  async2();
}
catch() {
}
}
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 15:23:16
a najdete mi pet rozdilu mezi timhle

promise()
.then()
.then()
.catch()

vs

await() {
try {
  async1();
  async2();
}
catch() {
}
}

Await je operátor, nie funkcia.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 15:25:12
a najdete mi pet rozdilu mezi timhle

promise()
.then()
.then()
.catch()

vs

await() {
try {
  async1();
  async2();
}
catch() {
}
}

Await je operátor, nie funkcia.

prijde vam to jako realny kod? proboha. mluvte k veci.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 15:31:08
a najdete mi pet rozdilu mezi timhle

promise()
.then()
.then()
.catch()

vs

await() {
try {
  async1();
  async2();
}
catch() {
}
}

Await je operátor, nie funkcia.

prijde vam to jako realny kod? proboha. mluvte k veci.

Ak to nie je reálny kód, čo reálne v ňom mám nájsť??
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 15:37:21
takze naposledy.

1) Petra - mnou prezentovany async kod byl SEKVENCNI - na paralelni jak ste chybne psala.

2) Vlado - Await/Async kod nemusi byt JEN sekvencni, muze byt I paralelni (pokud se vam nelibi muj priklad, vygooglete si to)

VLado, specialne pro vas, kdyz nemate cim prispet, uvital bych kdybyste nic nepsal.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 15:58:36
Takže naposledy: si mimo. Promise.all() odpáli promisy paralelne, awaited promises sú spracované sériovo. Ten tvoj kód:

let call1 = work1();
let call2 = work2();
result = [await call1, await call2]

je vadný - najprv sa počká na call1, potom sa spustí call2, nie naraz. Keď už googliš pičoviny na stack overflow, tak sa pozri aj do komentárov daného riešenia, aspoň sa nabudúce nestrápniš poučovaním o tomto, čo neovládaš.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 16:03:40
Malý příklad na použití async / await.
zavolá se 4krát async funkce, která uvnitř přes await dlouho čeká na výsledek výpočtu. V jeden moment ta funkce "běží" 4krát vedle sebe paralelně.

https://jsfiddle.net/t1cm36un/
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 26. 09. 2018, 16:08:31
Malý příklad na použití async / await.
zavolá se 4krát async funkce, která uvnitř přes await dlouho čeká na výsledek výpočtu. V jeden moment ta funkce "běží" 4krát vedle sebe paralelně.

https://jsfiddle.net/t1cm36un/
Neběží paralelně, ale sériově, jen s kooperativním schedulerem.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 16:22:29
Malý příklad na použití async / await.
zavolá se 4krát async funkce, která uvnitř přes await dlouho čeká na výsledek výpočtu. V jeden moment ta funkce "běží" 4krát vedle sebe paralelně.

https://jsfiddle.net/t1cm36un/

To áno, ale ak následne v ďalšej funkcii potrebuješ výsledok všetkých štyroch, tak čo potom? Zistíš, že robíš kokotinu... Alebo mi prepíš nasledovný kód aby bol prehľadnejší, keď si myslíš, že to ide a že to bude stále paralelné:

Kód: [Vybrat]
function asyncFn1 () {
  // implementácia...
}

function asyncFn2 () {
//implementácia...
}

function asyncFn3 () {
//implementácia...
}

function asyncFn4 () {
//implementácia...
}

const parseResult = async promiseArr => {
  let [res1, res2, res3, res4] = await Promise.all(promiseArr)
  // do something with res1, res2, etc...
}

let runParallel = [asyncFn1, asyncFn2, asyncFn3, asyncFn4]
parseResult(runParallel)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 16:25:53
Takže naposledy: si mimo. Promise.all() odpáli promisy paralelne, awaited promises sú spracované sériovo. Ten tvoj kód:

let call1 = work1();
let call2 = work2();
result = [await call1, await call2]

je vadný - najprv sa počká na call1, potom sa spustí call2, nie naraz. Keď už googliš pičoviny na stack overflow, tak sa pozri aj do komentárov daného riešenia, aspoň sa nabudúce nestrápniš poučovaním o tomto, čo neovládaš.

Milý Vlado. Jste speciální. Protože jste speciální, JEN PRO VÁS ve svém volném čase jsem nachystal kód.


async function serial() {

    await new Promise((res, rej) => {setTimeout(()=>{res()}, 1000);})
    await new Promise((res, rej) => {setTimeout(()=>{res()}, 2000);})
    await new Promise((res, rej) => {setTimeout(()=>{res()}, 3000);})
    console.log("done");
  }
 
serial(); run time ~ 6 seconds


async function parallel() {

    let t1 = new Promise((res, rej) => {setTimeout(()=>{res('t1')}, 1000);})
    let t2 = new Promise((res, rej) => {setTimeout(()=>{res('t2')}, 2000);})
    let t3 = new Promise((res, rej) => {setTimeout(()=>{res('t3')}, 3000);})
    console.log([await t1, await t2, await t3]);
  }
 
parallel(); // run time ~ 3 seconds

//Node 10.11+//

Omlouvat se nemusíte. Důležité je, že se nešíří bludné informace.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 26. 09. 2018, 16:29:19
Jak promisy tak v async/await lze spoustet seriove i paralelne. Definujme si nejakou asynchronni funkci:
Kód: [Vybrat]
function fakeFeed(out, timeout) {
  return new Promise((resolve, reject) => {
    setTimeout(() => { console.log(out); resolve(out); }, timeout);
  })
}

async/await serial
Kód: [Vybrat]
async function main() {
  await fakeFeed('feed 1', 400);
  await fakeFeed('feed 2', 200);
}
main().then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
);

async/await paralell
Kód: [Vybrat]
async function main2() {
  const ff1 = fakeFeed('feed 1', 400);
  const ff2 = fakeFeed('feed 2', 200);
  await ff1;
  await ff2;
}
main2().then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
);

promise serial
Kód: [Vybrat]
fakeFeed('feed 1', 400)
  .then(fulfilled => fakeFeed('feed 2', 200))
  .then(fulfilled => console.log('feeds fulfilled'))
  .catch(rejected => console.log('error'))

promise paralell
Kód: [Vybrat]
Promise.all([
  fakeFeed('feed 1', 400),
  fakeFeed('feed 2', 200)
]).then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
)

V pripadne paralelniho spusteni dojde nejdriv "feed 2" az pak "feed 1". V pripade serioveho spousteni dojdou v takovem poradi jak byli volany.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 16:33:13
Boo napsal to totožné co já, jsem rád, že opět se prokázalo, že ti schopní, pilní a zkušení měli pravdu, kterou se nebáli obhájit. jen tak dál.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: kkt1 26. 09. 2018, 16:39:37
Jaka je pravda? Ze js je stejne jako php pouzitelny primarne pro bastleni a lepeni?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 26. 09. 2018, 16:40:54
Jaka je pravda? Ze js je stejne jako php pouzitelny primarne pro bastleni a lepeni?

Ty bys radeji jazyk ktery zadne bastleni a lepeni neumoznuje ? Sem s nim :D
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 26. 09. 2018, 16:43:11
Jak promisy tak v async/await lze spoustet seriove i paralelne. Definujme si nejakou asynchronni funkci:
Kód: [Vybrat]
function fakeFeed(out, timeout) {
  return new Promise((resolve, reject) => {
    setTimeout(() => { console.log(out); resolve(out); }, timeout);
  })
}

async/await serial
Kód: [Vybrat]
async function main() {
  await fakeFeed('feed 1', 400);
  await fakeFeed('feed 2', 200);
}
main().then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
);

async/await paralell
Kód: [Vybrat]
async function main2() {
  const ff1 = fakeFeed('feed 1', 400);
  const ff2 = fakeFeed('feed 2', 200);
  await ff1;
  await ff2;
}
main2().then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
);

promise serial
Kód: [Vybrat]
fakeFeed('feed 1', 400)
  .then(fulfilled => fakeFeed('feed 2', 200))
  .then(fulfilled => console.log('feeds fulfilled'))
  .catch(rejected => console.log('error'))

promise paralell
Kód: [Vybrat]
Promise.all([
  fakeFeed('feed 1', 400),
  fakeFeed('feed 2', 200)
]).then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
)

V pripadne paralelniho spusteni dojde nejdriv "feed 2" az pak "feed 1". V pripade serioveho spousteni dojdou v takovem poradi jak byli volany.
To je jak u blbejch. JS nikdy nic paralelně neprovádí, nanejvýš tak konkurenčně.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 16:46:23
Z hlediska uživatele/kódu je to paralelní dostatečně. Zbytek je věc interní implementace překladače/interpetu.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: nojo_neznamy 26. 09. 2018, 16:47:56
Jak promisy tak v async/await lze spoustet seriove i paralelne. Definujme si nejakou asynchronni funkci:
Kód: [Vybrat]
function fakeFeed(out, timeout) {
  return new Promise((resolve, reject) => {
    setTimeout(() => { console.log(out); resolve(out); }, timeout);
  })
}

async/await serial
Kód: [Vybrat]
async function main() {
  await fakeFeed('feed 1', 400);
  await fakeFeed('feed 2', 200);
}
main().then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
);

async/await paralell
Kód: [Vybrat]
async function main2() {
  const ff1 = fakeFeed('feed 1', 400);
  const ff2 = fakeFeed('feed 2', 200);
  await ff1;
  await ff2;
}
main2().then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
);

promise serial
Kód: [Vybrat]
fakeFeed('feed 1', 400)
  .then(fulfilled => fakeFeed('feed 2', 200))
  .then(fulfilled => console.log('feeds fulfilled'))
  .catch(rejected => console.log('error'))

promise paralell
Kód: [Vybrat]
Promise.all([
  fakeFeed('feed 1', 400),
  fakeFeed('feed 2', 200)
]).then(
  fulfilled => console.log('feeds fulfilled'),
  rejected => console.log('error')
)

V pripadne paralelniho spusteni dojde nejdriv "feed 2" az pak "feed 1". V pripade serioveho spousteni dojdou v takovem poradi jak byli volany.
To je jak u blbejch. JS nikdy nic paralelně neprovádí, nanejvýš tak konkurenčně.
Parallel se v kontextu tehle terminologie vsude v JS pouziva to za prve. Za druhe, zdali tento interface bezi na implementaci neceho co umi vyuzit vice jader/threadu je naprosto bezpredmetne. (napriklad v Nodu pouzivam helper thread bezne pri hashovani hesel, a ten interface je KUPODIVU STEJNY, kdo by to byl cekal).

Musim to napsat znova, jsem velmi zklamany urovni znalosti Computer Science na rootu.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 26. 09. 2018, 16:49:52
To je jak u blbejch. JS nikdy nic paralelně neprovádí, nanejvýš tak konkurenčně.

To je akorat presnejsi terminus technicus. Obzvlast Perl-iste jsou na tohle haklivy :D Jadro OS nebo prinejmensim pipeline u procaku vam to stejne naseka do seriovych front.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 26. 09. 2018, 16:55:00
Musim to napsat znova, jsem velmi zklamany urovni znalosti Computer Science na rootu.

Neznalost je zaklad hejtovani. Kdyby si zdejsi osazenstvo vice osahalo systemd, vim, emacs a javascript tak by diskuze zrejme zely prazdnotou protoze by nebylo na co nadavat ;) Ignorace k nicemu nevede, maximalne pak ignorantum ujde vlak az zjisti, ze JS se kupodivu pouziva vsude i pres jejich hejty.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 26. 09. 2018, 16:55:32
To je jak u blbejch. JS nikdy nic paralelně neprovádí, nanejvýš tak konkurenčně.
To je akorat presnejsi terminus technicus. Obzvlast Perl-iste jsou na tohle haklivy :D Jadro OS nebo prinejmensim pipeline u procaku vam to stejne naseka do seriovych front.
Není. To je něco úplně jiného: https://blog.golang.org/concurrency-is-not-parallelism Takovéto triviviální znalosti by měl mít každý vývojář, co projde prvákem na hnojárně nebo možná i VŠE ;)
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: eee 26. 09. 2018, 16:58:43
Mně se JS koncepčně líbí. Už jsem v něm pár let nic nedělao, tak nevím jak na tom je, ale dříve mě na něm iritovala chudá knihovna funkcí, i těch základních, třeba pro práci s řetězci nebo čísly.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: kkt1 26. 09. 2018, 16:59:48
Jaka je pravda? Ze js je stejne jako php pouzitelny primarne pro bastleni a lepeni?

Ty bys radeji jazyk ktery zadne bastleni a lepeni neumoznuje ? Sem s nim :D

V zasade mas pravdu, ale obvykle bastlici a lepici hledaji nejlehci zpusob pro sve bastleni a lepeni, tudiz sahnou po jazyce ktery jim umozni zakladni funkcionalitu instantne bez nutnosti ucit se.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Boo 26. 09. 2018, 17:05:15
V zasade mas pravdu, ale obvykle bastlici a lepici hledaji nejlehci zpusob pro sve bastleni a lepeni, tudiz sahnou po jazyce ktery jim umozni zakladni funkcionalitu instantne bez nutnosti ucit se.

To uz prilis generalizujes a navic chybne. U webovych technologii tak nejak ani nemas na vyber protoze enginy browseru nativne podporuji pouze JS. Casem ho mozna nahradi Wasm a otazka jazyku bude mene podstatna ale to "casem" bude hodne daleko, tak minimalne 10 let.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 17:07:30
Pre nojo a Boo: pletiete si pojmy a dojmy. Promises vo vašich príkladoch budú stále vďaka await odpálené v sérii, jeden po druhom. To len tie timery vám tam pobežia konkurenčne, vy trubky. Zmeň ff1 na vyššiu hodnotu, napríklad 4000, a ff2 na 1000 a uvedom si, prečo ti aj "feed 2" vypíše až po štyroch sekundách a nie po sekunde. Lebo hovno tam ide paralelne, čaká sa na `await ff1`. A to, že medzi tým skončí ten rýchlejší timer, lebo tie boli naštartované konkurenčne a nie promises, s tým nemá nič spoločné.

Kód: [Vybrat]
async function main2() {
  const ff1 = fakeFeed('feed 1', 4000)
  const ff2 = fakeFeed('feed 2', 200)
  await ff1
  await ff2
}


Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: anonym069 26. 09. 2018, 17:25:02
Citace
Co vám vadí na JavaScriptu v roce 2018?
Že je rok 2018 a ono to pořád ještě žije.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 17:26:47
A nekecáš náhodou?
Vytáhl jsem logování do samostatné funkce a přidal jsem si do výpisu čas od začátku spuštění skriptu:

200ms - feed 2
4000ms - feed 1
feeds fulfilled
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 17:32:56
A nekecáš náhodou?
Vytáhl jsem logování do samostatné funkce a přidal jsem si do výpisu čas od začátku spuštění skriptu:

200ms - feed 2
4000ms - feed 1
feeds fulfilled

Nekecám. Vypísalo ti to všetko naraz po štyroch sekundách. Stále nerozumieš?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 17:37:39
Ne nevypsalo, pusť si tohle a koukej:
https://jsfiddle.net/t1cm36un/
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 17:38:48
Ne nevypsalo, pusť si tohle a koukej:
https://jsfiddle.net/t1cm36un/
Sorry chyba odkazu https://jsfiddle.net/t1cm36un/1/
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Lol Phirae 26. 09. 2018, 17:41:05
...

https://www.youtube.com/watch?v=fEyj-rXJbNw
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 18:32:39
Zdá se, že Vlado pochopil, že se zmýlil a odešel pro radu k Michalovi (viz video). ;D

To je tak, když je člověk moc teoretik a tvrdí věci, které si nevyzkouší.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Vlado 26. 09. 2018, 19:31:30
Zdá se, že Vlado pochopil, že se zmýlil a odešel pro radu k Michalovi (viz video). ;D

To je tak, když je člověk moc teoretik a tvrdí věci, které si nevyzkouší.

Čoby, pozerám film. A ty sa zatiaľ pozri na MDN do dokumentácie na async/await, je tam zvlášť na toto upozornenie.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 26. 09. 2018, 20:52:02
K čemu je mi koukat dokumentace, která neodpovídá realitě?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: vokurky 26. 09. 2018, 23:32:50
Zdá se, že Vlado pochopil, že se zmýlil a odešel pro radu k Michalovi (viz video). ;D

To je tak, když je člověk moc teoretik a tvrdí věci, které si nevyzkouší.

Čoby, pozerám film. A ty sa zatiaľ pozri na MDN do dokumentácie na async/await, je tam zvlášť na toto upozornenie.



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Simple_example

pokud myslite tuhle dokumentaci tak ta odpovida presne tomu co se tvrdilo, pokud vam prijde obvykle v debate vytahovat ten uplne posledni use case ktery je tam nazvan neco jako "truly parallel" tak tenhle use case v 99% procentech webu nikdy nepouzijete, jestli je jadro sporu vo tomhle pripadu, pak s vami bych pracovat nechtel.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: vokurky 26. 09. 2018, 23:36:12
Zdá se, že Vlado pochopil, že se zmýlil a odešel pro radu k Michalovi (viz video). ;D

To je tak, když je člověk moc teoretik a tvrdí věci, které si nevyzkouší.

Čoby, pozerám film. A ty sa zatiaľ pozri na MDN do dokumentácie na async/await, je tam zvlášť na toto upozornenie.



https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Simple_example

pokud myslite tuhle dokumentaci tak ta odpovida presne tomu co se tvrdilo, pokud vam prijde obvykle v debate vytahovat ten uplne posledni use case ktery je tam nazvan neco jako "truly parallel" tak tenhle use case v 99% procentech webu nikdy nepouzijete, jestli je jadro sporu vo tomhle pripadu, pak s vami bych pracovat nechtel.

standardni use casy jsou totiz dva 1) waterfall - volam nekam, prijde odpoved, pouziju ji do druhyho volani
nebo 2) volam nekam, a odpovedi na sobe nejsou zavisly, ale set tech odpovedi nasledne potrebuju cely najednou (to je to cemu se normalne v JS komunite rika parallel, projedte si si clanky pokud to nevite.
Use case 3) ten uplne posledni na MDN, je extremne nepravdepodobny ze ho kdy v beznem kodu budete nuceni pouzivat. bravo pokud delate piruetu na use casu 3, to se jen tak nevidi.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: andy 27. 09. 2018, 09:32:07
Tohle by mě zajímalo - mně se synchronní programování líbí. Připadá mi to značně přehlednější, jednodušší a spravovatelnější než "callback hell". Takže mě překvapuje, že někdo má jiný názor - mohl bys to rozvést?
Možná je to jednodušší a přehlednější, ale má to v časově náročnějších operacích vliv na výkon.
Představ si že máš v browseru jednovláknový synchronně zpracovávnaý skript, který přes ajax získává data/hodnoty z 20 různých zdrojů a zobrazí je v tabulce.
- synchronně: dáš volání do smyčky - zavoláš první, počkáš na výsledek, zobrazíš, zavoláš druhý.... za 20 sekund máš možná výsledek.
- asynchronně: dáš volání také do smyčky - zavoláš první a jen určíš, kdo bude nezávisle na hlavním vlákně čekat na výsledek a zobrazovat ho, zavoláš druhý... pokud bude jedno čekání na výsledek/hodnotu trvet cca sekundu jako v minulém případě, máš komplet hotovo dřív než za 1,5 sekundy 
- Spustím si na každý request thread, který bude napsaný normálně synchronně a na konci posbírám výsledky...?

Citace
callback hell resi prave uz promisy ktere vypadaji "velmi synchronne"
No...a teď ještě dodělat podporu přímo do jazyka, aby promisy nebyly vidět....a máme z toho synchronní programování, kdy mě runtime odstíní od té asynchronní části...

No a já jsem se vyjadřoval k:
Citace
async/await je stejne jen glorifikovany cukr nad promissma ktery se snazi zalibit synchronnim programatorum.
Což mi připadá, že existuje něco jako "asynchronní programátor", který "má rád" asynchronní programování (aka callback hell). Tak se ptám na důvod, protože runtime mi může bez problému (např. syntaktickým cukrem nad promisama) od callback hell odstínit a ve výsledku píšu synchronně - a připadá mi, že to není "jen glorifikovaný cukr", ale přesně to, co výrazně zjednoduší a zpřehlední kód.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 27. 09. 2018, 11:26:32
- Spustím si na každý request thread, který bude napsaný normálně synchronně a na konci posbírám výsledky...?
Čímž popisuješ v zásadě async/await funkcionalitu v JS, což je ale vcelku nová vlastnost jazyka, nic, co by tam bylo třeba 10 let.
A docela by mě zajímalo, jak moc jednoduše si představuješ to "na konci posbírám výsledky", když na každý výsledek čekáš v samostatném threadu, který běží nezávisle na hlavním threadu, který ho spustil.

Prostě se zbytečně snažíš vnucovat synchronní filozofii do jazyka, který pro podobné úlohy preferuje asynchronní řešení.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: andy 27. 09. 2018, 11:54:22
- Spustím si na každý request thread, který bude napsaný normálně synchronně a na konci posbírám výsledky...?
Čímž popisuješ v zásadě async/await funkcionalitu v JS, což je ale vcelku nová vlastnost jazyka, nic, co by tam bylo třeba 10 let.
A docela by mě zajímalo, jak moc jednoduše si představuješ to "na konci posbírám výsledky", když na každý výsledek čekáš v samostatném threadu, který běží nezávisle na hlavním threadu, který ho spustil.
Nějak přethreadováno... vyjadžoval jsem se k tomu příkladu výše, a měl jsem na mysli něco, co je v podstatě ekvivalentní tomu "Promise.all", akorát prostě místo "async" by člověk napsal "forkThread...". Co říkám je, že jazyk, který je ve styku s uživatelem "synchronní", může naprosto bez problémů poskytovat primitiva na to, aby člověk tu výše uvedenou funkcionalitu bez problému implementoval.
Citace
Prostě se zbytečně snažíš vnucovat synchronní filozofii do jazyka, který pro podobné úlohy preferuje asynchronní řešení.
Ne, já se ptám, jak někdo může považovat "async" za lepší než "sync by default". Co ho k tomu vede. Mně připadá callback programování naprosto příšerný paradigma na cokoliv. A vůbec mi nejde o to, jak je to implementovaný uvnitř, ale o to, co píše "uživatel" toho jazyka (naopak, uvnitř to může dávat docela velký smysl).
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 27. 09. 2018, 12:01:04
- Spustím si na každý request thread, který bude napsaný normálně synchronně a na konci posbírám výsledky...?
Čímž popisuješ v zásadě async/await funkcionalitu v JS, což je ale vcelku nová vlastnost jazyka, nic, co by tam bylo třeba 10 let.
A docela by mě zajímalo, jak moc jednoduše si představuješ to "na konci posbírám výsledky", když na každý výsledek čekáš v samostatném threadu, který běží nezávisle na hlavním threadu, který ho spustil.
Nějak přethreadováno... vyjadžoval jsem se k tomu příkladu výše, a měl jsem na mysli něco, co je v podstatě ekvivalentní tomu "Promise.all", akorát prostě místo "async" by člověk napsal "forkThread...". Co říkám je, že jazyk, který je ve styku s uživatelem "synchronní", může naprosto bez problémů poskytovat primitiva na to, aby člověk tu výše uvedenou funkcionalitu bez problému implementoval.
Citace
Prostě se zbytečně snažíš vnucovat synchronní filozofii do jazyka, který pro podobné úlohy preferuje asynchronní řešení.
Ne, já se ptám, jak někdo může považovat "async" za lepší než "sync by default". Co ho k tomu vede. Mně připadá callback programování naprosto příšerný paradigma na cokoliv. A vůbec mi nejde o to, jak je to implementovaný uvnitř, ale o to, co píše "uživatel" toho jazyka (naopak, uvnitř to může dávat docela velký smysl).
Ideální je mít např. toto:
Kód: [Vybrat]
let sock = createSocket(...)
let data = readFromSocket(sock)
processData(sock)
s tím, že readFromSocket je vnitřně asynchronní (NIO), takže scheduler kooperativně přepne na jinou korutinu ("zelené" vlákno), než má k dispozici nějaká data ke čtení. Uživatel je odstíněn od zmatečných awaitů a NIO řeší transparentně knihovna (a runtime).
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: andy 27. 09. 2018, 12:31:23
Ideální je mít např. toto:
Kód: [Vybrat]
let sock = createSocket(...)
let data = readFromSocket(sock)
processData(sock)
s tím, že readFromSocket je vnitřně asynchronní (NIO), takže scheduler kooperativně přepne na jinou korutinu ("zelené" vlákno), než má k dispozici nějaká data ke čtení. Uživatel je odstíněn od zmatečných awaitů a NIO řeší transparentně knihovna (a runtime).
Přesně tak. Takže mě překvapilo, že nějací "asynchronní programátoři" považují zřejmě ty callbacky za lepší řešení ... a snažím se dopídit proč....
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Puff 27. 09. 2018, 13:05:31
Ideální je mít např. toto:
Kód: [Vybrat]
let sock = createSocket(...)
let data = readFromSocket(sock)
processData(sock)
s tím, že readFromSocket je vnitřně asynchronní (NIO), takže scheduler kooperativně přepne na jinou korutinu ("zelené" vlákno), než má k dispozici nějaká data ke čtení. Uživatel je odstíněn od zmatečných awaitů a NIO řeší transparentně knihovna (a runtime).
Přesně tak. Takže mě překvapilo, že nějací "asynchronní programátoři" považují zřejmě ty callbacky za lepší řešení ... a snažím se dopídit proč....
To je jak s placatozemcema, ti taky věří neskutečné kravině a nemá smysl pídit se po důvodu. Jejich nejlepším "argumentem" je "We have supporters all around the globe"...
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Mlocik97m 27. 09. 2018, 17:32:19
Ja JS považujem za jeden z najlepšich jazykov popri jazykoch ako sú Scala, či Go
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: agent 27. 09. 2018, 18:09:52
Přesně tak. Takže mě překvapilo, že nějací "asynchronní programátoři" považují zřejmě ty callbacky za lepší řešení ... a snažím se dopídit proč....
To je jen o zvyku.
Lopata se snaží vše (JS, TSQL, Powershell,...) přepsat jako sekvenci synchronních operací, protože to zná, to se kdysi naučil, programátor se snaží pochopit princip jazyka, obejít jeho nedostatky a využít jeho výhody.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: andy 27. 09. 2018, 18:30:08
Přesně tak. Takže mě překvapilo, že nějací "asynchronní programátoři" považují zřejmě ty callbacky za lepší řešení ... a snažím se dopídit proč....
To je jen o zvyku.
Lopata se snaží vše (JS, TSQL, Powershell,...) přepsat jako sekvenci synchronních operací, protože to zná, to se kdysi naučil, programátor se snaží pochopit princip jazyka, obejít jeho nedostatky a využít jeho výhody.
Ten thread se jmenuje "Co vám vadí na JS 2018" - tak mě třeba vadí tohle. A ptám se tady, jestli by mi někdo vysvětlil, proč by někdo preferoval "callback hell" před tím, co psal Puff - protože se tady někdo vyjadřoval hrdě o tom, že async/await, které tím směrem míří, jen jen "glorifikovaný cukr pro synchroníí programátory" A místo odpovědi se dozvím něco o lopatách....? Mně by fakt zajímala odpověď a ne hrdé chvástání, jak je někdo geniální, že se dokáže v těch callbacích neztratit.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: tralala 27. 09. 2018, 18:39:51
Vlado ty uz nepis nikam nic :D
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Kit 27. 09. 2018, 18:44:34
Ja JS považujem za jeden z najlepšich jazykov popri jazykoch ako sú Scala, či Go

Zkus i Lisp, možná budeš příjemně překvapen.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Hmmm 28. 09. 2018, 08:31:02
Přesně tak. Takže mě překvapilo, že nějací "asynchronní programátoři" považují zřejmě ty callbacky za lepší řešení ... a snažím se dopídit proč....
To je jen o zvyku.
Lopata se snaží vše (JS, TSQL, Powershell,...) přepsat jako sekvenci synchronních operací, protože to zná, to se kdysi naučil, programátor se snaží pochopit princip jazyka, obejít jeho nedostatky a využít jeho výhody.
Ten thread se jmenuje "Co vám vadí na JS 2018" - tak mě třeba vadí tohle. A ptám se tady, jestli by mi někdo vysvětlil, proč by někdo preferoval "callback hell" před tím, co psal Puff - protože se tady někdo vyjadřoval hrdě o tom, že async/await, které tím směrem míří, jen jen "glorifikovaný cukr pro synchroníí programátory" A místo odpovědi se dozvím něco o lopatách....? Mně by fakt zajímala odpověď a ne hrdé chvástání, jak je někdo geniální, že se dokáže v těch callbacích neztratit.
Tiez tomu trochu nerozumiem. Myslel som, ze je jasne, ze callback hell je uz minulost, pretoze tu mame prinajmensom Promises, ktore to cele zprehladnuju. A potom async/await, ktory... no neviem, este som ho velmi nemal sancu pouzit, ale na prvy pohlad mi pripada ako syntax sugar nad Promises.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Ffff 28. 09. 2018, 10:42:21
Bylo by velmi smutne, kdyby se tento jazyk navrzeny za 10 dni rozsiril mimo browsery.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: tuz 28. 09. 2018, 11:36:20
Bylo by velmi smutne, kdyby se tento jazyk navrzeny za 10 dni rozsiril mimo browsery.

V tom pripade by jsi mel smutit uz tak 5-6 let protoze se uz rozsiril. JS je naprosto v pohode a skvely jazyk, akorat mu spatne jmeno delaji prasata co maji dojem, ze umi kodit. Ale to plati obecne pro kazdy jazyk, akorat JS je pro mnoho lidi tim prvnim jazykem.
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Scripter 28. 09. 2018, 12:12:33
Bylo by velmi smutne, kdyby se tento jazyk navrzeny za 10 dni rozsiril mimo browsery.
V tom pripade by jsi mel smutit uz tak 5-6 let protoze se uz rozsiril. JS je naprosto v pohode a skvely jazyk, akorat mu spatne jmeno delaji prasata co maji dojem, ze umi kodit. Ale to plati obecne pro kazdy jazyk, akorat JS je pro mnoho lidi tim prvnim jazykem.
Potká kravinec javascript a říká: “Co ty jseš zač?” “Já jsem programovací jazyk.” Kravinec dostane záchvat smíchu a odvětví: “Jestli ty jseš programovací jazyk, tak já jsem pizza.”
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: oss 28. 09. 2018, 14:05:21
Ale ten jazyk priamo podporuje ludi k tomu aby kodili ako prasata. Vidiet to aj v standrdnom api, kde cast veci vracia promisy, druha cast pouziva callbaky, tretia registraciu na udalosti.
Potom sa to okodi kniznicami, ale zas kazda je ina a nepsauje to...
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Archie 28. 09. 2018, 21:52:49
Pripada mi, jakoby tu vetsina pisatelu nepracovala na webovy aplikaci po roce 2010.

Je mi to jasne. Spring/ASP.NET kod plny OOP abstrakci, data plnena do Freemarker/Razor sablon a na klientu jQuery pro nejaky ten onClick efekt a k tomu poradne REST api. Pozadavky klientu a standard toho jak vypada a jak reaguje na uzivatele webova apka je trosku jinde.

Ale samozrejme, vetsiny uzivatelu Root fora se to netyka, ti programuji skutecne aplikace - zbrojni systemy jadernych ponorek v Rust ci mobilni apky v Pascalu. Jen idioti v Netflixu, kupa stipendijnich cinanu ze Stanfordu ve Facebooku, Instagramu ci DropBoxu vubec netusi, jakou zrudnost v rukou maji. Kdyby to tusili, ihned by pocali odstranovat ty sve typescripty, reacty, ramdy, graphql, apolla, flowy a dalsi zrudnosti toho podleho ekosystemu a pekne po staru posilali velike json stromecky na sve sedesatiparametrove RESTy..
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: Inkvizitor 28. 09. 2018, 22:43:51
Pripada mi, jakoby tu vetsina pisatelu nepracovala na webovy aplikaci po roce 2010.

Je mi to jasne. Spring/ASP.NET kod plny OOP abstrakci, data plnena do Freemarker/Razor sablon a na klientu jQuery pro nejaky ten onClick efekt a k tomu poradne REST api. Pozadavky klientu a standard toho jak vypada a jak reaguje na uzivatele webova apka je trosku jinde.

Ale samozrejme, vetsiny uzivatelu Root fora se to netyka, ti programuji skutecne aplikace - zbrojni systemy jadernych ponorek v Rust ci mobilni apky v Pascalu. Jen idioti v Netflixu, kupa stipendijnich cinanu ze Stanfordu ve Facebooku, Instagramu ci DropBoxu vubec netusi, jakou zrudnost v rukou maji. Kdyby to tusili, ihned by pocali odstranovat ty sve typescripty, reacty, ramdy, graphql, apolla, flowy a dalsi zrudnosti toho podleho ekosystemu a pekne po staru posilali velike json stromecky na sve sedesatiparametrove RESTy..

Co hulíš?
Název: Re:Co vám vadí na JavaScriptu v roce 2018?
Přispěvatel: aaa 29. 09. 2018, 06:25:53
Citace
Potká kravinec javascript a říká: “Co ty jseš zač?” “Já jsem programovací jazyk.” Kravinec dostane záchvat smíchu a odvětví: “Jestli ty jseš programovací jazyk, tak já jsem pizza.”

Až to po tobě za pár let budou všude chtít, tak jim místo toho můžeš aspoň říct super fór. Kdyby je to nepobavilo, tak můžeš přidat něco o lopatách.