Těžké OOP problémy

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #150 kdy: 09. 11. 2019, 18:00:55 »
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
Kód: [Vybrat]
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.

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).
Kód: [Vybrat]
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
« Poslední změna: 09. 11. 2019, 18:06:24 od gill »


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Těžké OOP problémy
« Odpověď #151 kdy: 09. 11. 2019, 18:09:57 »
mohl bys to zvládnout.

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

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #152 kdy: 09. 11. 2019, 18:12:33 »
mohl bys to zvládnout.

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

když něco kritizuje, měl by to znát.
« Poslední změna: 09. 11. 2019, 18:14:44 od gill »

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Těžké OOP problémy
« Odpověď #153 kdy: 09. 11. 2019, 18:17:57 »
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 »
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)
« Poslední změna: 09. 11. 2019, 18:29:27 od Mirek Prýmek »


gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #155 kdy: 09. 11. 2019, 18:24:51 »
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

  • *****
  • 1 981
    • Zobrazit profil
Re:Těžké OOP problémy
« Odpověď #156 kdy: 09. 11. 2019, 18:30:10 »
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 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #159 kdy: 09. 11. 2019, 18:57:59 »
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 »
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?

Kód: [Vybrat]
@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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #161 kdy: 09. 11. 2019, 19:20:34 »
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?

Kód: [Vybrat]
@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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #162 kdy: 09. 11. 2019, 19:22:33 »
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?

Kód: [Vybrat]
@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 »
Tvé oblíbené slovo je teď “virální”?
Opsal jsem ho od tebe, je to dobre vystizny a srozumitelny.

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?
jako haskellista poznáš, že vlastně jenom zbytečně zdlouhavě popisuje monády

Nevíš o nějakém jazyce/formalismu, kde by toto bylo ošetřené?
To fakt nevim :)

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #164 kdy: 09. 11. 2019, 20:02:35 »
Ž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).

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ě.

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á.