Problémy s JavaScript v praxi

Re:Problémy s JavaScript v praxi
« Odpověď #180 kdy: 03. 10. 2018, 17:36:14 »
Kdyz uz chcete plamennou valku na spatne navrzeny jazyk tak vam poradim treba Perl. Ten vam pripravi tolik dafuq momentu, ze JS zacnete milovat vecnou a nehybouci laskou..
<ironie>To říkají jen ti, co si nepřečetli nebo nepochopili jeho dokumentaci!</ironie>

Argumentovat věcně je moc mentálně náročné, viď? Překrucovat je očividně snazší :)


eee

Re:Problémy s JavaScript v praxi
« Odpověď #181 kdy: 03. 10. 2018, 17:43:05 »
Kdyz uz chcete plamennou valku na spatne navrzeny jazyk tak vam poradim treba Perl. Ten vam pripravi tolik dafuq momentu, ze JS zacnete milovat vecnou a nehybouci laskou..
<ironie>To říkají jen ti, co si nepřečetli nebo nepochopili jeho dokumentaci!</ironie>

Argumentovat věcně je moc mentálně náročné, viď? Překrucovat je očividně snazší :)
To je parodie na uplne stejnou obhajobu prasaren v JS. Dotycni to ale na rozdil ode mne mysleli vazne :-).

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Problémy s JavaScript v praxi
« Odpověď #182 kdy: 03. 10. 2018, 19:21:54 »
Mimochodem, víte že v JS se může vyhodnocení změnit z true na false, když k jedné straně přičtete nulu?
Co by podle tebe mělo být správným výsledkem {}+0 ?
Výjimka.

To mě také napadlo. Jenže jak tu už někdo psal, filozofií JS je snaha za každou cenu nepadnout. Zda je to dobře, nebo špatně...
Špatně.

Ne, že bych s tím obecně nesouhlasil. Ale co se má stát když:
Kód: [Vybrat]
1 + "1"? Taky výjimka?

A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?

Krysa11

Re:Problémy s JavaScript v praxi
« Odpověď #183 kdy: 03. 10. 2018, 19:33:34 »
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
Citace
A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?
tady nevidím problém.

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Problémy s JavaScript v praxi
« Odpověď #184 kdy: 03. 10. 2018, 19:40:59 »
A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?
tady nevidím problém.
[/quote]
Nevidíš problém? Sčítáš váhu s výškou. To ti přijde v pořádku?


Re:Problémy s JavaScript v praxi
« Odpověď #185 kdy: 03. 10. 2018, 19:56:34 »
Kdyz uz chcete plamennou valku na spatne navrzeny jazyk tak vam poradim treba Perl. Ten vam pripravi tolik dafuq momentu, ze JS zacnete milovat vecnou a nehybouci laskou..
<ironie>To říkají jen ti, co si nepřečetli nebo nepochopili jeho dokumentaci!</ironie>

Argumentovat věcně je moc mentálně náročné, viď? Překrucovat je očividně snazší :)
To je parodie na uplne stejnou obhajobu prasaren v JS. Dotycni to ale na rozdil ode mne mysleli vazne :-).

PHP si si vybral za príklad dobre navrhnutého jazyka? Ktorému najviac vyčítali nekonzistentnú syntax? Ktorý mal chyby typu, že AND a && malo rozdielnu prioritu vo vyhodnocovaní poradia operátorov? Srandista :) A pripomínam, že si stále neuviedol code snippet s tým nelogickým kódom a zmätočným kódom ;)

eee

Re:Problémy s JavaScript v praxi
« Odpověď #186 kdy: 03. 10. 2018, 19:57:58 »
A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?
tady nevidím problém.
Nevidíš problém? Sčítáš váhu s výškou. To ti přijde v pořádku?
[/quote]
To se hluboce pletes, scitas dve cisla stejneho typu. Az budes mit var weight = Weight(10) a var size = Size(10), pak to teprve nebude v poradku.

eee

Re:Problémy s JavaScript v praxi
« Odpověď #187 kdy: 03. 10. 2018, 20:01:22 »
Kdyz uz chcete plamennou valku na spatne navrzeny jazyk tak vam poradim treba Perl. Ten vam pripravi tolik dafuq momentu, ze JS zacnete milovat vecnou a nehybouci laskou..
<ironie>To říkají jen ti, co si nepřečetli nebo nepochopili jeho dokumentaci!</ironie>

Argumentovat věcně je moc mentálně náročné, viď? Překrucovat je očividně snazší :)
To je parodie na uplne stejnou obhajobu prasaren v JS. Dotycni to ale na rozdil ode mne mysleli vazne :-).

