Co si myslíte o OOP?

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1305 kdy: 24. 01. 2019, 14:35:52 »
Dneska je programovani zhruba na urovni pred Kopernikem, takze se od tech majoritnich cirkevnich nazoru distancuju.
Jak myslíš, no. Já bych si spíš vsadil, že to ještě v průběhu života přehodnotíš, ale třeba bych prohrál :)
Jakmile vidis, ze to na co lidi pouzivaji tisice az miliony radku kodu jde pouzit par set nebo mozna nizkych tisic, a udelat to zaroven jednodussi, rychlejsi, citelnejsi, tak prehodnotis.

Jestli v programovani existuje silver bullet, pak bych bych vsadil hodne na to, ze to bude jednoduchost (simplicity).
Presne na tohle je dobra vyssi abstrakce, kterou nazyvas nadbytecny syntakticky cukr. Porad to vnimam tak, ze si protirecis.

Az vyresis tuhle kontradikci, naleznes nirvanu.

Syntakticky cukr je derava abstrakce. Dostanes jednu abstrakci dnes, ale uz z ni zitra nevytvoris jeste vyssi abstrakci. Pro nederavy abstrakce potrebujes vysoce kompozitabilni stavebni bloky, napr. nekdo zminil nor nebo mov nebo funkce. Ty slozis do vyssich abstraktnich bloku, ty jeste do vyssich, atd.
Tridy a objekty jsou derava abstrakce. Je to videt kdyz zjistis ze najednou potrebujes metatridy a tvuj jazyk je nema. Smalltalk tridy mozna deravy nejsou, ale ve vetsine jazyku je to abstraktni dira.
Nerozumim pojmu derava abstrakce?
Jak vis co bude zitra?
Nad objekty jako abstrakce imho stoji komponenty. Ale neni nutne aby nad kazdou abstrakci byla jeste vyssi, resp. aby kazda abstrakce byla soucasti ci stavebnim kamenem vyssi abstrakce.
Metatrida je spise implementacni detail, druh tridy za nejakym ucelem, podobne jako je treba abstraktni trida, nez nova vyssi abstrakce. Python manipulaci s metatridami umoznuje, ale myslim ze jsem toho nikdy nevyuzil, takze se nedivim, ze v jinych jazycich nejsou k dispozici. Pokud by to byl problem, je dusledkem nedostatecne implementace, nikoliv chybne abstrakce.
V cem je objekt derava abstrakce?
Trida je derava abstrakce ale smalltalk trida derava neni? Zase si protirecis.

Me tridy nezajimaji, ja je nepouzivam a nejsem na ne expert. Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.


v

Re:Co si myslíte o OOP?
« Odpověď #1306 kdy: 24. 01. 2019, 14:51:07 »
chybí mi ta abstrakce vlákna

to by mělo vypadat jak?
jako normální vlákno
Kód: [Vybrat]
forkIO $ forever $ do
  writeChan tx "hello"
  response <- readChan rx
  print response
a není poznat, že to není plnotučné vlákno a místo kanálů může být třeba socket nebo stdin

Kit

Re:Co si myslíte o OOP?
« Odpověď #1307 kdy: 24. 01. 2019, 14:54:36 »
Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.

Proč by měly mít třídy možnost dědit od více rodičů? Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?

Re:Co si myslíte o OOP?
« Odpověď #1308 kdy: 24. 01. 2019, 15:02:12 »
Node.js neni univerzalni, je orientovan na web.
Webem to možná začalo, dneska už je to stejně univerzální platforma jako Python.

A i kdyby: devět let, to je v IT celá věčnost.

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1309 kdy: 24. 01. 2019, 15:07:35 »
Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.

Proč by měly mít třídy možnost dědit od více rodičů? Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?

Muzes mit nekolik Mixin trid a chces je ppuzit vsechny napriklad.

Ano muzes tady pouzit kompozici misto dedicnosti. Tim se vracime k tomu, ze muzes pouzit proste dict, protoze to vyjde nastejno.

Trida neco neumoznuje (derava abstrakce), ale potrebuju toho stejne dosahnout. Musim to ochcat pres kompozici a najednou mam dva zpusoby jak neco resit. Proc nevyhodit ten deravej zpusob a nenechat jen kompozici.


operator

