Těžké OOP problémy

gill

  • ****
  • 270
Re:Těžké OOP problémy
« Odpověď #150 kdy: 09. 11. 2019, 18:00:55 »
Citace od: Mirek Prýmek kdy 09. 11. 2019, 11:20:00
To první je asi jasný. To druhý je jenom "jakože paralelní" v JS stylu. Od serializovaných awaitů by se to poznalo tak, že

await sleep(1)
await sleep(1)
await sleep(1)

by netrvalo ~ tři sekundy, ale ~ jednu.

To druhé v JS jde implementovat, ale musí se to (AFAIK) udělat ručně přes Promise.all()

O to právě jde, await čeká na splnění promisu. Když použiji analogii s vlákny, await odpovídá join.

Citace od: Mirek Prýmek kdy 09. 11. 2019, 11:20:00
To druhé v JS jde implementovat, ale musí se to (AFAIK) udělat ručně přes Promise.all()
nemusí, můžeš nejdřív vytvořit všechny tři promisy a až potom awaitovat (odpovídá joinování vláken).

let p1 = sleep(1)
let p2 = sleep(1)
let p3 = sleep(1)
await p1;
await p2;
await p3;


Promise.all dělá přibližně to stejné.

přečti dokumentaci k await, je hodně krátká, mohl bys to vládnout.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await


BoneFlute

  • *****
  • 2 155
Re:Těžké OOP problémy
« Odpověď #151 kdy: 09. 11. 2019, 18:09:57 »
Citace od: gill kdy 09. 11. 2019, 18:00:55
mohl bys to zvládnout.

Ta agresivita, to má nějaký hlubší smysl?

gill

  • ****
  • 270
Re:Těžké OOP problémy
« Odpověď #152 kdy: 09. 11. 2019, 18:12:33 »
Citace od: BoneFlute kdy 09. 11. 2019, 18:09:57
Citace od: gill kdy 09. 11. 2019, 18:00:55
mohl bys to zvládnout.

Ta agresivita, to má nějaký hlubší smysl?

když něco kritizuje, měl by to znát.

BoneFlute

  • *****
  • 2 155
Re:Těžké OOP problémy
« Odpověď #153 kdy: 09. 11. 2019, 18:17:57 »
Citace od: gill kdy 09. 11. 2019, 18:12:33
Citace od: BoneFlute kdy 09. 11. 2019, 18:09:57
Citace od: gill kdy 09. 11. 2019, 18:00:55
mohl bys to zvládnout.

Ta agresivita, to má nějaký hlubší smysl?

když něco kritizuje, měl by to znát.

Chápu. Když bych tě požádal, aby si se další diskuse už neúčastnil, to by nešlo, že?

Re:Těžké OOP problémy
« Odpověď #154 kdy: 09. 11. 2019, 18:22:19 »
Citace od: gill kdy 09. 11. 2019, 18:12:33
když něco kritizuje, měl by to znát.
Mam pocit, ze si zase v necem nerozumime. Co presne mas pocit, ze kritizuju, a proc bych podle tebe mel znat implementacni detaily await v JS? S cim z toho, co jsem kde napsal, to ma souvislost? (Myslim ty otazky vazne, nejsou to zadne chytaky, fakt nerozumim tomu, kam miris)


gill

  • ****
  • 270
Re:Těžké OOP problémy
« Odpověď #155 kdy: 09. 11. 2019, 18:24:51 »
Citace od: BoneFlute kdy 09. 11. 2019, 18:17:57
Chápu. Když bych tě požádal, aby si se další diskuse už neúčastnil, to by nešlo, že?

dokud budete šířit bludy, budu se vyjadřovat. Požádej admina, jestli ti tu tolik vadím.

BoneFlute

  • *****
  • 2 155
Re:Těžké OOP problémy
« Odpověď #156 kdy: 09. 11. 2019, 18:30:10 »
Citace od: gill kdy 09. 11. 2019, 18:24:51
Citace od: BoneFlute kdy 09. 11. 2019, 18:17:57
Chápu. Když bych tě požádal, aby si se další diskuse už neúčastnil, to by nešlo, že?

