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 - Mirek Prýmek

Stran: 1 ... 104 105 [106] 107 108 ... 618
1576
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:13:20 »
V čem je to jiné? Taky dostanu proud dat, defakto string, defakto zase musím použít Maybe.
Jiné je to v tom, že serializovaná data můžou obsahovat serializované typy. Tj. dostaneš se přesně do situace dynamicky typovaného jazyka - typy znáš (pozitivně, jistě) v době běhu, ale ne v době překladu.

1577
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:11:49 »
To, ze stare objekty (vytvorene podle predchozi verze kodu) zustanou nezmenene je snad v poradku ne?
Ne. To je to, co ti porad nedochazi. Podstata je ve vymene stareho za nove ne ve vytvoreni noveho. To druhé Python umí (a umí to jakýkoliv jazyk s REPL), to první ne.

1578
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 18:09:25 »

1579
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 18:06:02 »
Já nevím, tohle se mi nezdá. Když mám data z externího zdroje, stále to můžu otypovat. [...] typem určím, že buď zadá číslo, a pak ho zpracuju, nebo zadá nečíslo, a pak mu hodím chybovku. Tohle jde udělat compile-time.
To rozlišení mezi číslem a (čímkoli jiným) není nic jinýho, než dynamický typování :) Vstup od uživatele není moc dobrej příklad, protože to je vždycky string. Zajímavější je třeba deserializace z disku nebo sítě.

Jde vlastně o featuru, moct ty typy vypnout. Protože třeba ten Haskell to vždycky kompiluje jako na produkci.
Přesně tak. Chceš jenom něco narychlo prubnout a přitom jsi nucenej psát stejně kvalitní kód jako pro produkci. A to je opruz.

1581
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 17:45:52 »
Je tu nejakej pythonak, kterej by rekl, jestli je to pouzitelne?
Existující kód prostě běží dál, změny se projeví jenom v nově nataženém.

1582
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 16:32:34 »
Ale melo by to jit.
Ne, nejde to, smiř se s tím, mýlíš se.

(sorry, tohle téma už mě nebaví, omlouvám se z něj)

1583
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 16:27:07 »
Zajímalo  by mě pár kousků  těch bambilionu jiných, kde dynamické typování je vhodnější (nikoliv jediné technicky možné).
Neříkal jsem, že je vhodnější, ale že je bambilion případů, kdy musíš statické typování opustit a přejít na dynamické, protože prostě typ v době překladu neznáš. Je to jakákoliv situace, kdy data načítáš z externího zdroje. Z principu věci ti typový systém může zaručit, že je někde nějaký typ, jenom za předpokladu, že ten zdroj těch dat má pod kontrolou. Kdykoli načítáš ze sítě nebo z disku, typy nemáš.

Ale ať nad tím dumám jak dumám, tak mi vychází, že dynamické typování je znouzecnost. Nemá žádné benefity. Pletu se?
Se zkvalitněním inference výhody trochu ubývají. Ale pár bys jich našel. Například když potřebuješ někde na zkoušku nějaký typ změnit, může ti probublat do spousty kódu, takže to musíš změnit i na spoustě mít, který vůbec spouštět nechceš. Je to podobný jako s IO v Haskellu - nemůžeš si někam jenom tak narychlo dát nějaký debug výpis...

Tohle jasná výhoda je. A našel bys jich víc. Jestli převažují nevýhody, to ať si každý soudruh posoudí sám :)

1584
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 15:57:47 »
S tím nemám problém. Já neobhajuji statické typování. Já hejtuju dynamické.
Však jo. Já jenom, že ty tvoje hejty platí i pro statické, jenom v menší míře.

1585
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 15:56:51 »
No a ja tvrdim, ze pokud mas plnotucny REPL tak musis mit vsechny tyhle veci taky, protoze jinak bys nemohl mit ani ten.  A z toho vyvozuju, ze pokud mas REPL mas i hot swap.
No tak to z chybného předpokladu vyvozuješ chybný závěr, no, co na to říct jiného? REPL máš třeba v pythonu a code reloading tam dělat nejde (AFAIK). Existující kód prostě běží dál, změny se projeví jenom v nově nataženém.

