Problémy s JavaScript v praxi

misch

Re:Problémy s JavaScript v PRAXI
« Odpověď #15 kdy: 26. 09. 2018, 21:27:00 »
https://wtfjs.com/
:o Díky moc! Tohle by mělo ukončit všechny debaty...
Nevím, jestli zrovna https://wtfjs.com/wtfs/2014-01-29-regular-expression-and-slash (autorova totální obecná neznalost regexpů, a nesmyslný předpoklad že by /[A-z]/ mělo matchnout jen písmena), nebo https://wtfjs.com/wtfs/2014-10-07-true-equals-false (překvapení, že !!"string" je true, ať už jde o !!"Ne", !!"true" nebo !!"false") jsou zrovna ukázky chybně navrženého jazyka ...


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Problémy s JavaScript v PRAXI
« Odpověď #16 kdy: 26. 09. 2018, 21:28:12 »
1. monkey patching. Nevidím problém v možnosti přidat nějakou metodu jako takové. Ale v tom, že bez varování mohu přepisovat existující, to mi přijde nešikovné.
2. jazyk je to strašně ukecanej, na to, že toho zase tolik neumí
3. žádná podpora pro zapouzdření. Zapouzdřenost ala Python by mi stačila.
4. nejednotnost - třeba jazyk Lua má pro "nic" jen jednu hodnotu. A můžeš na ni normálně "šahat", chybu ti vyhodí tepreve nil of nil. Javascript má undefined, null, '', 0, false. Vytváření objektu jde taky dělat na několik způsobů, včetně pravěkého "new".
5. absence foreach mě furt nutila přecházet do transpilerů
6. má typy ale nemá statické typování - prvé bez druhého podle mého nemá vůbec žádný smysl. Buď ať je to dynamický jazyk bez typů (příklad Lua, Erlang), nebo staticky typovaný.

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #17 kdy: 26. 09. 2018, 21:32:12 »
Uz umi js formatovani retezcu a cisel?
ne, ale řetězec a číslo je v javascriptu totéž:
"111" == 111; -> true
:-)

Nie, nie je. Typeof "111" je reťazec, typeof 111 je číslo. A že nevieš, sa pri porovnaní nekompatibilných typov najprv vykoná implicit coercion, je tvoja neznalosť, nie problém s JS.

Kolemjdouci

Re:Problémy s JavaScript v PRAXI
« Odpověď #18 kdy: 26. 09. 2018, 21:39:19 »
Uz umi js formatovani retezcu a cisel?
ne, ale řetězec a číslo je v javascriptu totéž:
"111" == 111; -> true
:-)

Nie, nie je. Typeof "111" je reťazec, typeof 111 je číslo. A že nevieš, sa pri porovnaní nekompatibilných typov najprv vykoná implicit coercion, je tvoja neznalosť, nie problém s JS.

Ale kazdej takovej jazyk je pak nebezpecnej svetu, protoze se realne *NEDA* otestovat, jak to bude spolehlive. Leda mit na kazdem tretim radku force typu :) To plati i pro PHP (== vs ===). Nesouhlasim, ze to je o 'nevim'. Je, dle meho, zasadni problem. Nechtel bych, aby muj zivot (treba nekde v aute :) zavisel na tom, jestli se nahodou neco (ne)povede. Z meho pohledu: to co selze pokazdy je o 10 radu lepsi, nez to co selze 'nekdy'. Treba kvuly zapomenutymu testu na '.' nekde kdesi naprosto jinde v kodu (a je z toho hnedle float)

Kolemjdouci

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #19 kdy: 26. 09. 2018, 21:39:26 »
https://wtfjs.com/
:o Díky moc! Tohle by mělo ukončit všechny debaty...
Nevím, jestli zrovna https://wtfjs.com/wtfs/2014-01-29-regular-expression-and-slash (autorova totální obecná neznalost regexpů, a nesmyslný předpoklad že by /[A-z]/ mělo matchnout jen písmena), nebo https://wtfjs.com/wtfs/2014-10-07-true-equals-false (překvapení, že !!"string" je true, ať už jde o !!"Ne", !!"true" nebo !!"false") jsou zrovna ukázky chybně navrženého jazyka ...

