Dědičnost dnes

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Dědičnost dnes
« Odpověď #345 kdy: 24. 01. 2017, 14:08:54 »
jak pises. Mezi objekty se posilaji immutable zpravy, trebas pres sync queue. Jednotlive objekty se prihlasi k odberu zprav, co je zajimaji... takze se nikomu neposila nic primo. Kdo chce neco rici, da to na frontu, koho to zajima, ten si to vezme. A v tomhle je ten rozdil, ja kdyz mam referenci na jiny objekt, ktery volam primo (posilam mu zpravu), tak v tom mem objektu je tim padem i cely stav toho druheho... Takze kdyz se neco zmeni, tak se zmeni vsechno. U Actor modelu to neplati. Nevis komu to chodi, je ti to jedno. Zmeny v tom jsou pak snazsi.

Neni to trochu komplikovaný a zbytečný? Normálně máš odkaz na rozhraní a přes to voláš. Jestli je za tím ta tvoje fronta a nebo něco jiného, je tobě úplně jedno. Nějak nechápu, proč tam přidávat další abstrakci, která mě ještě víc odstíní od problému.

To už pak fakt můžu používat nějaký dynamický jazyk, který je reálně nepoužitelný, protože je právě dynamický.
ObjC je dynamické a použitelné ;)


phpmág

Re:Dědičnost dnes
« Odpověď #346 kdy: 24. 01. 2017, 14:46:23 »
jak pises. Mezi objekty se posilaji immutable zpravy, trebas pres sync queue. Jednotlive objekty se prihlasi k odberu zprav, co je zajimaji... takze se nikomu neposila nic primo. Kdo chce neco rici, da to na frontu, koho to zajima, ten si to vezme. A v tomhle je ten rozdil, ja kdyz mam referenci na jiny objekt, ktery volam primo (posilam mu zpravu), tak v tom mem objektu je tim padem i cely stav toho druheho... Takze kdyz se neco zmeni, tak se zmeni vsechno. U Actor modelu to neplati. Nevis komu to chodi, je ti to jedno. Zmeny v tom jsou pak snazsi.

Neni to trochu komplikovaný a zbytečný? Normálně máš odkaz na rozhraní a přes to voláš. Jestli je za tím ta tvoje fronta a nebo něco jiného, je tobě úplně jedno. Nějak nechápu, proč tam přidávat další abstrakci, která mě ještě víc odstíní od problému.

To už pak fakt můžu používat nějaký dynamický jazyk, který je reálně nepoužitelný, protože je právě dynamický.

Ja psal jak to bylo puvodne navrzeny a nekomu se taky zdalo, ze je to komplikovany a vznikla... Java

Tak to je super a máme z toho nejpopulárnější jazyk. Tak si to představuju.

jak pises. Mezi objekty se posilaji immutable zpravy, trebas pres sync queue. Jednotlive objekty se prihlasi k odberu zprav, co je zajimaji... takze se nikomu neposila nic primo. Kdo chce neco rici, da to na frontu, koho to zajima, ten si to vezme. A v tomhle je ten rozdil, ja kdyz mam referenci na jiny objekt, ktery volam primo (posilam mu zpravu), tak v tom mem objektu je tim padem i cely stav toho druheho... Takze kdyz se neco zmeni, tak se zmeni vsechno. U Actor modelu to neplati. Nevis komu to chodi, je ti to jedno. Zmeny v tom jsou pak snazsi.

Neni to trochu komplikovaný a zbytečný? Normálně máš odkaz na rozhraní a přes to voláš. Jestli je za tím ta tvoje fronta a nebo něco jiného, je tobě úplně jedno. Nějak nechápu, proč tam přidávat další abstrakci, která mě ještě víc odstíní od problému.

To už pak fakt můžu používat nějaký dynamický jazyk, který je reálně nepoužitelný, protože je právě dynamický.
ObjC je dynamické a použitelné ;)

