Dědičnost dnes

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Dědičnost dnes
« Odpověď #630 kdy: 30. 01. 2017, 19:32:50 »
Proč se teda ten tvůj Smalltalk a dynamické typování skoro na nic nepoužívá? Pochybuju, že tvůrci C++ a Javy byli úplně mimo a nic nechápali.

Sranda je, ze on by se mozna pouzival, kdyby Java nevznikla.. Zacatkem 90.let to byla pomerne silna konkurence C++ a psaly se v tom i business aplikace (IBM do toho treba hodne investovala).

Ale Java prisla a byla zdarma.. a jak uz to tak v IT byva, otevrene veci zvitezi, i kdyz jsou horsi. S kvalitou to nema moc co delat.
Smalltalk byl zrovna hodně uzavřený (a drahý), proto se významně nerozšířil. Paradoxem osudu je, že Sun před spácháním Javy používal ObjC, dokonce si s NeXTem navrhli vlastní standardní API, kterému se Java velmi nápadně podobá, protože Sun koupil Lighthouse a donutil jeho programátory psát pro Javu. The rest is history.

A kdyby nezatkli Patricka Naughtona, protože si dopisoval s agentem FBI vydávájícím se za malou holčičku o sexu s nezletilými, mohla Java vypadat úplně jinak, protože na rozdíl od Goslinga Naughton chtěl mít Javu podstatně "objektovější". Shit (and Java) happens.


javaman ()

Re:Dědičnost dnes
« Odpověď #631 kdy: 30. 01. 2017, 19:34:42 »
Pořád nechápu. Asi nikdo ten váš snový OOP nechce, když tu máme ten aktuální. Proč by nikdo neprosadil kopii Smalltalku?

Re:Dědičnost dnes
« Odpověď #632 kdy: 30. 01. 2017, 19:48:14 »
Nikdo přece nevyžaduje, aby všechny třídy byly v jednom stromu.
Ne "všechny", to jsem nepsal, ale ty, které mají mít společné vlastnosti.

Supr, tak se k tomu začínáme posunovat: V runtime se nějakým způsobem udržují stavy. Od tohoto se můžeme odpíchnout.
To klidně můžeme. Vy jste říkal, že něco nevíte, já se vám to snažím přiblížit, jak nejlíp umím. Odpíchněte se tedy k další otázce na to, co vám dál není jasné.

Chápu. Tím se objevuje další otázka, jak se modelují vzájemné závislosti (cykly) v datech.
To je konečně opravdu zajímavá otázka (bez ironie). Museli bysme říct, co konkrétně bysme chtěli modelovat. Co v reálném světě má kruhové závislosti? (jedině konkrétní příklad prosím)

gll

Re:Dědičnost dnes
« Odpověď #633 kdy: 30. 01. 2017, 20:21:42 »
Chápu. Tím se objevuje další otázka, jak se modelují vzájemné závislosti (cykly) v datech.
To je konečně opravdu zajímavá otázka (bez ironie). Museli bysme říct, co konkrétně bysme chtěli modelovat. Co v reálném světě má kruhové závislosti? (jedině konkrétní příklad prosím)

Vše co se popisuje obecnými grafy? Nemusí se přímo jednat o model z reálného světa.

Re:Dědičnost dnes
« Odpověď #634 kdy: 30. 01. 2017, 20:38:48 »
Vše co se popisuje obecnými grafy? Nemusí se přímo jednat o model z reálného světa.
Které části "(jedině konkrétní příklad prosím)" jsi nerozuměl? ;)


gll

Re:Dědičnost dnes
« Odpověď #635 kdy: 30. 01. 2017, 20:59:57 »
Vše co se popisuje obecnými grafy? Nemusí se přímo jednat o model z reálného světa.
Které části "(jedině konkrétní příklad prosím)" jsi nerozuměl? ;)

sociální síť

BoneFlute

  • *****
  • 2 047
    • Zobrazit profil
