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 ... 103 104 [105] 106 107 ... 618
1561
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 00:52:17 »
Podstatné je, že já sice chci integer, ale stroj ví, že to nemusí být jen integer. A tak mě přinutí, compile-time, ošetřit obě možnosti.

(Jsem si vědom, že to není univerzální pravda, a že ne každý staticky typovaný jazyk se bude takto chovat. Ale je to má motivace, proč ano, a proč ne dynamické.)
No, skoro bych řekl, že to je univerzální pravda. Protože ten jazyk prostě musí nějak ošetřit tu druhou možnost.

Čili, jinak řečeno: myslím, že tady propadáš falešnému dilematu: není tady žádný rozdíl mezi statickým a dynamickým jazykem. "Statický" tě typicky donutí tu eventualitu explicitně ošetřit, dynamický typicky vyhodí výjimku (přičemž to, že máš povinnost nějak ošetřit výjimky je implicitní).

Nehádám se s tebou, přijde mi taky lepší mít explicitně dvě větve, když tam věcně nutně jsou, ale nevidím mězi těmi dvěma možnostmi, jak k tomu přistupovat, tak světodějný rozdíl jako ty ;)

1562
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 00:46:46 »
Pro případ, že by to Blbcovi uniklo, tenhle příspěvek si myslím stojí za samostatné téma, tak jsem si ho dovolil založit :)

Existujou validní programy, který statickej jazyk neuzná. Žádnej statickej typovej systém nebude nikdy dostatečně silnej na to, aby uznal všechny validní programy - viz Godelovy věty o nekompletnosti.

https://forum.root.cz/index.php?topic=20479

1563
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 00:41:25 »
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í.
A to je právě jedním z důsledků toho, že Java nemá zasílání zpráv, ale volání funkcí.
Intuitivně bych to taky tak tipoval. Ale nemám dostatek erudice, abych to mohl tvrdit s jistotou :)

1564
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 00:40:13 »
Je to ošetřený a rozhodnutý v době překladu. To je to co mě zajímá.
Nevím, jestli jsme si tady rozuměli. V době překladu víš jenom to, že
1. z externího zdroje dostaneš posloupnost bajtů (vstup uživatele nebo síťový packet)
2. víš, že bys chtěl, aby ta posloupnost bajtů byl nějaký typ (např. integer zakódovaný jako string)

Jestli se tvoje "compile time přání" v run time splní nebo ne - to není nic jiného než dynamické typování.

1565
Vývoj / Re:Co si myslíte o OOP?
« kdy: 06. 01. 2019, 00:34:48 »
Nevím, zda si rozumíte:
Jestliže ve Smalltalku přepíšu za běhu (Smalltalk má běh pořád) metodu, všechny instance dané třídy, přestože se nijak nezměnily, budou používat novou metodu, protože nositelem metod objektu je zde třída (způsob implementace metod). Když v Javascriptu změním kód, který generuje objekty včetně metod (bez "prototypování", ad-hoc), pak samozřejmě nové chování budou mít až ty nové objekty.
Taky nevím, jestli si rozumíme, ale to, co já chápu pod "hot code (re)loading" je každopádně to první, ne to druhé. Myslím, že jsem to několikrát celkem jasně napsal.

1566
Vývoj / Gödel a staticky typované jazyky
« kdy: 06. 01. 2019, 00:32:01 »
V diskusi "Co si myslíte o OOP?" mě zaujalo tohle tvrzení:

Existujou validní programy, který statickej jazyk neuzná. Žádnej statickej typovej systém nebude nikdy dostatečně silnej na to, aby uznal všechny validní programy - viz Godelovy věty o nekompletnosti.

Narozdíl od neplodného hádání se o to, jestli je lepší statické nebo dynamické typování, prosvištět si Gödela mi přijde užitečný. Chtěl bych teda poprosit Blbce, jestli by mohl nějak (alespoň polo)formálně svoje tvrzení dokázat - tj. vzít Gödelovy výsledky a vyvodit z nich to, co tvrdí (čistě tady v tomhle tématu - tj. bez odkazů na autority).

Dík!

1567
Tohle je pravda. Dokonce to ma i nazev. Ricardo's law of rent.
Co jsem se dočetl, Ricardo mluvil o obdělávatelné půdě. Jak bys to aplikoval na nájmy k bydlení? Jaký je produkt nájmu k bydlení? Jaká je jeho cena? A jakým způsobem to dáváš do souvislosti s minimální mzdou?

