Problémy s JavaScript v praxi

Re:Problémy s JavaScript v praxi
« Odpověď #210 kdy: 04. 10. 2018, 10:08:43 »
Python je o notny kus lepší než JS, každý se nacházi na opačném konci spektra. Python má jeden z nejepších návrhů (a platí za to už třetí nekompatibální verzí), kdežto javascript má jedn z znejhorších návrhů.
Tak když to říkáš :-)
Python by nebyl tak špatný, kdyby byl staticky typovaný.
Tohle je na úrovni tvrzení, že všechny dynamicky typované jazyky jsou špatné z důvodu dynamického typování. A to je nesmysl. Zrovna tak je nesmysl odsoudit všechny slabě typované jazyky, kam patří i Javascript, za to, že mají slabé typy. Ale ty slabé typy se dají implementovat dobře a nebo špatně a JS je má implementované špatně. PHP má také slabé typy a implementuje je mnohem lépe než JS, ale zase má jiné problémy, řakže nechci, aby to vyznělo tak, žebho dávám za vzor dobrého jazyka. Ani Python není bez chyb a na všem se dá něco vyšťourat, ale imho z rozšířených a hodně používaných jazyků je nejhorší JS, který těží z toho, že má monopooni postavení ve webových prohlížečích. Všude jinde, kde má konkurenci, má marginální postavení.
Dynamicky typovane jazyky, nie su zle pretoze by boli dynymicky typovane, su len prosto nevhodne na cokolvek vetsie ako 100-200 riadkov. Potom zacnu prinasat len problemy.
Áno, ale problémy robia len idiotom. Iný v dynamicky typovaných jazykoch urobia radšej Facebook a sú za vodou.
Idiot je člověk nezvládající psát správně v rodném jazyce. Pořiď si aspoň nějaký slušný Upper Hungarian checker ;)

Idiot si ty. Vyslovený. Nepoučuj o preklepoch a daj si odchod blbeček.  Okrem hejtovania a bezdôvodného napádania sem nič zmysluplného nepíšeš.


Hmmm

Re:Problémy s JavaScript v praxi
« Odpověď #211 kdy: 04. 10. 2018, 10:22:38 »
Python je o notny kus lepší než JS, každý se nacházi na opačném konci spektra. Python má jeden z nejepších návrhů (a platí za to už třetí nekompatibální verzí), kdežto javascript má jedn z znejhorších návrhů.
Tak když to říkáš :-)
Python by nebyl tak špatný, kdyby byl staticky typovaný.
Tohle je na úrovni tvrzení, že všechny dynamicky typované jazyky jsou špatné z důvodu dynamického typování. A to je nesmysl. Zrovna tak je nesmysl odsoudit všechny slabě typované jazyky, kam patří i Javascript, za to, že mají slabé typy. Ale ty slabé typy se dají implementovat dobře a nebo špatně a JS je má implementované špatně. PHP má také slabé typy a implementuje je mnohem lépe než JS, ale zase má jiné problémy, řakže nechci, aby to vyznělo tak, žebho dávám za vzor dobrého jazyka. Ani Python není bez chyb a na všem se dá něco vyšťourat, ale imho z rozšířených a hodně používaných jazyků je nejhorší JS, který těží z toho, že má monopooni postavení ve webových prohlížečích. Všude jinde, kde má konkurenci, má marginální postavení.
Dynamicky typovane jazyky, nie su zle pretoze by boli dynymicky typovane, su len prosto nevhodne na cokolvek vetsie ako 100-200 riadkov. Potom zacnu prinasat len problemy.
Boze, to je nezmysel. Samozrejme, ak pises ako prasa, tak ti to prinesie problemy.
Ale v PRAXI, o tom tato tema je, sa ti nestane, ze budes s niecim pracovat v 100 - 200 riadkoch, pretoze vsetko rozbijas na mensie casti a tie na mensie a tak dalej, kde ti uz z principu nehrozi, ze sa ti zacnu krizit typy alebo, ze ti zacne hrozit nekonzistencia (ano, schvalne som tu redundanciu pouzil).

Za tie roky sa mi naozaj nestalo, ze by JS vzal nieco a nespravne si to pretypoval. A ak uz ma niekto z toho taky velky strach, tak pouzije Typescript.

Ale pokial pises ako prasa, tak samozrejme, budes mat problemy.

kozel

Re:Problémy s JavaScript v praxi
« Odpověď #212 kdy: 04. 10. 2018, 10:33:06 »
Ked su dane veci v promennych tak  ty ako programator netusis ci sa bude scitavat alebo concatovat, o to ide.

Vazne? tak to pak nejsi programator.

Pep

