Dědičnost dnes

javaman ()

Re:Dědičnost dnes
« Odpověď #780 kdy: 01. 02. 2017, 13:41:15 »
Citace od: gll kdy 01. 02. 2017, 13:35:13
Citace od: zboj kdy 01. 02. 2017, 13:21:57
To už je každého problém, jestli si to zjistí. V nejhorším vymyslí kolo, ale rozumný člověk bude vynakládat síly jen na něco nového.

Nevím z kterého oboru máte to Phd., ale informatika to zcela jistě není. To co tu plácáte jsou nesmysly.

+1


zboj

  • *****
  • 1 507
Re:Dědičnost dnes
« Odpověď #781 kdy: 01. 02. 2017, 13:54:17 »
Citace od: gll kdy 01. 02. 2017, 13:41:02
Citace od: zboj kdy 01. 02. 2017, 13:38:16
Citace od: gll kdy 01. 02. 2017, 13:35:13
Citace od: zboj kdy 01. 02. 2017, 13:21:57
To už je každého problém, jestli si to zjistí. V nejhorším vymyslí kolo, ale rozumný člověk bude vynakládat síly jen na něco nového.

Nové staví na starém. Alespoň v tvrdých vědách.  Nevím z kterého oboru máte to Phd., ale informatika to zcela jistě není. To co tu plácáte jsou nesmysly. Neznáte rozdíl mezi složitostí a vyčíslitelností.
Vážně?

Citace od: zboj kdy 31. 01. 2017, 15:56:05
Z pohledu vyčíslitelnosti to není (obecně) pravda.
.......
Například Dijkstrův grafový algoritmus (abych byl konkrétní) je v FP stejně efektivní jako v OOP.
A? Jistě, šlo by napsat i složitost, vyčíslitelnost je ovšem obecnější pojem, který mi zde přišel vhodnější, když už se bavíme o FP (tj. o funkcích) a jejich algoritmické charakteristice. Hádat se o slovíčka vážně nehodlám.

javaman ()

Re:Dědičnost dnes
« Odpověď #782 kdy: 01. 02. 2017, 13:59:33 »
Citace od: zboj kdy 01. 02. 2017, 13:54:17
Hádat se o slovíčka vážně nehodlám.

Rly?

gll

Re:Dědičnost dnes
« Odpověď #783 kdy: 01. 02. 2017, 13:59:51 »
Citace od: zboj kdy 01. 02. 2017, 13:54:17
Citace od: gll kdy 01. 02. 2017, 13:41:02
Citace od: zboj kdy 01. 02. 2017, 13:38:16
Citace od: gll kdy 01. 02. 2017, 13:35:13
Citace od: zboj kdy 01. 02. 2017, 13:21:57
To už je každého problém, jestli si to zjistí. V nejhorším vymyslí kolo, ale rozumný člověk bude vynakládat síly jen na něco nového.

Nové staví na starém. Alespoň v tvrdých vědách.  Nevím z kterého oboru máte to Phd., ale informatika to zcela jistě není. To co tu plácáte jsou nesmysly. Neznáte rozdíl mezi složitostí a vyčíslitelností.
Vážně?

Citace od: zboj kdy 31. 01. 2017, 15:56:05
Z pohledu vyčíslitelnosti to není (obecně) pravda.
.......
Například Dijkstrův grafový algoritmus (abych byl konkrétní) je v FP stejně efektivní jako v OOP.
A? Jistě, šlo by napsat i složitost, vyčíslitelnost je ovšem obecnější pojem, který mi zde přišel vhodnější, když už se bavíme o FP (tj. o funkcích) a jejich algoritmické charakteristice. Hádat se o slovíčka vážně nehodlám.

Nechci se hádat o slovíčkách. Chci vidět to stejně efektivní FP implementaci.

Kiwi

Re:Dědičnost dnes
« Odpověď #784 kdy: 01. 02. 2017, 14:03:02 »
Citace od: zboj kdy 01. 02. 2017, 13:54:17
A? Jistě, šlo by napsat i složitost, vyčíslitelnost je ovšem obecnější pojem, který mi zde přišel vhodnější, když už se bavíme o FP (tj. o funkcích) a jejich algoritmické charakteristice. Hádat se o slovíčka vážně nehodlám.

+ Čili typická zrcadlová perverze.
- Inverze.
+ Prosím?
- Inverze!
+ Nebo inverze, ano...


JS

Re:Dědičnost dnes
« Odpověď #785 kdy: 01. 02. 2017, 18:49:04 »
Citace od: Kamil Podlešák kdy 01. 02. 2017, 11:00:49
Já bych prostě řekl že cílem může být odbourat zbytečnou byrokracii, ale ne byrokracii úplně (tak by tomu bylo v ideálním světě, kde programátoři vytvářejí a skládají matematické abstrakce).

Ja beru slovo byrokracie za pejorativni, takze samozrejme zbytecnou, nepejorativni vyraz by byl asi "proces".