1568
Server / Re:Neoprávněná registrace DNS A záznamu
« kdy: 02. 01. 2019, 19:14:56 »
Právě, že je to krysa zevnitř - bývalý zaměstnanec
To, že má někdo na tvoji IP nasměrovaný A záznam, ti nijak neškodí.

1569
Server / Re:Neoprávněná registrace DNS A záznamu
« kdy: 02. 01. 2019, 15:20:56 »
Není na tom nic neoprávněného. Na vlastní doméně si můžu dávat záznamy jaké chci, klidně i vaši IP.

1570
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 23:55:50 »
Koukni na co reaguju. Tam mi tvrdis ze to tak neni.
Máš pravdu, že jsem to napsal blbě. Chtěl jsem říct, že to není nic zvláštního, že v tom není podstata hot code loadingu. To "vytvoření nového stavu" se dělá po každém eventu (který mění stav).

A pořád mi není jasný, proč se o tom vlastně bavíme :)

1571
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 23:16:09 »
Hmm. Nepresvedcil si me, ale nehodlam to dal tlacit, protoze python tolik neznam.
Ale já tě přece nepřesvědčuju, jenom říkám, že to máš popsané na té odkazované SO stránce a na jiných z ní odkazovaných:

Citace
You can use reload(module) for this, but beware of nasty side effects. For example, existing code will be based on the original code, it will not magically get new attributes or baseclasses added.
https://stackoverflow.com/questions/3862871/hot-reloading-swapping-with-python

Citace
Python modules’ code is recompiled and the module-level code reexecuted, defining a new set of objects which are bound to names in the module’s dictionary. The init function of extension modules is not called a second time. As with all other objects in Python the old objects are only reclaimed after their reference counts drop to zero. The names in the module namespace are updated to point to any new or changed objects. Other references to the old objects (such as names external to the module) are not rebound to refer to the new objects and must be updated in each namespace where they occur if that is desired.
https://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module

Prostě, Python je příliš flexibilní, dynamický a data jsou příliš provázaná (navzájem a s kódem) na to, aby to tam šlo implementovat dobře. U Erlangu to jde, protože tam s daty není potřeba dělat nic, prohodí se jenom kód a nové funkce se prostě zavolají se stejnými argumenty, se kterými by se volaly staré funkce.

Fajn, ale stav je porad immutable. Takze ta funkce co se postara o upgrade vytvori novy stav a preda ho zpet do smycky.
Samozřejmě. V Erlangu žádná funkce nic jiného než vytvářet nová data nemůže. Erlang má naprosto striktně imutabilní data. A proč to říkáš?

1572
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 21:03:45 »
A brani mi neco udelat ty migrace podobne v pythonu?
Ano, několik věcí - a je to popsané v tom odkazu, co's říkal, že sis pročetl.

Pokud vim tak erlang ma nemenitelne datove struktury. Takze migrace stavu bude znamenat zahozeni stareho a vytvoreni noveho stavu.
Ne. V Erlangu se stav udržuje tak, že se předává z jedné funkce do druhé. V event-loopu pak typicky ta funkce volá sebe sama:
Kód: [Vybrat]
def loop(stav) do
  # do something
  loop(stav)
end
(Tohle je Elixir, ale to je úplně to samý jako Erlang)

V OTP je pak tohle ještě zabalený do wrapperu, kterej když zjistí, že jsi kód upgradnul, tak automaticky zavolá funkci, která se o upgrade toho "stav" postará. Viz "Changing Internal State" http://erlang.org/doc/design_principles/appup_cookbook.html

1573
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:54:41 »
Kdyz hotswapnu nejaky modul ktery ma funkci akceptujici tuple tak mi otp samo zmigruje vsechny existujici relevantni tuply ktere do ni muzou prijit?
Úplně neumím rozšifrovat, na co se vlastně ptáš. Každopádně se nic samo nemigruje. Ale v OTP existují postupy, jak stavy zmigrovat. I způsoby, jak udělat rollback. Je to dost komplexní věc, nedá se to vysvětlit pár větama. Ale můžeš si něco o tom vygooglit, po netu je toho spousta.

1574
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:48:35 »
Chlopé, běžte ven (mezi lidi)!
 :)  ;)  :D  ;D
Já náhodou běhám celej den.




[ve Factoriu ;) ]

1575
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:21:50 »
Tak to ale erlang taky neumi.
Jak jsi na to prisel?

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