Ohledně OPP si myslím, že je vhodné pro něco, co si drží nějaké stavy. Např. desktopová aplikace. A hlavně si myslím, že z těch, kteří tvrdí, že umějí OOP, pak 80% porgramátorů přinejmenším zneužívá dědičnost pro sdílení kódu a hrubě pourušují SRP. Tolik k OOP.
Jinak mi přijde, že když už to tu není úplné OT o pohlavích, tak stejně si tu namísto debaty o OPP hodně lidí obhajuje nějaký svůj jazyk a debata se stáčí na dynamické typování, enumy a věci, které imho s OOP tolik nesouvisí.
OOP je dobre treba na datove objekty, na vytvareni novych datovych typu. Zvlaste kdyz je jich hodne a maji hierarchickou strukturu. Typicky a vsude uvadeny pripad je GUI. A nebo ja jsem ted hodne ponoren do midi a midi eventů, u nich objektovy pristup take sedi jak zadek na hrnec. A s temito objekty pak muze byt dal klidne nakladano strukturovane nebo funkcionalne, jak je v dane situaci nejlepsi. Takze oop by mel byt dobry sluha aplikovany kam patri, ale ne spatny pan vnucovany nam z duvodu cistoty/uniformity jednoho paradigma i na miste, kde se nehodi.
Presne GUI a implementace vnitrnosti programovaciho prostredi (hierarchie cisel), nektery datovy struktury, jsou presne pripady, kde je fajn mit nastroje, co dokazou dispatchovat funkci hierarchicky.
Nemyslim si ale ze je k tomu potreba OOP jazyk, mela by stacit featura, ktera mi diapatchne spravnou funkci.
Napr. u hierarchie cisel. Mam pripady kdy scitam int a float:
1 + 1 (int_int_plus)
1.0 + 1 (float_int_plus)
1 + 1.0 (int_float_plus, nebo flip + float_int_plus)
1.0 + 1.0 (float_float_plus)
na zaklade typu potrebuju dispatchnout spravnou funkci nebo instrukci.
OOP s posilanim zprav nebo volanim metod je na to kratky, protoze dispatchuju pres dva argumenty. Muzu to ohackovat pres double dispatch. Nejakej haskell fanda mi muze tvrdit, ze bez dispatche na zaklade statickych typu to nepujde, ale kazdy vidi, ze je v tomhle pripade jedno jestli dispatchuju pri prekladu nebo az tesne pred volanim funkce.
Kazdopadne jakmile mam spravnou funkci, tak nepotrebuju dalsi featury OOP jazyka. Staci mi skladat funkce jednu za druhou. Algebra funkci je jednodussi nez algebra objektu, pokud beru objekt pouze jako mnozinu 1+ funkci.