Re:Dědičnost dnes
« Odpověď #636 kdy: 30. 01. 2017, 21:01:25 »
Ani ne, v Javě se už dávno nepoužívá. Možná jinde je pořád cool.
Pokud se v Javě dávno nepoužívá, jenom dobře. Pokud tedy jde o tu variantu s private konstruktorem, to bych jako anti-pattern bral.

Přesně tak. Jde o všechny varianty. Vtipné je, že většina lidí, když se ptá na pohovorech, ani neumí všechny a zároveň umí jen ty nepoužitelné. Ale pořád se na to ptají :D Alespoň člověk ví, co tam bude za lidi.

Singleton sa nezvykne pouzivat, ak je k dispozicii dependency injection framework. Ale inac neviem si predstavit, ako by sa riesila jedna jedina zdielana instancia pre celu aplikaciu v plain jave ... 
Omluv můj sarkasmus: já si nedovedu představit situaci, kdy bych potřeboval sdílenou instanci pro celou aplikaci.

HTTP request, FileSystem, DB connection - u ničeho z toho nepovažuji za žádoucí vynucovat si jen jednu jedinou instanci by design.

v

Re:Dědičnost dnes
« Odpověď #637 kdy: 30. 01. 2017, 21:04:21 »
Vše co se popisuje obecnými grafy? Nemusí se přímo jednat o model z reálného světa.
Které části "(jedině konkrétní příklad prosím)" jsi nerozuměl? ;)
já bych to uznal, grafy jsou docela rozšířená věc a ve funkcionálním programování fakt napiču

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Dědičnost dnes
« Odpověď #638 kdy: 30. 01. 2017, 21:11:24 »
Vše co se popisuje obecnými grafy? Nemusí se přímo jednat o model z reálného světa.
Které části "(jedině konkrétní příklad prosím)" jsi nerozuměl? ;)
já bych to uznal, grafy jsou docela rozšířená věc a ve funkcionálním programování fakt napiču

Muzete to trochu vic rozvest? V FP jsem s grafy jeste nic nedelal, ale nejake knihovny jsem zahledl. Serializaci grafu musim snad resit i v OOP, ne? Jak se to lisi od FP, kde to budete mit stale v teto forme?

v

Re:Dědičnost dnes
« Odpověď #639 kdy: 30. 01. 2017, 21:19:12 »
Muzete to trochu vic rozvest? V FP jsem s grafy jeste nic nedelal, ale nejake knihovny jsem zahledl. Serializaci grafu musim snad resit i v OOP, ne? Jak se to lisi od FP, kde to budete mit stale v teto forme?
serializaci vůbec nemám na mysli, to zas takový probém IMHO nebude
příčina bude asi v absenci identity dat, na vrcholu grafu se musíte odkazovat indexem nebo jménem nebo udělat nějaký artistický kousek jako "tying the knot"

Re:Dědičnost dnes
« Odpověď #640 kdy: 30. 01. 2017, 21:21:02 »
já bych to uznal, grafy jsou docela rozšířená věc a ve funkcionálním programování fakt napiču
Já to uznat nemůžu, protože odpověď (odpovídající úrovni otázky) je až trapně jednoduchá: obecný graf se modeluje listem vrcholů a listem hran.

Otázka je na to, jestli je někde opravdu potřeba (nebo je to aspoň výrazně příjemnější/efektivnější) mít reference, nikoli IDčka nebo jiné nepřímé odkazy. Mě takový případ nenapadá, nesetkal jsem se s ním (čímž neříkám, že neexistuje, proto je to zajímavá otázka).

balki

Re:Dědičnost dnes
« Odpověď #641 kdy: 30. 01. 2017, 21:29:42 »
Ani ne, v Javě se už dávno nepoužívá. Možná jinde je pořád cool.
Pokud se v Javě dávno nepoužívá, jenom dobře. Pokud tedy jde o tu variantu s private konstruktorem, to bych jako anti-pattern bral.

Přesně tak. Jde o všechny varianty. Vtipné je, že většina lidí, když se ptá na pohovorech, ani neumí všechny a zároveň umí jen ty nepoužitelné. Ale pořád se na to ptají :D Alespoň člověk ví, co tam bude za lidi.