Kazdopadne, to mi pripomina jednu z mych jinych vyhrad vuci navrhovym vzorum, ktera je, ze i konceptualne je to pomylena myslenka. V podstate se ocekava, ze programatori budou ten vzor sami rozeznavat (a pripadne aplikovat) v kodu. Ale to je hloupe, to co chces je naucit ten vzor pocitac (definovat urcitou abstrakci), aby to lide delat nemuseli, protoze lidska prace je draha a vede k chybam.

Je to podobne prastene, jako kdyz Java nema makra (rekneme a la Lisp), protoze by to bylo "moc slozite", ale pak se podobne problemy resi generovanim kodu, coz je samozrejme horsi.

Re:Dědičnost dnes
« Odpověď #786 kdy: 01. 02. 2017, 19:19:46 »
Citace od: JS kdy 01. 02. 2017, 18:49:04
V podstate se ocekava, ze programatori budou ten vzor sami rozeznavat (a pripadne aplikovat) v kodu. Ale to je hloupe, to co chces je naucit ten vzor pocitac (definovat urcitou abstrakci), aby to lide delat nemuseli, protoze lidska prace je draha a vede k chybam.
Tento argument naprosto nechápu. Ano, když nahradíme programátory umělou inteligencí, tak lidskou práci nahradíme. To je ale zatím jenom budoucnost a programátoři stále musí analyzovat problémy i kód a dělat rozhodnutí. Můžeme to hodně usnadňovat na všech stranách, hodně pomůže posunutí na vyšší úroveň (jako jsme se posunuli od návrhového vzoru "volání podprogramu"), ale právě to základní jádro (rozhodování, volba) tam stále je a počítač to naučit neumíme.
No dobře, trochu ano, ale nemyslím že by v tom FP nějak významně pomohlo.

Citace od: JS kdy 01. 02. 2017, 18:49:04
Je to podobne prastene, jako kdyz Java nema makra (rekneme a la Lisp), protoze by to bylo "moc slozite", ale pak se podobne problemy resi generovanim kodu, coz je samozrejme horsi.
To je skutečně praštěné, protože Java nemá makra "a la C" aby to nebylo moc složité. Ten rozdíl mezi C makry a LISP makry je naprosto zásadní.
Pokud vím, Java nemá LISP makra z daleko prostšího důvodu: nepatří do "mainstream" imperativního jazyka s celkem konzervativní koncepcí.

balki

Re:Dědičnost dnes
« Odpověď #787 kdy: 01. 02. 2017, 21:21:50 »
Citace od: JS kdy 01. 02. 2017, 18:49:04
Citace od: Kamil Podlešák kdy 01. 02. 2017, 11:00:49
Já bych prostě řekl že cílem může být odbourat zbytečnou byrokracii, ale ne byrokracii úplně (tak by tomu bylo v ideálním světě, kde programátoři vytvářejí a skládají matematické abstrakce).

Ja beru slovo byrokracie za pejorativni, takze samozrejme zbytecnou, nepejorativni vyraz by byl asi "proces".

Kazdopadne, to mi pripomina jednu z mych jinych vyhrad vuci navrhovym vzorum, ktera je, ze i konceptualne je to pomylena myslenka. V podstate se ocekava, ze programatori budou ten vzor sami rozeznavat (a pripadne aplikovat) v kodu. Ale to je hloupe, to co chces je naucit ten vzor pocitac (definovat urcitou abstrakci), aby to lide delat nemuseli, protoze lidska prace je draha a vede k chybam.

Je to podobne prastene, jako kdyz Java nema makra (rekneme a la Lisp), protoze by to bylo "moc slozite", ale pak se podobne problemy resi generovanim kodu, coz je samozrejme horsi.

Len mala poznamka, pocitace vedia rozoznavat navrhove vzory v kode, ale to je zbytocna vec.
Existuju na to pluginy pre eclipse.  Vzory su o humanizacii koderiny nie o vymyslani dalsieho matfyzackeho nastroja pre pocitace.

Pocitace nemaju rozum aby vedeli, ci kontext v ktorom vzory aplikuju je vhodny. Ani nevedia spravit patricne upravy, aby zachovali myslienku vzoru, ale prisposobili implementaciu podla situacie.

Osobne, ked pocujem slovo "makro", jezia sa mi vlasy. Znamena to, ze jazyk nie je dostatocne pouzitelny  a potrebuje nejake pretechnizovane barlicky aby generoval kod za programatora.

balki

Re:Dědičnost dnes
« Odpověď #788 kdy: 01. 02. 2017, 21:33:29 »
Citace od: Kamil Podlešák kdy 01. 02. 2017, 19:19:46
Pokud vím, Java nemá LISP makra z daleko prostšího důvodu: nepatří do "mainstream" imperativního jazyka s celkem konzervativní koncepcí.

Presne

javaman ()