Re:Co si myslíte o OOP?
« Odpověď #1310 kdy: 24. 01. 2019, 15:18:12 »
Dneska je programovani zhruba na urovni pred Kopernikem, takze se od tech majoritnich cirkevnich nazoru distancuju.
Jak myslíš, no. Já bych si spíš vsadil, že to ještě v průběhu života přehodnotíš, ale třeba bych prohrál :)
Jakmile vidis, ze to na co lidi pouzivaji tisice az miliony radku kodu jde pouzit par set nebo mozna nizkych tisic, a udelat to zaroven jednodussi, rychlejsi, citelnejsi, tak prehodnotis.

Jestli v programovani existuje silver bullet, pak bych bych vsadil hodne na to, ze to bude jednoduchost (simplicity).
Presne na tohle je dobra vyssi abstrakce, kterou nazyvas nadbytecny syntakticky cukr. Porad to vnimam tak, ze si protirecis.

Az vyresis tuhle kontradikci, naleznes nirvanu.

Syntakticky cukr je derava abstrakce. Dostanes jednu abstrakci dnes, ale uz z ni zitra nevytvoris jeste vyssi abstrakci. Pro nederavy abstrakce potrebujes vysoce kompozitabilni stavebni bloky, napr. nekdo zminil nor nebo mov nebo funkce. Ty slozis do vyssich abstraktnich bloku, ty jeste do vyssich, atd.
Tridy a objekty jsou derava abstrakce. Je to videt kdyz zjistis ze najednou potrebujes metatridy a tvuj jazyk je nema. Smalltalk tridy mozna deravy nejsou, ale ve vetsine jazyku je to abstraktni dira.
Nerozumim pojmu derava abstrakce?
Jak vis co bude zitra?
Nad objekty jako abstrakce imho stoji komponenty. Ale neni nutne aby nad kazdou abstrakci byla jeste vyssi, resp. aby kazda abstrakce byla soucasti ci stavebnim kamenem vyssi abstrakce.
Metatrida je spise implementacni detail, druh tridy za nejakym ucelem, podobne jako je treba abstraktni trida, nez nova vyssi abstrakce. Python manipulaci s metatridami umoznuje, ale myslim ze jsem toho nikdy nevyuzil, takze se nedivim, ze v jinych jazycich nejsou k dispozici. Pokud by to byl problem, je dusledkem nedostatecne implementace, nikoliv chybne abstrakce.
V cem je objekt derava abstrakce?
Trida je derava abstrakce ale smalltalk trida derava neni? Zase si protirecis.

Me tridy nezajimaji, ja je nepouzivam a nejsem na ne expert. Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.
Tridy jako abstrakce vicenasobnou dedicnost umoznuji. Ze to nektere jazyky neimplementuji neni chyba abstrakce.

Tvrdil jsi, ze tridy a objekty jsou derava abstrakce. Cukr a kafe abstrakce neni.
Ok, derava abstrakce je takova, ktera neslouzi jako zaklad vyssi abstrakce. V tom pripade na nich neni nic spatneho.
Abstrakce tvori kazdy programator, ktery pouziva tridy. Takze nevim jestli ty jo, kdyz je nepouzivas, ja ale ano.

operator

Re:Co si myslíte o OOP?
« Odpověď #1311 kdy: 24. 01. 2019, 15:20:37 »
Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.
Proč by měly mít třídy možnost dědit od více rodičů? Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?
To se hodi, protoze takovy potomek muze nahradit vic ruznych predku soucasne.

operator

Re:Co si myslíte o OOP?
« Odpověď #1312 kdy: 24. 01. 2019, 15:22:29 »
Node.js neni univerzalni, je orientovan na web.
Webem to možná začalo, dneska už je to stejně univerzální platforma jako Python.
A i kdyby: devět let, to je v IT celá věčnost.
Ok, podivam se na dostupne knihovny, treba podporu midi komunikace.

operator

Re:Co si myslíte o OOP?
« Odpověď #1313 kdy: 24. 01. 2019, 15:25:08 »
Ano muzes tady pouzit kompozici misto dedicnosti. Tim se vracime k tomu, ze muzes pouzit proste dict, protoze to vyjde nastejno.