Re:Problémy s JavaScript v praxi
« Odpověď #213 kdy: 04. 10. 2018, 10:34:08 »
Citace
Ne, že bych s tím obecně nesouhlasil. Ale co se má stát když:
Kód: [Vybrat]
1 + "1"? Taky výjimka?
ano, zde vyjimka ScitaniJablekHrusekException
Jenze kdyz je jeden z operandu string tak + neni scitani ale concat. Ale to zabednencum nevysvetlis, budou pindat, ze to ma hazet exception :D
Zjistit si nejdřív, co je concat, než tu ze sebe budeš dělat debila.

annn

Re:Problémy s JavaScript v praxi
« Odpověď #214 kdy: 04. 10. 2018, 10:51:19 »
Ked su dane veci v promennych tak  ty ako programator netusis ci sa bude scitavat alebo concatovat, o to ide.
Pokud jsi autorem toho kódu, tak bys to tušit měl.
Nebo jsi jeden z těch lepičů, co skládají kód ze zkopírovaných fragmentů, kterým nerozumí?
Když ten kód vidím po roce, co jsem to napsal, tak fakt netuším, co to dělá. Navíc pokud je ten kód volany "odněkud", tak evidentně se chování toho kódu liší dost výrazně podle toho, jak byl zavolán. No a "1" + 1 v drtivé většině případů je něco, co programátor _nechtěl_, tak je docela fajn, pokud to slítne rovnou při kompilaci, nebo aspoň při runtimu _vždycky_ a ne, že pak člověk hledá, proč mu z toho padaj jiný výsledky.


andy

Re:Problémy s JavaScript v praxi
« Odpověď #215 kdy: 04. 10. 2018, 10:58:42 »
Ked su dane veci v promennych tak  ty ako programator netusis ci sa bude scitavat alebo concatovat, o to ide.

Vazne? tak to pak nejsi programator.
Mělo by to být v tagu [sarcasm] nebo je to míněno vážně?  ???

Re:Problémy s JavaScript v praxi
« Odpověď #216 kdy: 04. 10. 2018, 11:00:25 »
Citace
Ne, že bych s tím obecně nesouhlasil. Ale co se má stát když:
Kód: [Vybrat]
1 + "1"? Taky výjimka?
ano, zde vyjimka ScitaniJablekHrusekException

Jenze kdyz je jeden z operandu string tak + neni scitani ale concat. Ale to zabednencum nevysvetlis, budou pindat, ze to ma hazet exception :D

Ked su dane veci v promennych tak  ty ako programator netusis ci sa bude scitavat alebo concatovat, o to ide.

Ale tušíš. Jednak si můžeš zjistit, co uvnitř je, druhak je úplně jedno, jak typovaný máš jazyk, ale imho by měl programátor vědět, co má kde v programu. A ano, víš, jak se to + bude chovat, protože existuje něco jako specifikace, kterou tady někteří pohrdají (chtěl bych třeba eee vidět v Céčku).

andy

Re:Problémy s JavaScript v praxi
« Odpověď #217 kdy: 04. 10. 2018, 11:03:09 »
Ale tušíš. Jednak si můžeš zjistit, co uvnitř je, druhak je úplně jedno, jak typovaný máš jazyk, ale imho by měl programátor vědět, co má kde v programu. A ano, víš, jak se to + bude chovat, protože existuje něco jako specifikace, kterou tady někteří pohrdají (chtěl bych třeba eee vidět v Céčku).
Já mám pořád pocit, že jsem se špatně vyspal a nepoznám vtip... fakt to myslíte vážně?
Kód: [Vybrat]
function f(a,b) {
  return a + b;
}
Bude to concatovat, nebo sčítat, nebo přetypovávat a konkatovat?

Re:Problémy s JavaScript v praxi
« Odpověď #218 kdy: 04. 10. 2018, 11:03:27 »
Z některých příspěvků tady mám celkem strach... to jako staticky typovaný systém někteří používají proto, aby mohli psát jako prasata?

Re:Problémy s JavaScript v praxi
« Odpověď #219 kdy: 04. 10. 2018, 11:05:54 »
Ale tušíš. Jednak si můžeš zjistit, co uvnitř je, druhak je úplně jedno, jak typovaný máš jazyk, ale imho by měl programátor vědět, co má kde v programu. A ano, víš, jak se to + bude chovat, protože existuje něco jako specifikace, kterou tady někteří pohrdají (chtěl bych třeba eee vidět v Céčku).
Já mám pořád pocit, že jsem se špatně vyspal a nepoznám vtip... fakt to myslíte vážně?
Kód: [Vybrat]
function f(a,b) {
  return a + b;
}
Bude to concatovat, nebo sčítat, nebo přetypovávat a konkatovat?

A takhle normálně programuješ v dynamicky typovaných jazycích? Já mám zato, že je fajn si hlídat, co kam předávám. Uživatelský vstup člověk ošetří, zbytek programu mám 100% pod kontrolou. Čili vím, CO té funkci dávám -> vím, co to udělá.

