Co si myslíte o OOP?

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1050 kdy: 18. 01. 2019, 13:25:44 »
Kontinuace je 'zbytek vypoctu'.
Je to přesně naopak, kontinuace je funkce reprezentující nějaký výpočet, které se předá “zbytek výpočtu” ve formě funkce. Z Wikipedie bys mohl pochopit aspoň převod konstanty na příslušnou kontinuaci.

Synku, ja s timhle pracuju, tak snad vim, o cem mluvim.

Ty zrejme mluvis o funkci callcc, neboli call-with-current-continuation, ktera dostane parametr K, coz je kontinuace, neboli zbytek vypoctu.


BaldSlattery

Re:Co si myslíte o OOP?
« Odpověď #1051 kdy: 18. 01. 2019, 13:50:40 »
Kontinuace je 'zbytek vypoctu'.
Je to přesně naopak, kontinuace je funkce reprezentující nějaký výpočet, které se předá “zbytek výpočtu” ve formě funkce. Z Wikipedie bys mohl pochopit aspoň převod konstanty na příslušnou kontinuaci.

Synku, ja s timhle pracuju, tak snad vim, o cem mluvim.

Ty zrejme mluvis o funkci callcc, neboli call-with-current-continuation, ktera dostane parametr K, coz je kontinuace, neboli zbytek vypoctu.
Vůbec nevíš, která bije. Jestli s tím “pracuješ” v bakalářce, tak ji neobhájíš ani ne VŠE.

P.S. Call/cc je něco zcela jiného.

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1052 kdy: 19. 01. 2019, 00:22:03 »
Kontinuace je 'zbytek vypoctu'.
Je to přesně naopak, kontinuace je funkce reprezentující nějaký výpočet, které se předá “zbytek výpočtu” ve formě funkce. Z Wikipedie bys mohl pochopit aspoň převod konstanty na příslušnou kontinuaci.

Synku, ja s timhle pracuju, tak snad vim, o cem mluvim.

Ty zrejme mluvis o funkci callcc, neboli call-with-current-continuation, ktera dostane parametr K, coz je kontinuace, neboli zbytek vypoctu.
Vůbec nevíš, která bije. Jestli s tím “pracuješ” v bakalářce, tak ji neobhájíš ani ne VŠE.

P.S. Call/cc je něco zcela jiného.

Mas neco cim bys prispel do diskuse nebo tady chces jen dal trollovat?

Jestli chces pokracovat tak predstav svuj argument k vyvraceni a neschovavej se za nejaky hadanky.

Inkvizitor

Re:Co si myslíte o OOP?
« Odpověď #1053 kdy: 19. 01. 2019, 10:37:28 »
Chlapi (a roby), mám zcela nový podnět do diskuse. Když odmyslím Lisp s jeho objektovou nadstavbou, existuje v (skutečném) OOP světě něco jako makra? Pokud ano, jak moc se používají a pokud ne, tak proč ne?

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Co si myslíte o OOP?
« Odpověď #1054 kdy: 19. 01. 2019, 10:58:11 »
Chlapi (a roby), mám zcela nový podnět do diskuse. Když odmyslím Lisp s jeho objektovou nadstavbou, existuje v (skutečném) OOP světě něco jako makra? Pokud ano, jak moc se používají a pokud ne, tak proč ne?

v Crystalu se používají makra jako náhrada za runtime metaprogramování a introspekci. V dynamických jazycích jako python a ruby nejsou makra moc potřeba.

https://crystal-lang.org/

Crystal se snaží být statcké Ruby.


gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Co si myslíte o OOP?
« Odpověď #1055 kdy: 19. 01. 2019, 10:59:58 »
Kontinuace je 'zbytek vypoctu'.
Je to přesně naopak, kontinuace je funkce reprezentující nějaký výpočet, které se předá “zbytek výpočtu” ve formě funkce. Z Wikipedie bys mohl pochopit aspoň převod konstanty na příslušnou kontinuaci.