A kde se dnes používá? Jen abych měl představu, jestli je čas se na něj dívat :)

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Dědičnost dnes
« Odpověď #347 kdy: 24. 01. 2017, 14:58:45 »
A kde se dnes používá? Jen abych měl představu, jestli je čas se na něj dívat :)
Na všem od Applu, přičemž Apple zatím nepoužívá Swift, protože nemá stabilní ABI.

bob

Re:Dědičnost dnes
« Odpověď #348 kdy: 24. 01. 2017, 15:11:03 »

Tak to je super a máme z toho nejpopulárnější jazyk. Tak si to představuju.


Takovej Justin Bieber je taky nejpopularnejsi...

phpmág

Re:Dědičnost dnes
« Odpověď #349 kdy: 24. 01. 2017, 15:12:48 »
A kde se dnes používá? Jen abych měl představu, jestli je čas se na něj dívat :)
Na všem od Applu, přičemž Apple zatím nepoužívá Swift, protože nemá stabilní ABI.

Ahaaa, tak to mi asi moc nepomůže. Orientuju se spíše na backendy. Velké backendy na serverech. Ale Swift také nevypadá špatně. Jsem myslel, že iPhone to používá pro aplikace.

Tak to je super a máme z toho nejpopulárnější jazyk. Tak si to představuju.
Takovej Justin Bieber je taky nejpopularnejsi...

A chceš říct, že je snad špatný?


gll

Re:Dědičnost dnes
« Odpověď #350 kdy: 24. 01. 2017, 15:14:34 »
A kde se dnes používá? Jen abych měl představu, jestli je čas se na něj dívat :)
Na všem od Applu, přičemž Apple zatím nepoužívá Swift, protože nemá stabilní ABI.

To nemusí o použitelnosti jazyka vypovídat nic. Korporace typu Apple nebo Google dokáží protlačit cokoliv. Vy jim tu děláte dobré PR.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Dědičnost dnes
« Odpověď #351 kdy: 24. 01. 2017, 15:36:11 »
A kde se dnes používá? Jen abych měl představu, jestli je čas se na něj dívat :)
Na všem od Applu, přičemž Apple zatím nepoužívá Swift, protože nemá stabilní ABI.

Ahaaa, tak to mi asi moc nepomůže. Orientuju se spíše na backendy. Velké backendy na serverech. Ale Swift také nevypadá špatně. Jsem myslel, že iPhone to používá pro aplikace.

Apple ho na iOS prosazuje, ale sám stále čeká na stabilní ABI, Xcode teď přikládá standardní knihovnu ke každé aplikaci, takže typicky aplikace má pod 1MB a k ní si každý uživatel stahuje něco kolem 20MB knihoven, přitom u každé aplikace v podstatě to samé (liší se jen verzí Swiftu použitou při vývoji). Až bude stabilní ABI, budou swiftí knihovny součástí OS a aplikace k nim bude dynamicky linkovat bez nutnosti nést si je s sebou.

Swift má nejsilnější a nejelegantnější syntax, ale implementace pokulhává.

Jinak nějaké frameworky pro backend ve Swiftu existují, ale já to zatím ignoruju, překladač i standardní knihovna mají spoustu bugů, mnohem lepší je v tomto ohledu Go, resp. cokoliv z mainstreamu včetně snad i Prologu :)

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Dědičnost dnes
« Odpověď #352 kdy: 24. 01. 2017, 15:40:25 »
A kde se dnes používá? Jen abych měl představu, jestli je čas se na něj dívat :)
Na všem od Applu, přičemž Apple zatím nepoužívá Swift, protože nemá stabilní ABI.

To nemusí o použitelnosti jazyka vypovídat nic. Korporace typu Apple nebo Google dokáží protlačit cokoliv. Vy jim tu děláte dobré PR.
To byla odpověď na otázku, kde se používá ObjC. PR dělat nechci a osobně bych ObjC už ani nedoporučoval, přece jen je přes všechny své výhody překonané (byť někteří exoti jako Čada na něm stále slepě lpí, ale to nechme psychiatrům).