Re:Dědičnost dnes
« Odpověď #789 kdy: 01. 02. 2017, 22:04:39 »
A jak to teda je? Máme aplikaci, nic velkého, třeba sto tisíc řádků. Bude to jen backend, protože na front-end máme cool JS. Co je teda nejlepší použít, když to zlé OOP je k ničemu? Jakou architekturu? Proč se to dělá v tom nefunkčním OOP, když by to jinak šlo za třetinu času? Bude tam normální DB třeba. Nějaká ta logika, ale prostě nic složitého.

Nemám problém s novým přístupem, jen se trochu obávám, že většina obhájců neOPP a "pure" OPP nic moc neprogramuje. Nic proti tomu, jen abych měl představu.

javaman ()

Re:Dědičnost dnes
« Odpověď #790 kdy: 01. 02. 2017, 22:20:26 »
A ještě pokud tomu dobře rozumím, tak "pravé" OOP je dynamické. Takže aplikaci zapnu a vyvíjím za chodu? Protože při každém volání metody jsem ji mohl předefinovat, ne? A fakt takhle někdo vyvíjí?

v

Re:Dědičnost dnes
« Odpověď #791 kdy: 01. 02. 2017, 22:34:35 »
Citace od: javaman () kdy 01. 02. 2017, 22:04:39
třeba sto tisíc řádků
to je roztomilé :)))

javaman ()

Re:Dědičnost dnes
« Odpověď #792 kdy: 01. 02. 2017, 22:38:31 »
Plus by mi Kit mohl vysvětlit, proč mu servisní třídy nepřijdou OOP.

Protože čím víc to tu čtu, tím méně vím, co vlastně dělám. Přijde mi, že ani OOP neumím ;D Doufám, že se mě nikdo na pohovoru nebude ptát, co je OOP. Bych si vzpomněl na ty blogísky a tohle téma a byl bych ztracený.

JS

Re:Dědičnost dnes
« Odpověď #793 kdy: 01. 02. 2017, 23:11:34 »
Citace od: Kamil Podlešák kdy 01. 02. 2017, 19:19:46
Tento argument naprosto nechápu.

Jeste jednou. Jde o to, ze dany vzor vysvetlime lidem, ale uz ne pocitacum. V pocitacovych jazycich takovy pristup nedava smysl.

Vezmi si abstrakce (vzory) ve funkcionalnim programovani, treba monadu. Kdyz pouziji v Haskellu monadu, jasne to pocitaci rikam, mam tam na to prislusnou abstrakci (v tomto pripade typovou tridu). A clovek, ktery to cte, nemusi badat, zda jsem pouzil monadu - proste to z toho kodu vidi. Mohl bych ten kod napsat i tak, ze by se pouzila monada (tedy by vypadal monadicky), ale pocitaci bych to nerekl (proste vyhnul se explicitnimu pouziti typove tridy Monad, a napsal bych si to co dela monada na kolene). Ale to by bylo mene citelne, a vice nachylne k chybam.

Ta druha situace nastava s GoF navrhovymi vzory. Neni to tak, ze by nesly formalne definovat (i kdyz vetsinou je vysledek trivialni) - viz ta prednaska o vzorech v Haskellu, kterou jsem postoval par prispevku zpet. Problem je v tom, ze si jejich zastanci odmitaji pripustit, ze nejenze to formalne definovat (a tedy abstrahovat v programovacim jazyce) lze, ale je to i vyhodnejsi (zlepsuje to citelnost kodu).

Citace od: JS kdy 01. 02. 2017, 18:49:04
Pokud vím, Java nemá LISP makra z daleko prostšího důvodu: nepatří do "mainstream" imperativního jazyka s celkem konzervativní koncepcí.

To, ze nema makra, ovsem neznamena, ze nemusi resit problemy, kvuli kterym se makra pouzivaji, napriklad generovani kodu. To se pak v Jave resi zbytecne komplikovane (generovani v IDE, XML, atd.). Zase, jde o to, aby programatori nemuseli ad hoc resit problemy, na ktere by mohly v jazyce existovat vhodne abstrakce (nemusi to byt nutne makra).

Chapu, ze pro nekoho, kdo ty koncepty treba dobre nezna, to muze byt tezke prijmout, ze se daji veci delat lepe. Ja se take v minulosti dopoustel teto chyby.

Re:Dědičnost dnes
« Odpověď #794 kdy: 01. 02. 2017, 23:31:57 »
Citace od: balki kdy 01. 02. 2017, 21:21:50
Osobne, ked pocujem slovo "makro", jezia sa mi vlasy. Znamena to, ze jazyk nie je dostatocne pouzitelny  a potrebuje nejake pretechnizovane barlicky aby generoval kod za programatora.
Ten závěr je velmi podařený. To je asi tak jako bych řekl, že z editorů se mi ježí vlasy na hlavě, protože generují text za programátora (který klidně mohl text do souboru nabušit na první dobrou pomocí catu).

Makra jsou velmi silný a tím i nebezpečný nástroj. Není to žádná berlička pro chromého, naopak jazyky bez maker jsou oproti těm s makry trochu belhající se...