dokud budete šířit bludy, budu se vyjadřovat. Požádej admina, jestli ti tu tolik vadím.
Mě nevadí, že se vyjadřuješ. Jen mi vadí, že se neovládáš, to je celé. Ale co, jen jsem se zeptal. Pokračujme v tématu.

Re:Těžké OOP problémy
« Odpověď #157 kdy: 09. 11. 2019, 18:35:50 »
Citace od: gill kdy 09. 11. 2019, 18:24:51
dokud budete šířit bludy, budu se vyjadřovat. Požádej admina, jestli ti tu tolik vadím.
Aha, tak uz tomu rozumim. To "AFAIK" jsi v te vete prehledl nebo nerozumis jejimu vyznamu? Nebo v cem je problem?

Za to doplneni dekuju, je to zajimavej mechanismus, prave jsem si to vyzkousel, funguje to, je to hezkej zpusob. Kazdopadne ale to neni neco, co bych kritizoval, nevim, jak jsi na to prisel.

Re:Těžké OOP problémy
« Odpověď #158 kdy: 09. 11. 2019, 18:57:19 »
Citace od: BoneFlute kdy 09. 11. 2019, 18:30:10
Citace od: gill kdy 09. 11. 2019, 18:24:51
Citace od: BoneFlute kdy 09. 11. 2019, 18:17:57
Chápu. Když bych tě požádal, aby si se další diskuse už neúčastnil, to by nešlo, že?

dokud budete šířit bludy, budu se vyjadřovat. Požádej admina, jestli ti tu tolik vadím.
Mě nevadí, že se vyjadřuješ. Jen mi vadí, že se neovládáš, to je celé. Ale co, jen jsem se zeptal. Pokračujme v tématu.

Není jediný takový tady, nebuďme selektivní.

gill

  • ****
  • 270
Re:Těžké OOP problémy
« Odpověď #159 kdy: 09. 11. 2019, 18:57:59 »
Citace od: Mirek Prýmek kdy 09. 11. 2019, 18:22:19
Citace od: gill kdy 09. 11. 2019, 18:12:33
když něco kritizuje, měl by to znát.
Mam pocit, ze si zase v necem nerozumime. Co presne mas pocit, ze kritizuju, a proc bych podle tebe mel znat implementacni detaily await v JS? S cim z toho, co jsem kde napsal, to ma souvislost? (Myslim ty otazky vazne, nejsou to zadne chytaky, fakt nerozumim tomu, kam miris)

už několikátá diskuze, ve které kritizuješ async/await. Zkus to nějaký čas používat a až potom hodnotit. Zrovna v Javascriptu to podle mě funguje docela dobře.

Re:Těžké OOP problémy
« Odpověď #160 kdy: 09. 11. 2019, 19:10:38 »
Citace od: gill kdy 09. 11. 2019, 18:57:59
už několikátá diskuze, ve které kritizuješ async/await. Zkus to nějaký čas používat a až potom hodnotit. Zrovna v Javascriptu to podle mě funguje docela dobře.
1. To neni odpoved na zadnou z polozenych otazek. Ok, beru to tak, ze nemas zajem reagovat na to, co pisu. Cili nemas zajem o diskusi. Beru na vedomi.

2. Kritizuju ten koncept jako takovy, zadna implementace na tom nemuze nic zmenit. To, ze "funguje dobre" snad znamena, ze A) kod neni rozpolcen na "modrou" a "cervenou" cast? B) Ze async se viralne nesiri kodem a ze starsiho kodu se neda pouzit? Ne, neznamena, ze. Protoze to je fundamentalni vlastnost toho konceptu. S JS, Pythonem ani jakymkoli jinym jazykem to nesouvisi.

Kdybys byval byl cetl, co pisu, a reagoval na to, co jsem napsal a ne na to, co jsem nenapsal, melo by ti to byt jasny, protoze jsem to zopakoval nekolikrat, zcela explicitne.