Pokud tomu tak neni tak to neni plnohodnotny REPL.
Beru na vědomí tvou definici "plnohodnotného REPLu".

Ani ten ti ale na hot code reload nestačí.

1586
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 15:53:33 »
Synku, Java to neni jen tak nejaka technologie s fajnovym marketingem, muzes metody pridavat, i tridy, potrebujes jen JVM opatchovat s DCEVM.
Takže, tatínku, pro normální JVM od Sunu platí to, co jsem napsal :)

1587
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 15:08:00 »
Jake jsou ty predpoklady ktere myslis, ze jsou k hot swapu potreba?
No napriklad musis mit moznost nejak zabezpecit, ze kod nepoleze do kodu, ktery prave reloadujes. Nebo musis mit moznost mit zaraz v pameti dve verze tehoz. Pak musis mit vubec moznost kod za behu menit. Nesmi existovat zpusob, jak se na kod odkazovat (pointerem nebo necim podobnym), nebo musis mit moznost ty odkazy automaticky updatovat. Atd. atd. těch věcí je moře.

A btw. taky se domnivam, ze nejde udelat (plnotucny) REPL v kazdem jazyce... Treba ta java ho pokud vim nema. Co treba C?
REPL není nic jiného než iteraktivní vyhodnocovač výrazů. Pokud pro nějaký jazyk není, tak spíš proto, že to u něj nedává moc smysl, např. proto, že výrazy jsou v tom jazyce podružná věc. Mám pocit, že máš nějaké mylné představy o magické podstatě REPLu :)

Pro Javu existuje: https://www.infoq.com/articles/jshell-java-repl

1588
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 13:52:24 »
A ja si prave myslim, ze plyne. A koukal jsem na par prikladu jak se to dela v tom erlangu a prijde mi to velmi podobne. Neni eshell vlastne takovy REPL?
Ne "vlastne takovy", eshell je REPL.

Akorat porad nezorumim tomu, proc tyhle dve vlastnosti spojujes, jsou uplne ortogonalni. REPL muzes udelat v jakemkoliv jazyce, k hot code (re)loadingu potrebujes nekolik predpokladu, ktere ne kazdy jazyk splnuje.

V JVM, co jsem se dočetl, hot reloading jde, ale nemůžeš měnit signatury ani odstraňovat nebo přidávat metody. Takže vlastně můžeš jenom měnit implementaci existujících věcí.

1589
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 12:54:55 »
Můžu, všechno se dá ochcat, ale už to není sum type.
Ne, je to product type ;)

1590
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 12:54:14 »
Jasně, i mně přijde návrh Go na hlavu (pragmatické výhody jsou, nepopírám). Teď řeší, jak udělat líp ošetření chyb, přičemž ale už v době původního návrhu jazyka muselo být jasné, že řešením je haskellovský Either. Jenže oni se rozhodli ten jazyk napsat takhle "blbě", protože takhle blbě se přece píše kód už desítky let a taky to jde.

Na druhou stranu třeba Rust má prakticky všechno správně - má algebraické typy, má pattern matching, má monadické řetězení operací, všechno krásně zapadá. Na druhou stranu je ten jazyk statický až na půdu, všechny ty abstrakce se v době překladu zapečou až pomalu do železa. Může to omezovat, ale sedí mi to dohromady.
Jo, mám z toho úplně stejný pocit. V Go udělali několik rozhodnutí, který vůbec nechápu. V Rustu jsem na nic takovýho nenarazil (ale znám ho málo, daleko míň než Go, ve kterým jsem psal i nějaký netriviální produkční kód).

Co jsem se koukal na návrhy ohledně Go 2.0, vypadá to, že celkem napravují většinu věcí, který v jedniččce vůbec neměly být. Možná ta dvojka bude i docela pěknej jazyk konečně ;)

Stran: 1 ... 104 105 [106] 107 108 ... 618