PHP si si vybral za príklad dobre navrhnutého jazyka? Ktorému najviac vyčítali nekonzistentnú syntax? Ktorý mal chyby typu, že AND a && malo rozdielnu prioritu vo vyhodnocovaní poradia operátorov? Srandista :) A pripomínam, že si stále neuviedol code snippet s tým nelogickým kódom a zmätočným kódom ;)
Nevybral, neco jsi spatne pochopil. Existence dvou ruznych operatoru pro stejnou vec by mela vest k zamysleni duvodu jejich existence, a je to prave rozdilna priorita, to je to nejmensi, co bych php vycital.

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Problémy s JavaScript v praxi
« Odpověď #188 kdy: 03. 10. 2018, 20:38:06 »
A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?
tady nevidím problém.
Nevidíš problém? Sčítáš váhu s výškou. To ti přijde v pořádku?
To se hluboce pletes, scitas dve cisla stejneho typu. Az budes mit var weight = Weight(10) a var size = Size(10), pak to teprve nebude v poradku.
[/quote]

Nepletu. Nesmíš se dívat tak povrchně.

Vytvoříme tedy objekty na váhu a výšku, tak:
Kód: [Vybrat]
var weight = new Weight(8)
var size = new Size(9)
weight + size
tak mi to vyhodilo:
Kód: [Vybrat]
[object Object][object Object] což je úsměvné.

Když přidám metodu:
Kód: [Vybrat]
Weight.prototype.sum = function(x) {this.val += x.val} protože přetěžování operátorů asi nejde (minimálně o tom nevím).
Tak to opět nevyhazuje výjimku (pochopitelně).

Tím neobhajuju rozhodnutí autorů. Já bych taky 1 + "1" netoleroval. Jenže já jsem příznivcem typování. A javascript ho nemá. (Pomocí x instaceof Weight si sice můžu ověřit, co mi tam leze, ale musím to dělat ručně. To je jakoby ho neměl.)

Pep

Re:Problémy s JavaScript v praxi
« Odpověď #189 kdy: 03. 10. 2018, 20:58:25 »
A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?
tady nevidím problém.
Nevidíš problém? Sčítáš váhu s výškou. To ti přijde v pořádku?
[/quote] Výška by byla height. Nicméně kdybys to chtěl takto kontrolovat, tak je ten kód špatně, musel bys mít zvlášť typy pro výšku a pro váhu, nebo aspoň kontrolu přes fyzikální dimenze. Některé jazyky mají typové aliasy bez implicitní coercion.

Re:Problémy s JavaScript v praxi
« Odpověď #190 kdy: 03. 10. 2018, 21:32:47 »
Citace
Nevybral, neco jsi spatne pochopil. Existence dvou ruznych operatoru pro stejnou vec by mela vest k zamysleni duvodu jejich existence, a je to prave rozdilna priorita, to je to nejmensi, co bych php vycital.

Nad ničím sa tam netreba zamýšľať. Bola to zjavná chyba, preto to aj časom opravili. Ale ... viac ma zaujíma onen zmätočný kód :) Obzvlášť, keď viem, že hodne nových PHP frameworkov sa inšpirovalo syntaxe JS, konkrétne Express frameworkom z Node. Takže, čo ten príklad onoho zmätku? Neustále totiž len odbočuješ od témy, ešte aj to nesprávnymi argumentami. Čiže? Čakám... :)

eee

Re:Problémy s JavaScript v praxi
« Odpověď #191 kdy: 03. 10. 2018, 21:33:56 »
Citace
A při:
Kód: [Vybrat]
var weight = 10
var size = 10
weight + size
? I zde výjimka?
tady nevidím problém.
Nevidíš problém? Sčítáš váhu s výškou. To ti přijde v pořádku?
To se hluboce pletes, scitas dve cisla stejneho typu. Az budes mit var weight = Weight(10) a var size = Size(10), pak to teprve nebude v poradku.

Nepletu. Nesmíš se dívat tak povrchně.

Vytvoříme tedy objekty na váhu a výšku, tak:
Kód: [Vybrat]
var weight = new Weight(8)
var size = new Size(9)
weight + size
tak mi to vyhodilo:
Kód: [Vybrat]
[object Object][object Object] což je úsměvné.

Když přidám metodu:
Kód: [Vybrat]
Weight.prototype.sum = function(x) {this.val += x.val} protože přetěžování operátorů asi nejde (minimálně o tom nevím).
Tak to opět nevyhazuje výjimku (pochopitelně).

