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

Stran: 1 ... 127 128 [129] 130 131 ... 153
1921
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 08. 10. 2019, 11:54:18 »
Ja se treba priznam, ze casto i dost vaham nad uzitecnosti Streamu (monady). Mnohokrat mi prijde pouziti Foreahe mnohem praktictejsi a prehlednejsi. Dodnes z pameti nevim, jak ve Streamu napr. udelat Group By nad Mapou a musim cumet do Googlu.
Co mají Streamy s monádami? Prostě normální funkce vyššího řádu.
  ::)

1922
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 22:50:31 »
Zrovna jsem psal takovou jednu servisu v Jave ve Springu a rozhodoval jsem se jestli nektere casti kodu neudelt asynchronne pres Futures a nove thready. Ta resena uloha na to byla jako delana. Uz jsem to tak mel napsane a zjistil jsem, ze mi to prinese vice problemu nez uzitku. Nakonec jsem nasel zpusov jak to udelat normalnim sekvencnim kodem s fixne definovanymi worker thready a je to lepsi. A tak je to dycky. Nejhorsi je, kdyz nejaky jazyk, jako je C#, obsahuje 100 ruznych pitchovin featur. Pak vznikne problem typu "Kdyz mas kladivko, tak se vsechno jevi jako hrebik", a mas chut to vsechno pouzivat, ackoliv to akorat zvysuje komplikovanost kodu.

Ja se treba priznam, ze casto i dost vaham nad uzitecnosti Streamu (monady). Mnohokrat mi prijde pouziti Foreahe mnohem praktictejsi a prehlednejsi. Dodnes z pameti nevim, jak ve Streamu napr. udelat Group By nad Mapou a musim cumet do Googlu.

Po tisicateprve, ti lidi co to takhle v historii pocitacu vymysleli, nebyli debilove nebo idioti.
Streamy jsou úlet.

1923
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 17:42:39 »
akorát to teda nijak nesouvisí se smyčkou událostí, jde jen o kooperativní scheduler
Myslel jsem to tak, ze vsechny tyhle srandy ve finale na nejnizsi urovni znamenaji to samy - rozkouskovani linearnio kodu na nejake chunky, kterym se v nejakem loopu postupne prideluje cas behu. Potencialne na vic jadrech/vlaknech, ale to na tom nic nemeni.

(to může napsat jen javascriptař, ten víc vláken nezná, ale o srandajazycích se snad nebavíme :) ).
No tak on to prave nezna ani Python, v tom je cast toho celyho pruseru :)

Ne ne, akorát přidali přepínání korutin i k volání funkcí
To jo, ale to uz bylo davno. Ted jsem koukal, ze Go 1.2.
Jo, ideálně v loopu na úrovni jádra, proto to je vlastně jen obal okolo kqueue, IO ports etc. Těch víc vláken pak funguje na principu GCD, kde se korutiny přidělují vláknům z poolu, aby nedocházelo ke drahému přepínání kontextu. Technicky to je vlastně brilantní, pamatuju časy, kdy jsem psal nad kqueue přímo, to ještě nebylo ani Go, ani GCD, a Java ještě byla novinkou (ovšem bez NIO). Neuvěřitelné, jaké možnosti otevírá jeden syscall.

1924
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 17:28:54 »
Goroutiny nejsou korutiny. Korutiny běží v jednom vlákně.
Gorutiny taky, když máš jen jedno jádro. Je to úplně to samé, až na jedno písmenko.
Tohle je uz vylozene hnidopisstvi, ale nevim, jestli je dobry tvrdit, ze je to to same. Konceptualne ano, implementacne spis ne. Minimalne je rozdil v tom, ze goroutiny se muzou prepinat v ruzne okamziky (u soucasne implementace napriklad s kazdym volanim funkce AFAIK), zatimco u coroutin se predpoklada explicitni "spoluprace" programatora nejakym zpusobem typu yield apod.
Právěže to je shodné implementačně, třeba zrovna v C# funguje scheduler úplně stejně.

1925
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 17:26:03 »
Mel jsem matny pocit, ze jsem nekde cetl, ze s tim cosi v posledni dobe delali.
Mozna to bylo tohle https://github.com/golang/go/issues/24543 ? (Zatim?) jenom proposal.
Jo, to má milestone 1.14, první odklon od kooperativity.

1926
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 17:16:43 »
BTW scheduler v Go je kooperativní doposud, jede nad kqueue/IO ports apod. podle OS.
Dik. Mel jsem matny pocit, ze jsem nekde cetl, ze s tim cosi v posledni dobe delali. Bud se pletu, nebo to mozna byl nejaky plan pro Go 2? Nevim.
Ne ne, akorát přidali přepínání korutin i k volání funkcí, takže když nějaká gorutina běží moc dlouho a volá funkci, která není async, tak se stejně může vykonávání přerušit a scheduler může přepnout kontext. To je ale pořád čistě kooperativní.

1927
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 17:12:53 »
Vždyť async/await jsou právě taky jen korutiny, jen se zbytečně složitou syntaxí (proto to tolik lidí mate). Právě Go má v podstatě to samé, ale transparentně.
Asi podle toho, na jake urovni se na to divas. Async/await je hlavne cukr pro futures, zatimco goroutiny spis davaji pocit plne oddelenych vlaken provadeni - jako plnohodnotna OS vlakna. Implementacne to muze byt dost podobne, hlavne na urovni event loopu, ale ten koncept jako takovy je imho dost jiny - async/await je matouci a otravne, gorutiny jsou naprosto v pohode.
Ano, myslím na implementační úrovni, kde je naprostá shoda (akorát to teda nijak nesouvisí se smyčkou událostí, jde jen o kooperativní scheduler). Ani neplatí, jak tu chybně zaznělo, že "korutiny" běží jen v jednom vlákně (to může napsat jen javascriptař, ten víc vláken nezná, ale o srandajazycích se snad nebavíme :) ).