Trida neco neumoznuje (derava abstrakce), ale potrebuju toho stejne dosahnout. Musim to ochcat pres kompozici a najednou mam dva zpusoby jak neco resit. Proc nevyhodit ten deravej zpusob a nenechat jen kompozici.
Tohle tvrzeni jsi neprokazal. Implementuj ukazku, co jsem ti predlozil, pomoci dictu a uvidime, jestli to vyjde na stejno. Ja tvrdim ze ne. Ale treba mi neco unika a dokazes to.

Kit

Re:Co si myslíte o OOP?
« Odpověď #1314 kdy: 24. 01. 2019, 16:04:44 »
Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.

Proč by měly mít třídy možnost dědit od více rodičů? Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?

Muzes mit nekolik Mixin trid a chces je ppuzit vsechny napriklad.

Ano muzes tady pouzit kompozici misto dedicnosti. Tim se vracime k tomu, ze muzes pouzit proste dict, protoze to vyjde nastejno.

Trida neco neumoznuje (derava abstrakce), ale potrebuju toho stejne dosahnout. Musim to ochcat pres kompozici a najednou mam dva zpusoby jak neco resit. Proc nevyhodit ten deravej zpusob a nenechat jen kompozici.

Vývojář by se měl především zamyslet nad tím, zda takové mixiny nejsou logickým nesmyslem. Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?

Kit

Re:Co si myslíte o OOP?
« Odpověď #1315 kdy: 24. 01. 2019, 16:10:03 »
Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.
Proč by měly mít třídy možnost dědit od více rodičů? Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?
To se hodi, protoze takovy potomek muze nahradit vic ruznych predku soucasne.

Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?

operator

Re:Co si myslíte o OOP?
« Odpověď #1316 kdy: 24. 01. 2019, 16:10:14 »
Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.

Proč by měly mít třídy možnost dědit od více rodičů? Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?

Muzes mit nekolik Mixin trid a chces je ppuzit vsechny napriklad.

Ano muzes tady pouzit kompozici misto dedicnosti. Tim se vracime k tomu, ze muzes pouzit proste dict, protoze to vyjde nastejno.

Trida neco neumoznuje (derava abstrakce), ale potrebuju toho stejne dosahnout. Musim to ochcat pres kompozici a najednou mam dva zpusoby jak neco resit. Proc nevyhodit ten deravej zpusob a nenechat jen kompozici.

Vývojář by se měl především zamyslet nad tím, zda takové mixiny nejsou logickým nesmyslem. Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?
Mas tridu Plavidlo a Vozidlo a potrebujes vytvorit tridu Obojzivelnik(Vozidlo, Plavidlo).

operator

Re:Co si myslíte o OOP?
« Odpověď #1317 kdy: 24. 01. 2019, 16:20:44 »
Node.js neni univerzalni, je orientovan na web.
Webem to možná začalo, dneska už je to stejně univerzální platforma jako Python.
A i kdyby: devět let, to je v IT celá věčnost.
Ok, podivam se na dostupne knihovny, treba podporu midi komunikace.
Takze neco na hrani ma, ale asi to nebude pouzitelny kvuli latenci: https://stackoverflow.com/questions/44741879/node-midi-i-o-module-has-a-slight-latency Ze by prave kvuli async io? Jde to vypnout?

Kit

Re:Co si myslíte o OOP?
« Odpověď #1318 kdy: 24. 01. 2019, 16:30:28 »
Vývojář by se měl především zamyslet nad tím, zda takové mixiny nejsou logickým nesmyslem. Mohl bys uvést nějaký příklad, kde by to mohlo být k něčemu dobré?
Mas tridu Plavidlo a Vozidlo a potrebujes vytvorit tridu Obojzivelnik(Vozidlo, Plavidlo).

Obojživelník je buď Vozidlo, které umí i plavat, anebo Plavidlo, které umí jezdit po silnici. V obou případech pouze kompozicí doplním požadovanou vlastnost.

Ber v potaz, že LSP tohle zakazuje, včetně tvého požadavku. Obojživelník, Vozidlo i Plavidlo jsou DopravníProstředky.

Kadet

