Zdroje k rozvoji OOP myšlení

SB

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #120 kdy: 19. 08. 2016, 08:50:10 »
C# umí doesNotUnderstand

??? Jak?


Re:Zdroje k rozvoji OOP myšlení
« Odpověď #121 kdy: 19. 08. 2016, 09:41:23 »
GoodAI
Ok, takže to bysme měli jeden dva roky starý startup o nějakých 15 lidech :)

Když jsem psal "tvrdá data prosím", tak jsem tím chtěl říct "máme nějaká tvrdá data o tom, kolik procent firem běží Hadoop, Spark, DataFlow, Flink, etc. etc. na Windowsech?" Osobně totiž moc nechápu, proč by to někdo měl dělat. Proč provozovat ten samý soft na platformě, na které není primárně vyvíjen, a ještě platit navíc licenční poplatky? Umím si představit, že v nějaké hodně MS-zadrátované firmě to může za velmi specifických podmínek dávat smysl kvůli integraci, ale pro drtivou většinu případů mi to přijde jako holý nesmysl.

gl

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #122 kdy: 19. 08. 2016, 14:30:33 »
GoodAI
Ok, takže to bysme měli jeden dva roky starý startup o nějakých 15 lidech :)

Když jsem psal "tvrdá data prosím", tak jsem tím chtěl říct "máme nějaká tvrdá data o tom, kolik procent firem běží Hadoop, Spark, DataFlow, Flink, etc. etc. na Windowsech?" Osobně totiž moc nechápu, proč by to někdo měl dělat. Proč provozovat ten samý soft na platformě, na které není primárně vyvíjen, a ještě platit navíc licenční poplatky? Umím si představit, že v nějaké hodně MS-zadrátované firmě to může za velmi specifických podmínek dávat smysl kvůli integraci, ale pro drtivou většinu případů mi to přijde jako holý nesmysl.

Souhlasím. Oni to používají asi proto, že s tím mají zkušenosti jako vývovojáři her pro windows.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Zdroje k rozvoji OOP myšlení
« Odpověď #123 kdy: 22. 08. 2016, 02:38:43 »
C# umí doesNotUnderstand

??? Jak?
Přes dynamic. Funguje to podobně jako v ObjC. Ne že bych to někdy potřeboval, ale od určité verze (tuším 4) co C# umí. Stejně jako Java už dávno, i když ne od první verze.