3. Jenom tak z pleziru, vis, co mam ted na druhym monitoru?


@pytest.mark.asyncio
async def test_multiple_gateways(service_config, multiple_gateways_sim,
                                 eso5_test1_mqtt, eos6_os_test1_mqtt,
                                 etm3_test1_mqtt):
     [...]


Cili, abych byl opet zcela explicitni: jo, zkusil jsem to. A prave proto me to tak sere.

-----

To je z me strany k tobe vse. Respektuju, ze o diskusi se mnou nemas zajem a taky se o ni nebudu dal pokouset.

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #161 kdy: 09. 11. 2019, 19:20:34 »
Citace od: Mirek Prýmek kdy 09. 11. 2019, 19:10:38
Citace od: gill kdy 09. 11. 2019, 18:57:59
už několikátá diskuze, ve které kritizuješ async/await. Zkus to nějaký čas používat a až potom hodnotit. Zrovna v Javascriptu to podle mě funguje docela dobře.
1. To neni odpoved na zadnou z polozenych otazek. Ok, beru to tak, ze nemas zajem reagovat na to, co pisu. Cili nemas zajem o diskusi. Beru na vedomi.

2. Kritizuju ten koncept jako takovy, zadna implementace na tom nemuze nic zmenit. To, ze "funguje dobre" snad znamena, ze A) kod neni rozpolcen na "modrou" a "cervenou" cast? B) Ze async se viralne nesiri kodem a ze starsiho kodu se neda pouzit? Ne, neznamena, ze. Protoze to je fundamentalni vlastnost toho konceptu. S JS, Pythonem ani jakymkoli jinym jazykem to nesouvisi.

Kdybys byval byl cetl, co pisu, a reagoval na to, co jsem napsal a ne na to, co jsem nenapsal, melo by ti to byt jasny, protoze jsem to zopakoval nekolikrat, zcela explicitne.

3. Jenom tak z pleziru, vis, co mam ted na druhym monitoru?


@pytest.mark.asyncio
async def test_multiple_gateways(service_config, multiple_gateways_sim,
                                 eso5_test1_mqtt, eos6_os_test1_mqtt,
                                 etm3_test1_mqtt):
     [...]


Cili, abych byl opet zcela explicitni: jo, zkusil jsem to. A prave proto me to tak sere.

-----

To je z me strany k tobe vse. Respektuju, ze o diskusi se mnou nemas zajem a taky se o ni nebudu dal pokouset.
Tvé oblíbené slovo je teď "virální"?

Když už jsme u té vitality, všimnul sis, že async/await je jen type lifting? Konkrétně T->Future<T>? A že to zobrazení je funktoriální? Nepřipomíná ti to něco?

Proč to píšu - zamýšlím se nad tím, zda lze skládání funkcí a vázání typeliftovaných funkcí udělat nějak transparentně, tj. mít něco jako nadoperátor s instancemi . a >=> (kdyby to bylo v Haskellu). Nevíš o nějakém jazyce/formalismu, kde by toto bylo ošetřené? Něco jako programmable . (místo ; - to už je provařené).

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #162 kdy: 09. 11. 2019, 19:22:33 »
Citace od: Mirek Prýmek kdy 09. 11. 2019, 19:10:38
Citace od: gill kdy 09. 11. 2019, 18:57:59
už několikátá diskuze, ve které kritizuješ async/await. Zkus to nějaký čas používat a až potom hodnotit. Zrovna v Javascriptu to podle mě funguje docela dobře.
1. To neni odpoved na zadnou z polozenych otazek. Ok, beru to tak, ze nemas zajem reagovat na to, co pisu. Cili nemas zajem o diskusi. Beru na vedomi.