Dík, ale opakujem: hľadám len problémy z praxe. Problémy pri tvorbe web aplikácií, kde niekto narazil na reálny problém s JS. A nie ďalšie "akademické" debaty o ideálnom jazyku / syntaxe. Wtfjs je pre blbečkov - kto JS ovláda, s "chybami" tam uvedenými ráta.


L.

Re:Problémy s JavaScript v PRAXI
« Odpověď #20 kdy: 26. 09. 2018, 21:40:13 »
To nie je problém, to je feature.

Aha, takže jsi opravdu troll. Tak nic.

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #21 kdy: 26. 09. 2018, 21:43:18 »
Uz umi js formatovani retezcu a cisel?
ne, ale řetězec a číslo je v javascriptu totéž:
"111" == 111; -> true
:-)

Nie, nie je. Typeof "111" je reťazec, typeof 111 je číslo. A že nevieš, sa pri porovnaní nekompatibilných typov najprv vykoná implicit coercion, je tvoja neznalosť, nie problém s JS.

Ale kazdej takovej jazyk je pak nebezpecnej svetu, protoze se realne *NEDA* otestovat, jak to bude spolehlive. Leda mit na kazdem tretim radku force typu :) To plati i pro PHP (== vs ===). Nesouhlasim, ze to je o 'nevim'. Je, dle meho, zasadni problem. Nechtel bych, aby muj zivot (treba nekde v aute :) zavisel na tom, jestli se nahodou neco (ne)povede. Z meho pohledu: to co selze pokazdy je o 10 radu lepsi, nez to co selze 'nekdy'. Treba kvuly zapomenutymu testu na '.' nekde kdesi naprosto jinde v kodu (a je z toho hnedle float)

Kolemjdouci

Len nevieš o čom hovoríš a tvoj scenár z dynamicky typovaných jazykov vôbec automaticky nevyplýva.

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #22 kdy: 26. 09. 2018, 21:55:08 »
1. monkey patching. Nevidím problém v možnosti přidat nějakou metodu jako takové. Ale v tom, že bez varování mohu přepisovat existující, to mi přijde nešikovné.
2. jazyk je to strašně ukecanej, na to, že toho zase tolik neumí
3. žádná podpora pro zapouzdření. Zapouzdřenost ala Python by mi stačila.
4. nejednotnost - třeba jazyk Lua má pro "nic" jen jednu hodnotu. A můžeš na ni normálně "šahat", chybu ti vyhodí tepreve nil of nil. Javascript má undefined, null, '', 0, false. Vytváření objektu jde taky dělat na několik způsobů, včetně pravěkého "new".
5. absence foreach mě furt nutila přecházet do transpilerů
6. má typy ale nemá statické typování - prvé bez druhého podle mého nemá vůbec žádný smysl. Buď ať je to dynamický jazyk bez typů (příklad Lua, Erlang), nebo staticky typovaný.

1. Ide to. Object.defineProperty()
2. Nepodstatné
3. Isteže nemá, je postavený na inom princípe, zrovnávaš hrušky s jablkami.
4. Nepodstatné, stačí vedieť čo robíš.
5. Má foreach.
6. Len tvoj názor. Ide použiť tak ako je, to nie je praktický problém.

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #23 kdy: 26. 09. 2018, 21:58:29 »
To nie je problém, to je feature.

Aha, takže jsi opravdu troll. Tak nic.

Alebo len nemám trpezlivosť s mudrlantov, čo sa vyjadrujú o veciach o ktorých nič nevedia... Ešte raz: toto má byť o problémoch z praxe, nie o pseudointelektuálnych žvástoch ako je tu zvykom. Ak robíš aktívne v JS na konkrétnom projekte a máš kvôli JS konkrétny problém, píš. Inak mlč.

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #24 kdy: 26. 09. 2018, 22:02:25 »
Dve stránky kecov a ani jeden praktický problém. Len samá teória, mudrovanie, porovnávanie, ale skutočný problém ANI JEDEN???

