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 - listoper

Stran: 1 ... 32 33 [34] 35 36 ... 46
496
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 20:03:40 »
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.
A brani mi neco udelat ty migrace podobne v pythonu? Pokud vim tak erlang ma nemenitelne datove struktury. Takze migrace stavu bude znamenat zahozeni stareho a vytvoreni noveho stavu.

497
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:50:15 »
Tak to ale erlang taky neumi.
Jak jsi na to prisel?
Kdyz hotswapnu nejaky modul ktery ma funkci akceptujici tuple tak mi otp samo zmigruje vsechny existujici relevantni tuply ktere do ni muzou prijit?

498
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:21:08 »
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.

Tak to ale erlang taky neumi.

499
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 19:09:36 »
Ale tak dobre... jestli moc chces muzes mi to vysvetlit. Ja budu poslouchat.
https://stackoverflow.com/questions/3862871/hot-reloading-swapping-with-python
Ok. Procetl jsem. I nektere ty odkazovane veci. A nejsem si jisty, co mas na mysli.
Vsude se pise jak se to da udelat... A na co si dat pozor.

To, ze stare objekty (vytvorene podle predchozi verze kodu) zustanou nezmenene je snad v poradku ne?

500
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 18:08:19 »
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.
Ty ne. Ty mas omluvenku ;-).

Ale tak dobre... jestli moc chces muzes mi to vysvetlit. Ja budu poslouchat.

501
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 16:45:45 »
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)
OK Miro. si omluven.
Pro ostatni: https://docs.python.org/3/library/importlib.html#importlib.reload
Je tu nejakej pythonak, kterej by rekl, jestli je to pouzitelne?

502
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 16:30:18 »
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.
Uz je to davno co sem delal s pythonem. Ale melo by to jit.

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čí.

Nerikam, ze k hot swapu je potreba REPL. Ale ze k REPLu je potreba hot swap.
Tudis vsude kde REPL je... Musi byt i hot swap


503
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 15:57:38 »
A btw. taky se domnivam, ze nejde udelat (plnotucny) REPL v kazdem jazyce... Treba ta java ho pokud vim nema. Co treba C?

REPL jde udělat s trochou snahy v každém jazyce: https://github.com/root-project/cling

S hot swapem to není tak jednoduché, vem si třeba inlinované funkce,  jak bys je chtěl hot swapovat? Jediné rozumné řešení je všechno překompilovat, což už se dá dost těžko považovat za hot swap.

Viz. odpoved Mirkovi. cling neznam, ale myslim, ze to nebude plnohodnotny REPL.

504
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 15:53:09 »
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.
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.

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

No a podle me to R v REPL znamena read a jeho reader by mel umet precist jakykoliv kod ktery jde zkompilovat/interpretovat i mimo repl. Pokud tomu tak neni tak to neni plnohodnotny REPL.
Napriklad jshell neumi package http://openjdk.java.net/jeps/222:
"A snippet may not declare a package or a module. All JShell code is placed in a single package in an unnamed module. The name of the package is controlled by JShell."


505
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 14:49:39 »
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í.

Spojuju, protoze se domnivam, ze kdyz ma jazyk REPL tak uz ma vse co je potreba k hot swapu. Treba jde hot swap i bez nej, ale nevim jak.

Jake jsou ty predpoklady ktere myslis, ze jsou k hot swapu potreba?


A btw. taky se domnivam, ze nejde udelat (plnotucny) REPL v kazdem jazyce... Treba ta java ho pokud vim nema. Co treba C?

506
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 13:22:47 »
Ano na vzdalenem produkcnim serveru mi bezi existujici aplikace. Pripojim se pomoci nREPL a hot reloadnu si co chci...
V navrhu erlangu to zrejme bylo klicove, zatimco v clojure to funguje spis nahodou, nez ze by to byl cil... ale funguje.
Samozrejme se na nejtere veci musi davat pozor.... Pokud sejdes z cesty a zacnes intenzivne pouzivat java interop, nebo atomy tak si muzes tu bezici aplikaci nakopnout. Ale pokud budes psat pure funkce tak je to bez problemu.
No vždyť já netvrdím, že to v Clojure nejde. Jenom říkám, že to neplyne z toho, že má REPL.

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?
Treba java ma jshell, ale to neni (podle me) plnohodnotny REPL. A taky nevim jak udelat  v jave rozumne hot swapping. Slysel jsem o jRebel, ale nikdy jsem to nevidel v praxi.