Synku, ja s timhle pracuju, tak snad vim, o cem mluvim.

Ty zrejme mluvis o funkci callcc, neboli call-with-current-continuation, ktera dostane parametr K, coz je kontinuace, neboli zbytek vypoctu.
Vůbec nevíš, která bije. Jestli s tím “pracuješ” v bakalářce, tak ji neobhájíš ani ne VŠE.

P.S. Call/cc je něco zcela jiného.

Mas neco cim bys prispel do diskuse nebo tady chces jen dal trollovat?

Jestli chces pokracovat tak predstav svuj argument k vyvraceni a neschovavej se za nejaky hadanky.

k čemu tedy call/cc používáš?

Kit

Re:Co si myslíte o OOP?
« Odpověď #1056 kdy: 19. 01. 2019, 11:26:49 »
Chlapi (a roby), mám zcela nový podnět do diskuse. Když odmyslím Lisp s jeho objektovou nadstavbou, existuje v (skutečném) OOP světě něco jako makra? Pokud ano, jak moc se používají a pokud ne, tak proč ne?

Možná by se za nástupce maker daly označit traits a templates. Nejsem však příznivcem ani jednoho z nich, protože to zhoršuje čitelnost. V OOP se dá dosáhnout znovupoužitelnosti i bez nich.

Re:Co si myslíte o OOP?
« Odpověď #1057 kdy: 19. 01. 2019, 12:04:22 »
V dynamických jazycích jako python a ruby nejsou makra moc potřeba.
V Ruby se makra (a DSLka) používají až tak extenzivně, že to dělá kód totálně nečitelný. Proto Ruby nemám rád - většina Ruby kódu, co jsem viděl, na mě působila jako že hlavní účel kódu je co největší onanie a ne srozumitelnost a čitelnost.

V Pythonu makra nejsou a proto tam taky DSLka prakticky dělat nejde. Jako skoro u všeho, python má "poor man's" variantu, která je pro některé use casy jakžtakž ucházející náhradou - dekorátory.

Re:Co si myslíte o OOP?
« Odpověď #1058 kdy: 19. 01. 2019, 12:13:07 »
Chlapi (a roby), mám zcela nový podnět do diskuse. Když odmyslím Lisp s jeho objektovou nadstavbou, existuje v (skutečném) OOP světě něco jako makra? Pokud ano, jak moc se používají a pokud ne, tak proč ne?
Já bych řekl, že principielně jsou to ortogonální koncepty. Makra slouží k automatickému generování kódu z dat - tj. jsou někde na úrovni "textu programu" (v případě hloupých C maker doslovně, v případě plnotučných na úrovni AST). OOP je o tom, jak modelovat problém, jak program strukturovat. Takže je to spíš o nějakou tu úroveň výš.

Čistě prakticky je ale pravda, že v dobrém OOP jazyce makra moc nevyužiješ, protože máš prostě jiné prostředky pro dosažení podobných cílů. IMHO makra nejvíc využiješ ve statickém, kompilovaném jazyce, který se hodně motá kolem funkcí.

P.S. a teď je přesně čas na další Go rant: "go generate"? Ve 21. století? To si snad děláte pr.del, ne!?!

Kit

Re:Co si myslíte o OOP?
« Odpověď #1059 kdy: 19. 01. 2019, 13:56:14 »
Chlapi (a roby), mám zcela nový podnět do diskuse. Když odmyslím Lisp s jeho objektovou nadstavbou, existuje v (skutečném) OOP světě něco jako makra? Pokud ano, jak moc se používají a pokud ne, tak proč ne?
Čistě prakticky je ale pravda, že v dobrém OOP jazyce makra moc nevyužiješ, protože máš prostě jiné prostředky pro dosažení podobných cílů. IMHO makra nejvíc využiješ ve statickém, kompilovaném jazyce, který se hodně motá kolem funkcí.