Sajfi

Re:Problémy s JavaScript v PRAXI
« Odpověď #25 kdy: 26. 09. 2018, 22:06:29 »
Uz umi js formatovani retezcu a cisel?
ne, ale řetězec a číslo je v javascriptu totéž:
"111" == 111; -> true
:-)

Nie, nie je. Typeof "111" je reťazec, typeof 111 je číslo. A že nevieš, sa pri porovnaní nekompatibilných typov najprv vykoná implicit coercion, je tvoja neznalosť, nie problém s JS.

Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad. A jestli chceš reálný problém, tak zrovna dnes jsme s frontenďákem zkoušeli propojit co dělal on s naším backendem. Jemu to házelo 500, přitom stejný JSON poslaný přes curl vracel přesně co měl. Nakomec se ukázalo, že z JavaScriptu sice šel content-type application/json, v post datech byl JSON, ale ten byl ještě zabalený do řetězce. Takže přesně takové chyby pak tyto "featury" způsobují, v JavaScriptu to v unit testech funguje, ale okolní svět očekává JSON Object, ne String. Nebo má snad okolní svět ty post data parsovat přes json dvakrát?

balki

Re:Problémy s JavaScript v PRAXI
« Odpověď #26 kdy: 26. 09. 2018, 22:09:00 »
Dve stránky kecov a ani jeden praktický problém. Len samá teória, mudrovanie, porovnávanie, ale skutočný problém ANI JEDEN???

Myslim, ze ziadne nie su. Je to velmi profesionalny a bezproblemovy jazyk. Povrava sa, ze NASA do neho prepise svoje riadiace systemy.

Puff

Re:Problémy s JavaScript v PRAXI
« Odpověď #27 kdy: 26. 09. 2018, 22:09:58 »
Dve stránky kecov a ani jeden praktický problém. Len samá teória, mudrovanie, porovnávanie, ale skutočný problém ANI JEDEN???
Myslim, ze ziadne nie su. Je to velmi profesionalny a bezproblemovy jazyk. Povrava sa, ze NASA do neho prepise svoje riadiace systemy.
Ano, řídí se příkladem Slovenské vesmírné agentury.

Vlado

Re:Problémy s JavaScript v PRAXI
« Odpověď #28 kdy: 26. 09. 2018, 22:12:22 »
Uz umi js formatovani retezcu a cisel?
ne, ale řetězec a číslo je v javascriptu totéž:
"111" == 111; -> true
:-)

Nie, nie je. Typeof "111" je reťazec, typeof 111 je číslo. A že nevieš, sa pri porovnaní nekompatibilných typov najprv vykoná implicit coercion, je tvoja neznalosť, nie problém s JS.

Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad. A jestli chceš reálný problém, tak zrovna dnes jsme s frontenďákem zkoušeli propojit co dělal on s naším backendem. Jemu to házelo 500, přitom stejný JSON poslaný přes curl vracel přesně co měl. Nakomec se ukázalo, že z JavaScriptu sice šel content-type application/json, v post datech byl JSON, ale ten byl ještě zabalený do řetězce. Takže přesně takové chyby pak tyto "featury" způsobují, v JavaScriptu to v unit testech funguje, ale okolní svět očekává JSON Object, ne String. Nebo má snad okolní svět ty post data parsovat přes json dvakrát?

O čom to hovoríš? Ako "dvakrát"? Prijatý JSON je VŽDY a VŠADE string.

Honza

Re:Problémy s JavaScript v PRAXI
« Odpověď #29 kdy: 26. 09. 2018, 22:12:58 »
Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad.

Přesně tak, to si také myslím. Jinak tenhle argument, že "je to přece v dokumentaci", ten se tu bohužel objevuje docela dost často.