Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - BoneFlute

Stran: 1 ... 72 73 [74] 75 76 ... 133
1096
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 04. 10. 2018, 18:40:54 »
Pročpak? A co je to "slušný programátor".

Potřeba podívat se co je uvnitř je znakem blbě napsané rutiny.
Zvyk, dívat se dovnitř je znakem špatného programátora.

Ale obávám se, že toto nejde dokázat. Buď máte zkušenosti, a pak je vám to jasné, a nebo nemáte, a pak mi nevěříte.

1097
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 04. 10. 2018, 16:48:13 »
No, mě na tom Javascriptu (a Pythonu do 3.4) vadí jiná věc.
Přeci jen je rozdíl mezi tím, když:
1. kontroluješ před spuštěním
2. kontroluješ za běhu
3. nekontroluješ vůbec, respektive ručně = všichni na to kašlou

Rozdíl mezi statickým a dynamickým typováním je v tom, že u staticky typovaných jazyků musíš data prověřit před vstupem do bloku, ale u dynamicky typovaných tu můžeš udělat v dekorátoru nebo až uvnitř bloku. Kontrolu před spuštěním můžeš udělat u všech.

Tak. Když už to chápe i Kit, tak v čem je tedy problém?

1098
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 04. 10. 2018, 16:19:41 »
Pokrocily programovaci jazyk je od toho, aby co nejvice moznych lidskych chyb odstinil a nedovolil.

Naprosto souhlasím. Jenže život není tak přímočarý. Javascript vymejšleli v době, kdy byly rádi, že nemusí řešit paměť. A s ohledem na to, že netušili co za styly se v budoucnu budou prefereovat je to jazyk velmi nadčasový a flexibilní. Někdy i debilní.

1099
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 04. 10. 2018, 16:14:52 »
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.

Což v praxi znamená...

1100
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 04. 10. 2018, 16:11:46 »
Jednak si můžeš zjistit, co uvnitř je, ...

Tohle by slušný programátor nemohl ani vyslovit!

1101
Vývoj / Re:Typový system versus unittesty
« kdy: 04. 10. 2018, 16:05:26 »

1102
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 04. 10. 2018, 16:04:43 »
Jinak je ti doufám jasné, že i v JavaScriptu taky můžeš hlídat, jestli jsi dostal číslo, nebo string
Jen za běhu. Fakt budeš "kopat" základy lžičkou, když můžeš použít bagr?

Jistě, v interpretovaných jazycích se tak nějak věci za běhu kontrolují... :D

No, mě na tom Javascriptu (a Pythonu do 3.4) vadí jiná věc.
Přeci jen je rozdíl mezi tím, když:
1. kontroluješ před spuštěním
2. kontroluješ za běhu
3. nekontroluješ vůbec, respektive ručně = všichni na to kašlou

Důsledek stavu, že v "v interpretovaných jazycích se tak nějak věci za běhu kontrolují" je ten, že se nekontrolují. Ani za běhu.
Proto se rozšiřují věci jako typescript, nebo flow. Protože i v JS komunitě dozrávají k přesvědčení, že je to tedy asi potřeba, některé věci kontrolovat.

1103
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 03. 10. 2018, 23:39:24 »
Python by nebyl tak špatný, kdyby byl staticky typovaný.
S tím bych mohl souhlasit. Ale ty novosti, co přišli s verzí 3.4 vypadají dobře.

Problém je v tom, že je to hodně o povaze. Někomu prostě styl, jako má Python nebo Javascript vyhovuje. A ostatně proč taky ne.

Mně to třeba nevyhovuje vůbec. Pokud chci takovou dynamickou opičárnu, tak šáhnu po jazyku Lua. Je snad po všech stránkách (IMHO) lepší. Krom rozšířenosti. Jinak bez statického typování trpím. Ale jak říkám, je to o povaze. Těžko objektivně soudit.

1104
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 03. 10. 2018, 22:39:02 »
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áš :-)

1105
Vývoj / Re:Problémy s JavaScript v praxi
« 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číš.

1106
Vývoj / Re:Problémy s JavaScript v praxi
« 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.)

1107
Vývoj / Re:Problémy s JavaScript v praxi
« 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?

1108
Vývoj / Re:Problémy s JavaScript v praxi
« 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?

1109
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 03. 10. 2018, 01:54:33 »
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ě...

1110
Vývoj / Re:Websocket vs. REST
« kdy: 28. 09. 2018, 02:54:28 »
V některých frameworcích (Vaadin) se normálně používá REST, ale když někde použiješ "push" ze serveru a tím si do aplikace "zavlečeš" WebSockety, tak celý framework přepne na ně a i to, co jelo dříve přes REST se najednou posílá přes WebSockety.

Proč to tak dělá?

Stran: 1 ... 72 73 [74] 75 76 ... 133