Re:Co si myslíte o OOP?
« Odpověď #1319 kdy: 24. 01. 2019, 16:31:56 »
Dneska je programovani zhruba na urovni pred Kopernikem, takze se od tech majoritnich cirkevnich nazoru distancuju.
Jak myslíš, no. Já bych si spíš vsadil, že to ještě v průběhu života přehodnotíš, ale třeba bych prohrál :)
Jakmile vidis, ze to na co lidi pouzivaji tisice az miliony radku kodu jde pouzit par set nebo mozna nizkych tisic, a udelat to zaroven jednodussi, rychlejsi, citelnejsi, tak prehodnotis.

Jestli v programovani existuje silver bullet, pak bych bych vsadil hodne na to, ze to bude jednoduchost (simplicity).
Presne na tohle je dobra vyssi abstrakce, kterou nazyvas nadbytecny syntakticky cukr. Porad to vnimam tak, ze si protirecis.

Az vyresis tuhle kontradikci, naleznes nirvanu.

Syntakticky cukr je derava abstrakce. Dostanes jednu abstrakci dnes, ale uz z ni zitra nevytvoris jeste vyssi abstrakci. Pro nederavy abstrakce potrebujes vysoce kompozitabilni stavebni bloky, napr. nekdo zminil nor nebo mov nebo funkce. Ty slozis do vyssich abstraktnich bloku, ty jeste do vyssich, atd.
Tridy a objekty jsou derava abstrakce. Je to videt kdyz zjistis ze najednou potrebujes metatridy a tvuj jazyk je nema. Smalltalk tridy mozna deravy nejsou, ale ve vetsine jazyku je to abstraktni dira.
Nerozumim pojmu derava abstrakce?
Jak vis co bude zitra?
Nad objekty jako abstrakce imho stoji komponenty. Ale neni nutne aby nad kazdou abstrakci byla jeste vyssi, resp. aby kazda abstrakce byla soucasti ci stavebnim kamenem vyssi abstrakce.
Metatrida je spise implementacni detail, druh tridy za nejakym ucelem, podobne jako je treba abstraktni trida, nez nova vyssi abstrakce. Python manipulaci s metatridami umoznuje, ale myslim ze jsem toho nikdy nevyuzil, takze se nedivim, ze v jinych jazycich nejsou k dispozici. Pokud by to byl problem, je dusledkem nedostatecne implementace, nikoliv chybne abstrakce.
V cem je objekt derava abstrakce?
Trida je derava abstrakce ale smalltalk trida derava neni? Zase si protirecis.

Me tridy nezajimaji, ja je nepouzivam a nejsem na ne expert. Deravy jsou protoze treba nezvladnou dedit z vic rodicu. Nektery jo, protoze maji lrpsi implementaci coz je sada hacku a uz se to nabaluje.

Ja jsem tvrdil ze cukr je derava abstrakce, tridy  vem cert.

Derava abstrakce je takova ze ktery neposkladas jeste vyssi abstrakci. Ne vsechny pripady, protoze tam je dira. Treba te to nezajima protoze matlas kod a pouzivas k tomu abstrakce od jinych lidi. Lidi co ale tvori abstrakce hodne zajima jestli k tomu maji dostatecny nastroje.
Tridy jako abstrakce vicenasobnou dedicnost umoznuji. Ze to nektere jazyky neimplementuji neni chyba abstrakce.

Tvrdil jsi, ze tridy a objekty jsou derava abstrakce. Cukr a kafe abstrakce neni.
Ok, derava abstrakce je takova, ktera neslouzi jako zaklad vyssi abstrakce. V tom pripade na nich neni nic spatneho.
Abstrakce tvori kazdy programator, ktery pouziva tridy. Takze nevim jestli ty jo, kdyz je nepouzivas, ja ale ano.

Pokud mas teda jazyk postavenej na neuplny implementaci tridy pak je ten jazyk deravej v abstrakcich. Zapomen na to jestli jsem neco tvrdil o deravych tridach protoze jsme se nikdy neshodli na tom jestli se bavime o implementaci nebo koncepci. Tridu jako abstrakci muzu implementovat pouhym dictem metod a seznamem jak jsem zminil. Tvrdim akorat ze cukr je deravy a tvrdim ze vzdy.
O tridach a objektech tvrdim ze existuje jednodussi mechanismus na kterym zalozit bazi jazyka - napr. prototypy. Clovek pak v implementaci nemusi resit rozdil mezi objektem a tridou, pouze mezi built-in a derivovanym objektem.