Na tom něco bude, protože občas používám m4, ale kdykoli mě napadlo, že bych s ním generoval třeba PHP, tak jsem si to velmi rychle rozmyslel, protože by to užitek nepřineslo. Je fakt, že ve Vimu používám hodně (i přetížených) maker pro generování kódu, ovšem to je jiná kapitola, protože následně neupravuji zdroj, ale vygenerovaný stub.

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1060 kdy: 19. 01. 2019, 13:56:22 »
Makro je funkce mapujici na AST. Pokud v tom pripade jazyk povoluje pracovat se stavebnimi bloky toho jazyka, pak ma makra. Otazka je o citelnosti. Cim bliz je reprezentace v textu podobna reprezentaci v ast, tim vypada makro citelneji.

Re:Co si myslíte o OOP?
« Odpověď #1061 kdy: 19. 01. 2019, 14:01:37 »
Makro je funkce mapujici na AST.
To je jenom jeden význam slova "makro". Makrům v C taky říkáme "makra" a s AST nepracují.

Cim bliz je reprezentace v textu podobna reprezentaci v ast, tim vypada makro citelneji.
To není nutně pravda. Např. v Elixiru je AST poměrně komplikované, ale moc to nevadí, protože napřímo s ním skoro nikdy nepracuješ. Používáš totiž quote (čili normální, bežný kód) a jenom tam občas třeba vpašuješ nějaký parametr nebo tak něco.
« Poslední změna: 19. 01. 2019, 14:05:55 od Mirek Prýmek »

Inkvizitor

Re:Co si myslíte o OOP?
« Odpověď #1062 kdy: 19. 01. 2019, 16:46:33 »
Chlapi (a roby), mám zcela nový podnět do diskuse. Když odmyslím Lisp s jeho objektovou nadstavbou, existuje v (skutečném) OOP světě něco jako makra? Pokud ano, jak moc se používají a pokud ne, tak proč ne?
Čistě prakticky je ale pravda, že v dobrém OOP jazyce makra moc nevyužiješ, protože máš prostě jiné prostředky pro dosažení podobných cílů. IMHO makra nejvíc využiješ ve statickém, kompilovaném jazyce, který se hodně motá kolem funkcí.

No makro umožňuje psát věci jinak, řekl bych líp. Třeba v Rustu println! a spol., nic lepšího jsem zatím pro formátování řetězců neviděl. Ten formát napíšu hezky čitelně a úsporně, ale zároveň se mi zkontroluje při překladu, že tam mám parametrů přesný počet, že implementují potřebný trait atd. Jelikož pozdní vazba je tak super, šlo by v OOP minimálně počítat ty parametry, počet by měl sedět i přes existenci pozdní vazby.

Re:Co si myslíte o OOP?
« Odpověď #1063 kdy: 19. 01. 2019, 17:44:06 »
ale zároveň se mi zkontroluje při překladu, že tam mám parametrů přesný počet, že implementují potřebný trait atd. Jelikož pozdní vazba je tak super, šlo by v OOP minimálně počítat ty parametry, počet by měl sedět i přes existenci pozdní vazby.
Ani na jedno z toho nepotřebuješ makra.

Kit

Re:Co si myslíte o OOP?
« Odpověď #1064 kdy: 19. 01. 2019, 18:17:09 »
No makro umožňuje psát věci jinak, řekl bych líp. Třeba v Rustu println! a spol., nic lepšího jsem zatím pro formátování řetězců neviděl. Ten formát napíšu hezky čitelně a úsporně, ale zároveň se mi zkontroluje při překladu, že tam mám parametrů přesný počet, že implementují potřebný trait atd. Jelikož pozdní vazba je tak super, šlo by v OOP minimálně počítat ty parametry, počet by měl sedět i přes existenci pozdní vazby.

Nahlédl jsem do manuálu Rustu a zjistil jsem, že zmíněný println! funguje stejně jako print v Pythonu. Ani PHP nezůstává nijak pozadu a také na to nepotřebuje makra. Něco mi snad uniklo?