2. Kritizuju ten koncept jako takovy, zadna implementace na tom nemuze nic zmenit. To, ze "funguje dobre" snad znamena, ze A) kod neni rozpolcen na "modrou" a "cervenou" cast? B) Ze async se viralne nesiri kodem a ze starsiho kodu se neda pouzit? Ne, neznamena, ze. Protoze to je fundamentalni vlastnost toho konceptu. S JS, Pythonem ani jakymkoli jinym jazykem to nesouvisi.

Kdybys byval byl cetl, co pisu, a reagoval na to, co jsem napsal a ne na to, co jsem nenapsal, melo by ti to byt jasny, protoze jsem to zopakoval nekolikrat, zcela explicitne.

3. Jenom tak z pleziru, vis, co mam ted na druhym monitoru?


@pytest.mark.asyncio
async def test_multiple_gateways(service_config, multiple_gateways_sim,
                                 eso5_test1_mqtt, eos6_os_test1_mqtt,
                                 etm3_test1_mqtt):
     [...]


Cili, abych byl opet zcela explicitni: jo, zkusil jsem to. A prave proto me to tak sere.

-----

To je z me strany k tobe vse. Respektuju, ze o diskusi se mnou nemas zajem a taky se o ni nebudu dal pokouset.
P.S. Ono by to tedy byla spíše "programmable" aplikace funkce, tedy generické apply, to už je asi snazší si představit.

Re:Těžké OOP problémy
« Odpověď #163 kdy: 09. 11. 2019, 19:33:24 »
Citace od: Idris kdy 09. 11. 2019, 19:20:34
Tvé oblíbené slovo je teď "virální"?
Opsal jsem ho od tebe, je to dobre vystizny a srozumitelny.

Citace od: Idris kdy 09. 11. 2019, 19:20:34
Když už jsme u té vitality, všimnul sis, že async/await je jen type lifting? Konkrétně T->Future<T>? A že to zobrazení je funktoriální? Nepřipomíná ti to něco?
Citace od: Mirek Prýmek kdy 09. 11. 2019, 16:41:35
jako haskellista poznáš, že vlastně jenom zbytečně zdlouhavě popisuje monády

Citace od: Idris kdy 09. 11. 2019, 19:20:34
Nevíš o nějakém jazyce/formalismu, kde by toto bylo ošetřené?
To fakt nevim :)

Ink

  • *****
  • 736
Re:Těžké OOP problémy
« Odpověď #164 kdy: 09. 11. 2019, 20:02:35 »
Citace od: Mirek Prýmek kdy 09. 11. 2019, 14:20:15
Že je Rust "přepis C++"? No a? To je Go taky a autoři zvolili ("rozvolněné") CSP.

Já jsem si vždycky myslel, že Go je spíš snaha o evoluci C - něco jako Java, ale od lidí, kteří nesnášejí OOP, ale sdílejí názor, že jazyk má být "hloupý" (svazovat programátora v maximální snesitelné míře).

Citace od: Mirek Prýmek kdy 09. 11. 2019, 14:20:15
Ty důvody, proč zvolili await, můžou být různé, klidně i netechnické - třeba to, že async/await prostě zná a chápe (ať už to znamená cokoli) víc lidí.

Určitě.

Citace od: Mirek Prýmek kdy 09. 11. 2019, 14:20:15
Nebo by důvod mohl být třeba ten, že async/await se asi dá implementovat tak, aby byl zaručeně korektní - protože má menší míru volnosti a tím i větší kontrolu nad tím, co se spustí kdy. U CSP (i toho "rozvolněného" ve stylu Go) si člověk musí víc lámat hlavu třeba s tím, v jakém okamžiku má kontexty přepínat. Rust moc neznám, tím míň nějaký jeho internals, takže třeba autoři došli k názoru, že se jim tohle prostě nechce řešit (nebo to dost dobře ani nejde). To nevím. Ale je mi to líto, že se vydali touhle cestou.

Snad jsou diskuse ohledně použití jiného podobného modelu. Nic moc rozumného jsem nenašel, pořád předpokládám, že základ je v tom, že to do filosofie a vnitřností Rustu nezapadá.