Tím neobhajuju rozhodnutí autorů. Já bych taky 1 + "1" netoleroval. Jenže já jsem příznivcem typování. A javascript ho nemá. (Pomocí x instaceof Weight si sice můžu ověřit, co mi tam leze, ale musím to dělat ručně. To je jakoby ho neměl.)
Pleteš, název identifikátoru pro jazyk nic neznamená, pokud se nejedná o nějakou speciální pojmenovávací konvenci, třeba název funkce main v jazyce C. Na základě názvu proměnných proto jazyk nemůže vědět, zda jejich matematické operace jsou v pořádku nebo nikoliv a to ani kdyby jim sémanticky rozuměl, protože někdy to může být chyba a někdy ne, třeba při počítání BMI kde se počítá s výškou i váhou. Co je tedy správné musí říct programátor a to nikoliv názvem proměnné, ale příslušným typem. Správný defenzivní přístup jazyka je, že když programátor nestanoví co a jak, tak jazyk operaci odmítne provést. Třeba v pythonu:

Kód: [Vybrat]
>>> class Size(object):
...     def __init__(self, number):
...         self.number = number
...
>>> class Weight(object):
...     def __init__(self, number):
...         self.number = number
...
>>> s = Size(10)
>>> w = Weight(10)
>>> s + w
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'Size' and 'Weight'
>>>

To co dělá JS není úsměvné, ale hloupé.

eee

Re:Problémy s JavaScript v praxi
« Odpověď #192 kdy: 03. 10. 2018, 21:36:17 »
Citace
Nevybral, neco jsi spatne pochopil. Existence dvou ruznych operatoru pro stejnou vec by mela vest k zamysleni duvodu jejich existence, a je to prave rozdilna priorita, to je to nejmensi, co bych php vycital.

Nad ničím sa tam netreba zamýšľať. Bola to zjavná chyba, preto to aj časom opravili. Ale ... viac ma zaujíma onen zmätočný kód :) Obzvlášť, keď viem, že hodne nových PHP frameworkov sa inšpirovalo syntaxe JS, konkrétne Express frameworkom z Node. Takže, čo ten príklad onoho zmätku? Neustále totiž len odbočuješ od témy, ešte aj to nesprávnymi argumentami. Čiže? Čakám... :)

Doporučuju ti radši přemýšlet. Chyba to nebyla a funguje to tak stále: http://php.net/manual/en/language.operators.precedence.php

BoneFlute

  • *****
  • 2 046
    • Zobrazit profil
Re:Problémy s JavaScript v praxi
« Odpověď #193 kdy: 03. 10. 2018, 21:49:07 »
Pleteš, název identifikátoru pro jazyk nic neznamená, pokud se nejedná o nějakou speciální pojmenovávací konvenci, třeba název funkce main v jazyce C. Na základě názvu proměnných proto jazyk nemůže vědět, zda jejich matematické operace jsou v pořádku nebo nikoliv a to ani kdyby jim sémanticky rozuměl, protože někdy to může být chyba a někdy ne, třeba při počítání BMI kde se počítá s výškou i váhou. Co je tedy správné musí říct programátor a to nikoliv názvem proměnné, ale příslušným typem. Správný defenzivní přístup jazyka je, že když programátor nestanoví co a jak, tak jazyk operaci odmítne provést. Třeba v pythonu:

Kód: [Vybrat]
>>> class Size(object):
...     def __init__(self, number):
...         self.number = number
...
>>> class Weight(object):
...     def __init__(self, number):
...         self.number = number
...
>>> s = Size(10)
>>> w = Weight(10)
>>> s + w
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'Size' and 'Weight'
>>>

To co dělá JS není úsměvné, ale hloupé.

Těší mne, že si dáváš tak záležet, aby si pochopil co píšu.

Btw: Python je jen o chlup lepší Javascript. Tím nepřesvědčíš.

eee

Re:Problémy s JavaScript v praxi
« Odpověď #194 kdy: 03. 10. 2018, 22:17:38 »
Pleteš, název identifikátoru pro jazyk nic neznamená, pokud se nejedná o nějakou speciální pojmenovávací konvenci, třeba název funkce main v jazyce C. Na základě názvu proměnných proto jazyk nemůže vědět, zda jejich matematické operace jsou v pořádku nebo nikoliv a to ani kdyby jim sémanticky rozuměl, protože někdy to může být chyba a někdy ne, třeba při počítání BMI kde se počítá s výškou i váhou. Co je tedy správné musí říct programátor a to nikoliv názvem proměnné, ale příslušným typem. Správný defenzivní přístup jazyka je, že když programátor nestanoví co a jak, tak jazyk operaci odmítne provést. Třeba v pythonu:

Kód: [Vybrat]
>>> class Size(object):
...     def __init__(self, number):
...         self.number = number
...
>>> class Weight(object):
...     def __init__(self, number):
...         self.number = number
...
>>> s = Size(10)
>>> w = Weight(10)
>>> s + w
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'Size' and 'Weight'
>>>

To co dělá JS není úsměvné, ale hloupé.

Těší mne, že si dáváš tak záležet, aby si pochopil co píšu.

Btw: Python je jen o chlup lepší Javascript. Tím nepřesvědčíš.

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ů. O chlup lepší návrh má PHP, a v obou případech je to bída.