Kiwi

Re:Dědičnost dnes
« Odpověď #353 kdy: 24. 01. 2017, 16:11:06 »
(člověk by čekal že 8, ale kiwi udělal speciální obdélník, který má obě strany jednou stejné a podruhé v poměru zlatého řezu a přijde mu to v pohodě a diví se že se divíme, vždyť obdélník je jen NÁZEV (model), vůbec z toho nevyplývá, že by se měl chovat jako obdélník, který známe (GEOMETRICKÝ KONSTRUKT), a jestli jsme to očekávali, tak jsme hovada co nerozeznají implikaci od ekvivalence a neměli by nás pouštět k počítači).

Nepochopení rozdílu mezi objektem reálného světa či objektem abstraktního světa na jedné straně a objektem jakožto základní entitou objektového modelu pro účely implementace počítačového programu na straně druhé je velice častým zdrojem chyb při návrhu. Snažíte se násilím za každou cenu co nejvěrněji rekonstruovat vlastnosti nějakého reálného (či naopak abstraktního) vzoru, včetně klasifikační hierarchie, bez ohledu na to, je-li to k něčemu dobré.
K čemu je mi dobré, že speciální obdélník nemůže mít za žádnou cenu z nějakého obskurního důvodu, jehož praktický význam vlastně ani jeho proponent nedokáže uspokojivě obhájit pro univerzální případ, nikdy žádnou pevnou vazbu mezi stranami, když by se mi to v nějaké konkrétní aplikaci hodilo?
Uvědomte si, že přístupy jako strukturované, funkcionální, objektové aj. programování vznikala kvůli tomu, aby zjednodušila návrh programu. Pokud kvůli nějakým principům, vytrženým z kontextu, vhodným pro problém A, ale naprosto nevhodným pro problém B, musím psát program 3x tak dlouhý a nepřehledný, tak je něco špatně.

To byla odpověď na otázku, kde se používá ObjC. PR dělat nechci a osobně bych ObjC už ani nedoporučoval, přece jen je přes všechny své výhody překonané (byť někteří exoti jako Čada na něm stále slepě lpí, ale to nechme psychiatrům).

Dynamické a použitelné jsou i např. Ruby nebo Python.

phpmág

Re:Dědičnost dnes
« Odpověď #354 kdy: 24. 01. 2017, 16:33:18 »

Dynamické a použitelné jsou i např. Ruby nebo Python.

Právě ani jeden není. Python je na malé skriptíky a Ruby také. Oba se dají dost dobře použít na webíky, ale to je tak všechno. Přesně ta jejich dynamičnost je vyřazuje z použití. Také metatřídy v Pythonu to všechno jen dodělají :D Jako nic proti nim, jen to je přesně ten příklad jazyků, které použít na větší věci nejde. Proto se tam ani nepoužívají. Kdyby ta dynamičnost byla tak úžasná, tak to nepoužívají hlavně admini, kteří vyvíjet neumí.

bob

Re:Dědičnost dnes
« Odpověď #355 kdy: 24. 01. 2017, 17:00:01 »
Jako tvrzení je to pochopitelně úplný nesmysl, odkaz (skládání) neznamená, že je něco uvnitř, to je taková naivní představa ještě pocházející z procedurálního programování s primitivními, nereferenčními typy. Zadruhé skutečnost, že objekt vidí kámoše, ještě neznamená, že vidí i kámoše kámoše, naopak je to vyloženě nechtěný stav porušující zapouzdření.
Zbytek příspěvku o propagaci změny modelovanou doménou je nesrozumitelný.

Ale ano znamena. Objekt A ma svuj stav a referenci na B. B ma svuj stav. B zmeni svuj stav. Chovani A se zmenilo i kdyz volas stejnou metodu se stejnymi parametry,vraci neco jineho. A protoze to ma byt z venku black box, pak nutne A zmenilo svuj stav.

A takhle to muze byt, a taky byva pres vsechny tridy v cele aplikaci.