1928
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 16:23:09 »
Goroutiny nejsou korutiny. Korutiny běží v jednom vlákně.
Gorutiny taky, když máš jen jedno jádro. Je to úplně to samé, až na jedno písmenko.

1929
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 13:30:20 »
To ale není chyba technologie/konceptu, že to lidi nechápou. Takových témat se najde mnohem víc, třeba “the M word” ve FP.
Jak se to veme. Já moc nemám rád koncepty, které něco relativně složitého zabalí tak, že to vypadá jednoduše, člověk může nabýt dojmu, že tomu rozumí, ale ve skutečnosti nerozumí a tímpádem právě není schopnej toho reasoningu* nad kódem. Proto osobně async/await nemám rád. Daleko lepší mi přijdou ty korutiny, to je koncept, kterej nic neschovává, člověk na první pohled vidí, co se tam děje. A ještě lepší jsou úplně ne-kooperativní procesy v Erlangu (korutiny v Go, alespoň donedávna, byly částečně kooperativní, IIRC - přepínalo se jenom na některých místech).


* sorry za opakování tohodle slova, ale přijde mi výstižný a neznám podobně dobrý český ekvivalent
Vždyť async/await jsou právě taky jen korutiny, jen se zbytečně složitou syntaxí (proto to tolik lidí mate). Právě Go má v podstatě to samé, ale transparentně.

BTW scheduler v Go je kooperativní doposud, jede nad kqueue/IO ports apod. podle OS.

1930
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 12:49:57 »
Byla delší, vypadala hustě, kolega jí nerozuměl.
s async/await se dá psát stejně stručně jako s vlákny. Většinou stručněji
Obávám se, že developerů, kteří opravdu chápou, co async/await dělá, bude relativně málo.
To ale není chyba technologie/konceptu, že to lidi nechápou. Takových témat se najde mnohem víc, třeba “the M word” ve FP.

1931
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 07. 10. 2019, 12:44:46 »
Jak nekoho vidim, ze bastli backend a ze srandy to dela asynchronni, tak se mi otevira kudla v kapse.
Přehnaně asynchronni aplikace se často plní omáčkou, zhoršuje se její čitelnost a bezpečnost.
Od toho jsou korutiny, aby synchronně vypadající kód běžel asynchronně.

1932
Vývoj / Re:Naučení se asynchronnímu programování
« kdy: 05. 10. 2019, 11:17:05 »
“Technologie,” která pomůže k pochopení principů, je kqueue. Na BSD (včetně macOS) to je přímo syscall, ale pro Linux existuje libkqueue se stejným API. Na vyšší úrovni pak GCD (libdispatch).

1933
Studium a uplatnění / Re:Studium na VŠ po 40
« kdy: 04. 10. 2019, 22:56:57 »
... ví naprostý hovno...
...drž hubu...
...v zadeki.
Kokot...
...mi přijdeš jako hňup...
Neurazte se, ale uroven vaseho projevu silne koreluje s pravdivosti a kvalitou vaseho nazoru.
Na slabomyslné trolly je lepší nereagovat. Jak říkával jeden slavný velšský profesor filosofie a matematiky: You can’t educate pork.

1934
Studium a uplatnění / Re:Studium na VŠ po 40
« kdy: 04. 10. 2019, 20:09:53 »
Studovat informatiku ROFL!!

A proč jako?
Na většině škol se nejedná o studium informatiky, ale o studium matematiky.
A to je špatně?

1935
Studium a uplatnění / Re:Studium na VŠ po 40
« kdy: 04. 10. 2019, 00:10:43 »
Pokud chceš drahej a na čas náročnej koníček, tak mohu VŠ ve zralejším věku jen doporučit. Ale IMO se to vyplatí hlavně na otevření nových obzorů, osobně bych neviděl smysl v tom si vystudovat něco, co mne x let živí.
Nemusí být příliš náročný na čas, po Evropě je dost distančních univerzit, kde jde jít šnečím tempem, nové obzory jdou otvírat i part time. Třeba taková UOC je kvalitní (podle žebříčku Times) a na rozdíl od třeba britských i poměrně levná.
Muze hledat i v lokalnim ceskem rybnice. Krome "klasiky" (denni/dalkove, 4/5/6 let, platba za semestr + prodlouzeni), dneska nektere skoly umoznujou i moderni variantu "mimoradne" formy studia (domlouvate si terminy a max 4/5/6 let). V moderni variante se plati za zapsane kredity, domlouvate si uplne vse a muzete si studovat jak je libo dlouho.

Dost lidi, pote co decka opusti hnizdo, si realizuji sny na ktere proste nebyl cas. A vetsinou dojde i na tu VS. Ze se to na tom trhu prace hodi a udrzi to mozek dele mladej, je jasne.
Jistě, určitě to lze jen doporučit, až už na škole v ČR nebo za hranicemi.

Stran: 1 ... 127 128 [129] 130 131 ... 153