kozel

Re:Problémy s JavaScript v praxi
« Odpověď #220 kdy: 04. 10. 2018, 11:07:30 »
Zjistit si nejdřív, co je concat, než tu ze sebe budeš dělat debila.

No zatim to vypada, ze ten titul sedi spise na tebe.
Kód: [Vybrat]
"a".concat("b")
// "ab"
"a" + "b"
// "ab"

andy

Re:Problémy s JavaScript v praxi
« Odpověď #221 kdy: 04. 10. 2018, 11:10:05 »
Ale tušíš. Jednak si můžeš zjistit, co uvnitř je, druhak je úplně jedno, jak typovaný máš jazyk, ale imho by měl programátor vědět, co má kde v programu. A ano, víš, jak se to + bude chovat, protože existuje něco jako specifikace, kterou tady někteří pohrdají (chtěl bych třeba eee vidět v Céčku).
Já mám pořád pocit, že jsem se špatně vyspal a nepoznám vtip... fakt to myslíte vážně?
Kód: [Vybrat]
function f(a,b) {
  return a + b;
}
Bude to concatovat, nebo sčítat, nebo přetypovávat a konkatovat?
A takhle normálně programuješ v dynamicky typovaných jazycích?
Teď nerozumím... jak by ta výše uvedená funkce měla vypadat v dynamickém jazyku?

Citace
Já mám zato, že je fajn si hlídat, co kam předávám.
Aha...takže nejen, že se musím zabývat tím, že tu funkci napíšu a odladím, ale ještě ke všemu vlastně k tomu pochopení co ta funkce dělá (a má dělat) musím zkontrolovat, kde všude je volaná.... v pythonu to aspoň zbuchne, když to tím proběhne, ne že to vrátí "něco".

Citace
Uživatelský vstup člověk ošetří, zbytek programu mám 100% pod kontrolou. Čili vím, CO té funkci dávám -> vím, co to udělá.
Super pro větší projekty, nedejbože když tam je víc lidí...

kozel

Re:Problémy s JavaScript v praxi
« Odpověď #222 kdy: 04. 10. 2018, 11:18:54 »
Citace
Uživatelský vstup člověk ošetří, zbytek programu mám 100% pod kontrolou. Čili vím, CO té funkci dávám -> vím, co to udělá.
Super pro větší projekty, nedejbože když tam je víc lidí...

Od toho je codereview. Ani nepocitam kolik krat jsem rejectnul pull request za slendriansky kod juniora nebo borce ex C/Java co si mysli ze umi javascript a nadela prasarny.

andy

Re:Problémy s JavaScript v praxi
« Odpověď #223 kdy: 04. 10. 2018, 11:28:29 »
Citace
Uživatelský vstup člověk ošetří, zbytek programu mám 100% pod kontrolou. Čili vím, CO té funkci dávám -> vím, co to udělá.
Super pro větší projekty, nedejbože když tam je víc lidí...

Od toho je codereview. Ani nepocitam kolik krat jsem rejectnul pull request za slendriansky kod juniora nebo borce ex C/Java co si mysli ze umi javascript a nadela prasarny.
Mně nějak není jasné, co tím chcete říct.

Jazyk X (např. C) - 1 + "1" není validní kód, slítne to už při překladu
Jazyk Y (např. Python) - 1 + "1" nebude fungovat, slítne to při runtimu
Jazyk Z (např. JS) - 1 + "1" je prasárna, neslítne to, jen to snadno vrátí něco, co programátor nechtěl

Ono samozřejmě tyhle vlastnosti s sebou nesou i nějaké "náklady", ale mně připadá, že se snažíš říct - to vlastně není problém, že v tom jazyce tyhle prasárny normálně projdou, od čeho máme code review.... nebylo by výrazně lepší, kdyby tyhle věci vůbec nefungovaly (ideálně při překladu, ale tak aspoň při runtimu, aby ten kód vůbec nemohl projít unit testama), takže by se pak při code review nemusely řešit?

aaa

Re:Problémy s JavaScript v praxi
« Odpověď #224 kdy: 04. 10. 2018, 11:30:58 »
Citace
Z některých příspěvků tady mám celkem strach... to jako staticky typovaný systém někteří používají proto, aby mohli psát jako prasata?

Spoustě programátorů jednoduše nedochází(kromě jiného), že v dynamicky typovaných jazycích je ta kontrola z velké části na nich. JS má jako každý jazyk i slabší místa, ale není možné brát jako chybu, že v něm nejde psát na chlup stejně jako v Javě. To je jak když někdo mluví anglicky s českým slovosledem - jde to, ale pro angličany bude za debila.