507
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 12:45:38 »
To E v REPL znamena "evaluate".  Nevim jak jinde, ale v mem oblibenem clojure proste predhodim REPLu kod a on se evaluuje. To znamena, ze pokud v tom kodu prepisu funkci, nebo cely namespace tak stara verze kodu efektivne zmizi a je nahrazena tou predhozenou.
A uz sem to videl v akci i na produkci... (byl to trochu opruz kvuli sitarum a bezpecakum, ale nakonec to probehlo)
No jistě, ale to je něco jinýho.

Hot reloading v Erlangu je o tom, že ti běží na serveru nějaká aplikace a ty v ní za běhu změníš část kódu. Klíčový je to, že měníš existující aplikaci, zatímco v REPLu vlastně vytváříš novou.

Ano na vzdalenem produkcnim serveru mi bezi existujici aplikace. Pripojim se pomoci nREPL a hot reloadnu si co chci...
V navrhu erlangu to zrejme bylo klicove, zatimco v clojure to funguje spis nahodou, nez ze by to byl cil... ale funguje.
Samozrejme se na nejtere veci musi davat pozor.... Pokud sejdes z cesty a zacnes intenzivne pouzivat java interop, nebo atomy tak si muzes tu bezici aplikaci nakopnout. Ale pokud budes psat pure funkce tak je to bez problemu.

Jednou sem dokonce celou aplkaci vyvyjel na vzdalenem serveru. Nebylo to nic velkeho a bylo to potreba jen na par tydnu. Nastartoval jsem si na cilovem serveru REPL u sebe CIDER a pripojil se na nej. Kdyz jsem byl hotov jen sem odpojil CIDER a nechal to bezet. Druhy den sem se zase pripojil abych pridal novy endpoint a zase odpojil. Bylo to jen v testovacim prostredi (na produkci bych na to nemel koule), ale intenzivne se pouzivalo behem toho co sem vyvyjel....

508
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 12:08:07 »
Mel bys na to nejaky odkaz? Nefunguje to u kazdeho jazyka s REPL?
S REPL to nemá nic společnýho. V Erlangu můžeš za běhu vyměnit jeden modul za jiný. Můžeš si to představit tak, jako bys v Javě vyměnil implementaci třídy String za jinou a všechen kód, včetně knihoven atd. začal pracovat s novou třídou (ta stará prostě vůbec neexistuje, vyhodíš ji). Nejsem si vůbec jistej, jestli tohle umí všechny jazyky, spíš bych řekl, že ne.

To E v REPL znamena "evaluate".  Nevim jak jinde, ale v mem oblibenem clojure proste predhodim REPLu kod a on se evaluuje. To znamena, ze pokud v tom kodu prepisu funkci, nebo cely namespace tak stara verze kodu efektivne zmizi a je nahrazena tou predhozenou.
A uz sem to videl v akci i na produkci... (byl to trochu opruz kvuli sitarum a bezpecakum, ale nakonec to probehlo)

509
Vývoj / Re:Co si myslíte o OOP?
« kdy: 31. 12. 2018, 11:30:55 »
Statické typování se hodí pro strukturované programování, ale já raději používám OOP, ve kterém je lepší typovat dynamicky.
1. Erlang dokáže za chodu opravovat/upravovat kód. A autoři prohlásili, že tam typy nedali, protože se jim nepovedlo vymyslet jak na to.
Mel bys na to nejaky odkaz? Nefunguje to u kazdeho jazyka s REPL?

2. Někdy se hodí, zejména na prototypování, když jsou typy volitelné, a následně to při refactoringu upřesňovat. Protože ze začátku člověk třeba nemá jasno, jak to má vypadat, a tak samozřejmě dost dobře nemůže ty typy určit.

Tohle mi prijde zvlastni. refactoring chapu jako "cisteni" kodu v pripade, ze uz funguje spravne tzn. beze zmeny funkcionality... Abych mohl delat refactoring "bezpecne" potrebuju mit uz v ruce nejaky kontrolni mechanizmus (testy nebo typovou kontrolu), abych mohl po vycisteni prokazat, zachovani funcionality.

Takze, kdyz budu delat nejaky proof of concept tak muzu bez testu a bez typu, ale rozhodne to pak nebudu refactorovat do nejake produkcni verze, protoze bych se osypal.


510
Vývoj / Re:Dobrý a rýchly a textový editor zadarmo
« kdy: 28. 12. 2018, 20:42:51 »
Jenom ho pouzivam, uz vic, nez 20 let. Je velmi flexibilni, konfigurovatelny, skriptovatelny, ale neni to zdarmo. Uz syntax higlighting mu umi poradne zatopit.

Ok. Stejne by me zajimalo srovnani. Znas neco srovnatelneho, ale rychlejsiho? (Predpokladam, ze ne, protoze bys neztracel cas s vimem, ale radsi se zeptam).

Stran: 1 ... 32 33 [34] 35 36 ... 46