SB

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #124 kdy: 22. 08. 2016, 09:22:58 »
Pošlete mi prosím odkaz na nějaké povídání, odkazů na dynamic je mraky, ale o chytání runtimeové chyby nic nevidím. Děkuji.


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Zdroje k rozvoji OOP myšlení
« Odpověď #125 kdy: 22. 08. 2016, 11:43:17 »
Pošlete mi prosím odkaz na nějaké povídání, odkazů na dynamic je mraky, ale o chytání runtimeové chyby nic nevidím. Děkuji.
Co má doesNotUnderstand společného s chybami?

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #126 kdy: 22. 08. 2016, 13:47:26 »
Co má doesNotUnderstand společného s chybami?
SB si to asi představuje tak, že volání neexistující metody způsobí výjimku, pro kterou existuje nějaký handler...

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Zdroje k rozvoji OOP myšlení
« Odpověď #127 kdy: 22. 08. 2016, 14:46:31 »
Co má doesNotUnderstand společného s chybami?
SB si to asi představuje tak, že volání neexistující metody způsobí výjimku, pro kterou existuje nějaký handler...
To je dost velká divnost. doesNotUnderstand (a to samé v bledě modrém v Javě nebo C#) je vhodné tak pro nějakou proxy, jinak tu už nějaký ten pátek máme statické typování :) Každopádně dík za upřesnění, evidentně jsem nepochopil jeho myšlenkový pochod...

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #128 kdy: 22. 08. 2016, 15:26:49 »
doesNotUnderstand (a to samé v bledě modrém v Javě nebo C#) je vhodné tak pro nějakou proxy
Ještě je k němu komplementární respondsToSelector, se kterým dohromady už se hodí třeba i ke skládání neznámých objektů, což je příjemná věc. Samotný respondsToSelector se pak ještě může hodit k "implementaci rozhraní naruby" - postupně zkouším, jestli neznámý objekt umí třeba renderToPDF, když ne, tak renderToPNG apod.

Nejsou to asi zas tak moc používané metody, ale pokud je nemáš, tak některé věci neuděláš vůbec, nebo jenom hrozně hnusně. Čili jazyk, který si chce říkat OO, je rozhodně mít musí, jinak to žádné OOP není, ať si na školách říká kdo chce co chce ;)

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Zdroje k rozvoji OOP myšlení
« Odpověď #129 kdy: 22. 08. 2016, 15:35:42 »
doesNotUnderstand (a to samé v bledě modrém v Javě nebo C#) je vhodné tak pro nějakou proxy
Ještě je k němu komplementární respondsToSelector, se kterým dohromady už se hodí třeba i ke skládání neznámých objektů, což je příjemná věc. Samotný respondsToSelector se pak ještě může hodit k "implementaci rozhraní naruby" - postupně zkouším, jestli neznámý objekt umí třeba renderToPDF, když ne, tak renderToPNG apod.

Nejsou to asi zas tak moc používané metody, ale pokud je nemáš, tak některé věci neuděláš vůbec, nebo jenom hrozně hnusně. Čili jazyk, který si chce říkat OO, je rozhodně mít musí, jinak to žádné OOP není, ať si na školách říká kdo chce co chce ;)
Však mi taky v Go a Swiftu chybí (a v C++ taky, ale tam je člověk ani nijak neočekává).

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zdroje k rozvoji OOP myšlení
« Odpověď #130 kdy: 22. 08. 2016, 17:04:47 »
nemas pravdu, co se tyce her. herni studio neni odkazano jenom na linux. pouziva ruzne OS (OSx, Windows, Linux). AI a big data muzes delat taky na windowsu.

Herní studio, pokud chce přežít, tak nesmí vyvíjet primárně pro Windows, tam se prodá minimum her. 90% prodejů dělají konzole, PC je jen 10%. V konzolích momentálně PS4 docela válcuje XBOX One, takže Windows je minoritní platforma. Co se týká mobilních her, má smysl uvažovat jen o Androidu a iPhone, Windows jsou úplně mimo.

Jako nejsu z toho uplne moudrej, ale pokud tech 37% opravdu patri k PC, tak je vysledny pomer 37% vs. 27% ~ PC ma 58% vs konzole s 42%, coz se tomu 90% vs 10% ani neblizi.

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #131 kdy: 22. 08. 2016, 17:37:47 »
Však mi taky v Go a Swiftu chybí (a v C++ taky, ale tam je člověk ani nijak neočekává).
V Go bych ho ani nečekal, vzhledem k tomu, jak je to drahá operace a jak je Go zaměřené na výkon. U Swiftu je to teda docela zklamání, to jsem nevěděl (Swift jsem zkoukl jenom z rychlíku). Aspoň teda co koukám, jde použít, pokud se dědí z NSObject. Tak aspoň něco. Ale je to teda hodně nesystémový, to nemám rád, tyhle výjimky.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Zdroje k rozvoji OOP myšlení
« Odpověď #132 kdy: 22. 08. 2016, 17:53:50 »
Však mi taky v Go a Swiftu chybí (a v C++ taky, ale tam je člověk ani nijak neočekává).
V Go bych ho ani nečekal, vzhledem k tomu, jak je to drahá operace a jak je Go zaměřené na výkon. U Swiftu je to teda docela zklamání, to jsem nevěděl (Swift jsem zkoukl jenom z rychlíku). Aspoň teda co koukám, jde použít, pokud se dědí z NSObject. Tak aspoň něco. Ale je to teda hodně nesystémový, to nemám rád, tyhle výjimky.
Typicky se to používá pro implementaci distribuovaných objektů (dynamická proxy), řekl bych, že vzhledem k latenci při komunikaci přes síť ta operace vůbec drahá není. Swift to nemá a dědit z NSObject se dá jen na OS X, na Linuxu ne, takže to je celkem no go (má-li být kód multiplatformní). Celkově bych řekl, že v tomto případě je nejlepší vykašlat se na eleganci a klidně to dělat jako Go - přes textové rozhraní.

SB

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #133 kdy: 22. 08. 2016, 18:02:39 »
To je dost velká divnost. doesNotUnderstand (a to samé v bledě modrém v Javě nebo C#) je vhodné tak pro nějakou proxy, jinak tu už nějaký ten pátek máme statické typování :) ...

Co s tím má společné statické typování?

SB

Re:Zdroje k rozvoji OOP myšlení
« Odpověď #134 kdy: 22. 08. 2016, 18:10:28 »
Co má doesNotUnderstand společného s chybami?

Asi se mi ztratil příspěvek, takže znovu...

Nedohledání metody v objektu řeší virtuální počítač zavoláním jiné metody (nemusíme tomu říkat běhová chyba, je to šumák).
Neřešte to, prostě mi pošlete odkaz s popisem, jak to v C# funguje. Děkuji.