Singleton sa nezvykne pouzivat, ak je k dispozicii dependency injection framework. Ale inac neviem si predstavit, ako by sa riesila jedna jedina zdielana instancia pre celu aplikaciu v plain jave ... 
Omluv můj sarkasmus: já si nedovedu představit situaci, kdy bych potřeboval sdílenou instanci pro celou aplikaci.

HTTP request, FileSystem, DB connection - u ničeho z toho nepovažuji za žádoucí vynucovat si jen jednu jedinou instanci by design.

Takze vezmime si konfiguraciu aplikacie, ktora sa kazdych x minut obnovuje. A budem mat 50 nekonzistentnych konfiguracnych objektov, lebo pan riesi Http request a filesystem. Alebo spravi sa singleton a budem mat konfiguraciu na jednom mieste, pre vsetkych rovnaku.

Dalsi priklad mam rozhranie rs232, tam nie je httprequest alebo databaza, problem je vsak, ze je len jedno. Bud vymyslim neviem ake zamykanie cez 50 instancii, alebo si proste spravim singleton.

Potrebujem nieco serializovat von do nejakeho mrdkoveho suboru, co nema http request ani databazu, a je potrebne aby sa do neho nezapisovalo z 50 miest. Takze bud spravim sialene zamykanie cez 50 instancii, alebo spravim singleton. Pripadne sa zahram na to, ze som jouda a singleton nepoznam a ten isty objekt odovzdavam vo vsetkych metodach. To je potom "super", zbytocne to tam zavadzia.

Dalsi relevantny pripad. Chcem sa vyhnut "statickej" triede, lebo je to vlastne zkripleny objekt a ja chcem normalny, pouzijem singleton.

Ked robim webku pre jouda sro v php, mozno singletony nie su treba. Ale pri roznych IRL aplikaciach potreba nastava. U vas toho polku zariadi webserver a ani o tom neviete.  Ja osobne, kde mozem, pouzijem framework, co sa o instancie stara za mna. Ale su pripady, ked nemozem, lebo kodim zrovna lib-ku, co ma mat zavislost iba na java api. Tam singleton vyuzijem.

v

Re:Dědičnost dnes
« Odpověď #642 kdy: 30. 01. 2017, 21:34:23 »
já bych to uznal, grafy jsou docela rozšířená věc a ve funkcionálním programování fakt napiču
Já to uznat nemůžu, protože odpověď (odpovídající úrovni otázky) je až trapně jednoduchá: obecný graf se modeluje listem vrcholů a listem hran.

Otázka je na to, jestli je někde opravdu potřeba (nebo je to aspoň výrazně příjemnější/efektivnější) mít reference, nikoli IDčka nebo jiné nepřímé odkazy. Mě takový případ nenapadá, nesetkal jsem se s ním (čímž neříkám, že neexistuje, proto je to zajímavá otázka).
tak třeba mějmě vrcholy [1,2] a hrany [(1,666)]
vám to může připadat malicherné, ale já s tím mám problém :)

gll

Re:Dědičnost dnes
« Odpověď #643 kdy: 30. 01. 2017, 21:35:52 »
já bych to uznal, grafy jsou docela rozšířená věc a ve funkcionálním programování fakt napiču
Já to uznat nemůžu, protože odpověď (odpovídající úrovni otázky) je až trapně jednoduchá: obecný graf se modeluje listem vrcholů a listem hran.

Otázka je na to, jestli je někde opravdu potřeba (nebo je to aspoň výrazně příjemnější/efektivnější) mít reference, nikoli IDčka nebo jiné nepřímé odkazy. Mě takový případ nenapadá, nesetkal jsem se s ním (čímž neříkám, že neexistuje, proto je to zajímavá otázka).

Určetě je efektivnější, když můžete při procházení grafu skočit rovnou na odkazovaný vrchol namísto hledání id v nějaké immutable datové struktuře reprezentující množinu vrcholů (asi strom?). Při implementaci běžných grachových algoritmů se bez muttable datových struktur obejdete jen dost těžko.

gll

Re:Dědičnost dnes
« Odpověď #644 kdy: 30. 01. 2017, 21:37:23 »
s/grachových/grafových/