To je tak krasa Java style OOP.


Kiwi

Re:Dědičnost dnes
« Odpověď #356 kdy: 24. 01. 2017, 17:01:25 »

Dynamické a použitelné jsou i např. Ruby nebo Python.

Právě ani jeden není. Python je na malé skriptíky a Ruby také. Oba se dají dost dobře použít na webíky, ale to je tak všechno. Přesně ta jejich dynamičnost je vyřazuje z použití. Také metatřídy v Pythonu to všechno jen dodělají :D Jako nic proti nim, jen to je přesně ten příklad jazyků, které použít na větší věci nejde. Proto se tam ani nepoužívají. Kdyby ta dynamičnost byla tak úžasná, tak to nepoužívají hlavně admini, kteří vyvíjet neumí.

V Pythonu je např. napsáno toto: http://frescobaldi.org
Neřekl bych, že jde zrovna o nějaký malý skriptík. U nás v tom máme napsaný poměrně rozsáhlý framework pro testování a validace. Našlo by se toho jistě mnohem víc.

gll

Re:Dědičnost dnes
« Odpověď #357 kdy: 24. 01. 2017, 17:07:47 »

Dynamické a použitelné jsou i např. Ruby nebo Python.

Právě ani jeden není. Python je na malé skriptíky a Ruby také. Oba se dají dost dobře použít na webíky, ale to je tak všechno. Přesně ta jejich dynamičnost je vyřazuje z použití. Také metatřídy v Pythonu to všechno jen dodělají :D Jako nic proti nim, jen to je přesně ten příklad jazyků, které použít na větší věci nejde. Proto se tam ani nepoužívají. Kdyby ta dynamičnost byla tak úžasná, tak to nepoužívají hlavně admini, kteří vyvíjet neumí.

Můžete uvést nějaký konkrétní příklad, kdy vám metatřídy komplikovaly práci? Programátoři aplikací to nepoužívají a těch několik knihoven, co je používá to má odladěné.

phpmág

Re:Dědičnost dnes
« Odpověď #358 kdy: 24. 01. 2017, 17:27:58 »

Dynamické a použitelné jsou i např. Ruby nebo Python.

Právě ani jeden není. Python je na malé skriptíky a Ruby také. Oba se dají dost dobře použít na webíky, ale to je tak všechno. Přesně ta jejich dynamičnost je vyřazuje z použití. Také metatřídy v Pythonu to všechno jen dodělají :D Jako nic proti nim, jen to je přesně ten příklad jazyků, které použít na větší věci nejde. Proto se tam ani nepoužívají. Kdyby ta dynamičnost byla tak úžasná, tak to nepoužívají hlavně admini, kteří vyvíjet neumí.

Můžete uvést nějaký konkrétní příklad, kdy vám metatřídy komplikovaly práci? Programátoři aplikací to nepoužívají a těch několik knihoven, co je používá to má odladěné.

Za prvé můžeš mít neschopné kolegy, kteří je nacpou všude. A za druhé jsou projekty, které je asi tak odladěné něměly. Třeba Django a jejich ORM je super využití. Jenže tam nikdo mít problém snad ani nemůže. Bohužel je lepší mít asi jazyk více osekaný a dělat to jinak. ORM v Javě také máš a tam žádné metatřídy nejsou. Takže se to jeví cool asi jako ta dynamičnost. Není to obecně dobrý nápad mít v jazyce.

A třeba OOP v Pythonu, které bylo ve 2 spíše jako vtip a ve trojce je pořád nic moc, ale lepší než nic. Takže pokud mi někdo řekne, že se  tenhle jazyk na něco velkého hodí, tak to dost vypovídá o jeho schopnostech.

Kiwi

Re:Dědičnost dnes
« Odpověď #359 kdy: 24. 01. 2017, 17:51:24 »
Takže pokud mi někdo řekne, že se  tenhle jazyk na něco velkého hodí, tak to dost vypovídá o jeho schopnostech.

Spíš o tvých neschopnostech.  ;)