Co si myslíte o OOP?

operator

Re:Co si myslíte o OOP?
« Odpověď #960 kdy: 15. 01. 2019, 17:34:40 »
Python ti umožňuje různé přístupy. Čisté paradigma je extremismus. Ideální je možnost výběru a flexibilního přizpůsobení se aktuálním potřebám.
Jasný. A i JavaScript je multiparadigmatický. A vlastně každý v současnosti existující jazyk. Protože tenhle blábol lidi naučil si myslet, že když má jazyk funkce jako first class citizens, tak je funkcionální. Až na to, že ono je to ve skutečnosti o dost  zajímavější. Jenže to nezjistíš, protože sis "funkcionálně" zaprogramoval v pythonu a nic jinýho nikdy nezkusíš. (tím nemyslím tebe osobně, ale lidi, kteří na tenhle blábol naskočili)
Javascript mám docela rád, na menší věci, dobře se mi v něm píše. Také pragmatický jazyk, byť s pochybným původem. Co je to funkcionální si každý zkusil ve škole na lispu. Funkcionální programování není žádná novinka. A třeba C za multiparadigmatický jazyk nepovažuji, tomu objektové paradigma občas citelně chybí, nebo alespoň jmenné prostory. Viz třeba gtk napsané v C. V pythonu se s ním pracuje mnohem příjeměji a klidně tu může někdo operovat s myšlenkou, že python, kde je všechno objekt, včetně objektů frame a code, není objektový.


Re:Co si myslíte o OOP?
« Odpověď #961 kdy: 15. 01. 2019, 17:39:02 »
Co je to funkcionální si každý zkusil ve škole na lispu.
Takže tě přece jenom někdo donutil si ty "nesmyslné" jazyky vyzkoušet. To je dobře :)

operator

Re:Co si myslíte o OOP?
« Odpověď #962 kdy: 15. 01. 2019, 17:42:43 »
Co je to funkcionální si každý zkusil ve škole na lispu.
Takže tě přece jenom někdo donutil si ty "nesmyslné" jazyky vyzkoušet. To je dobře :)
Netvrdil jsem, že jsou nesmyslné, ale v praxi nepraktické a že se pragmaticky radši zabývám věcmi praktickými.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Co si myslíte o OOP?
« Odpověď #963 kdy: 15. 01. 2019, 17:55:24 »
Co je to funkcionální si každý zkusil ve škole na lispu.
Takže tě přece jenom někdo donutil si ty "nesmyslné" jazyky vyzkoušet. To je dobře :)
Netvrdil jsem, že jsou nesmyslné, ale v praxi nepraktické a že se pragmaticky radši zabývám věcmi praktickými.

V praxi je nepraktická i přílišná volnost.

operator

Re:Co si myslíte o OOP?
« Odpověď #964 kdy: 15. 01. 2019, 18:07:10 »
Co je to funkcionální si každý zkusil ve škole na lispu.
Takže tě přece jenom někdo donutil si ty "nesmyslné" jazyky vyzkoušet. To je dobře :)
Netvrdil jsem, že jsou nesmyslné, ale v praxi nepraktické a že se pragmaticky radši zabývám věcmi praktickými.
V praxi je nepraktická i přílišná volnost.
Proto davam prednost pythonu se silnymi typy, dnes i moznosti typehintingu.


Re:Co si myslíte o OOP?
« Odpověď #965 kdy: 15. 01. 2019, 18:24:52 »
V praxi je nepraktická i přílišná volnost.
Mně vůbec celá praxe přijde taková nepraktická.

operator

Re:Co si myslíte o OOP?
« Odpověď #966 kdy: 15. 01. 2019, 22:27:41 »
V praxi je nepraktická i přílišná volnost.
Mně vůbec celá praxe přijde taková nepraktická.

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:Co si myslíte o OOP?
« Odpověď #967 kdy: 16. 01. 2019, 10:30:11 »
Proto davam prednost pythonu se silnymi typy, dnes i moznosti typehintingu.

to právě funguje jen s podmnožinou pythonu. Když nějaká knihovna používá metaclassy, nebo jinak dynamicky generuje typy, tak se to musí řešit mypy pluginem. Většina pluginů pouze potlačí chybové hlášky.

SB

Re:Co si myslíte o OOP?
« Odpověď #968 kdy: 16. 01. 2019, 11:35:48 »
Setter je jako každá metoda uvnitř objektu, takže se nejedná o změnu zvenku. Stav je bez existujícího prostředníka zvenku nedostupný.
Mně teda přijde, že to je spíš otázka designová/koncepční. Buď k objektu přistupuju jako ke structu/dementovi, kterého polopaticky řídím, nebo k němu přistupuju jako k dospělému, kterého o něco žádám a sděluju mu, jaké parametry odpovědi by se mi líbily. Nepřijde mi, že by tam byla ostrá hranice.

Funkčně může znamenat vyventilování stavů degeneraci objektu na struct, ale technicky pořád platí, že stav je sám o sobě zvenku nedostupný (nepočítám jazyky, co můžou stav rovnou udělat public).

SB

Re:Co si myslíte o OOP?
« Odpověď #969 kdy: 16. 01. 2019, 11:40:44 »
Setter je jako každá metoda uvnitř objektu, takže se nejedná o změnu zvenku. Stav je bez existujícího prostředníka zvenku nedostupný.

Proto by settery měly být privátní.

Sice nevím, co tím myslíte, ale existuje jednodušší řešení - zapomeňte na settery, je to nadbytečný "koncept".

SB

Re:Co si myslíte o OOP?
« Odpověď #970 kdy: 16. 01. 2019, 11:45:58 »
...A třeba C za multiparadigmatický jazyk nepovažuji, tomu objektové paradigma občas citelně chybí...

Jak může C chybět OOP, když není konstruované pro daný typ úloh, pro danou úroveň abstrakce? To byste mohl pak říci o každém jazyku, že mu chybí OOP.

Kit

Re:Co si myslíte o OOP?
« Odpověď #971 kdy: 16. 01. 2019, 13:24:43 »
Setter je jako každá metoda uvnitř objektu, takže se nejedná o změnu zvenku. Stav je bez existujícího prostředníka zvenku nedostupný.
Proto by settery měly být privátní.
Sice nevím, co tím myslíte, ale existuje jednodušší řešení - zapomeňte na settery, je to nadbytečný "koncept".

Zcela souhlasím. Jsou zbytečné.

PetrM

Re:co si myslite o oop?
« Odpověď #972 kdy: 16. 01. 2019, 13:39:14 »
Svet musis digitalizovat, ale nemusis mit staticka data.

Pokud svět musím digitalizovat, jsou tam dvě kvantizace - hodnota (např. ADC s rozlišením 12 bitů) a čas (vzorkování po např. 120ns). Příchod dalšího vzorku = změna stavu objektu.

V dalsi casti popiras sam sebe. V pythonu bys na to mel jeden univerzalni int a tvuj problem by vubec nenastal. Takze staticke typi te pred timto problemem nechřani,míny ho zpusobuji.

Kontrolní otázky:
- Jak Python interně ukládá ten INT?
- Pokud uložím INT do binárního souboru a načtu ho do programu v C++, budu kompatibilní?
- Budu kompatibilní, pokud ten Python spustím na 32-bit RPi a soubor otevřu v nativní aplikaci na AMD64 psané dejme tomu v C#?
- Jakou velikost bude mít ten soubor, když v něm bude pole 100 000 000 intů?

PetrM

Re:Co si myslíte o OOP?
« Odpověď #973 kdy: 16. 01. 2019, 13:41:39 »
...A třeba C za multiparadigmatický jazyk nepovažuji, tomu objektové paradigma občas citelně chybí...

Cčku chybí plno věcí, ale zrovna objekty se dají celkem dobře vytvořit. Bjarne Stroustrupovi k tomu stačil preprocesor...

Kadet

Re:co si myslite o oop?
« Odpověď #974 kdy: 16. 01. 2019, 14:20:43 »
Svet musis digitalizovat, ale nemusis mit staticka data.

Pokud svět musím digitalizovat, jsou tam dvě kvantizace - hodnota (např. ADC s rozlišením 12 bitů) a čas (vzorkování po např. 120ns). Příchod dalšího vzorku = změna stavu objektu.
Pokud '=' znamena ekvivalence, pak velky omyl. Prichod dalsiho vzorku muzu modelovat tak, ze ho prilepim na konec seznamu vsech vzorku a nic pri to menit nemusim.

V dalsi casti popiras sam sebe. V pythonu bys na to mel jeden univerzalni int a tvuj problem by vubec nenastal. Takze staticke typi te pred timto problemem nechřani,míny ho zpusobuji.

Kontrolní otázky:
- Jak Python interně ukládá ten INT?
- Pokud uložím INT do binárního souboru a načtu ho do programu v C++, budu kompatibilní?
- Budu kompatibilní, pokud ten Python spustím na 32-bit RPi a soubor otevřu v nativní aplikaci na AMD64 psané dejme tomu v C#?
- Jakou velikost bude mít ten soubor, když v něm bude pole 100 000 000 intů?

Je jedno jak Python uklada inty. Treba je ma ulozeny v cloudu a taha je pres sit. Je to abstrakce za kterou muze byt cokoliv. Ale pravdepodobne to bude ulozeny jako bytearray s variabilni velikosti.

Do binarniho souboru budes ukladat serializovanou reprezentaci. Zadnej dump internich struktur a srani se s endianem jako to delaji prasata v c++.

List bude mit umernou hodnotu velikosti ulozenych dat. 100m intu, log n bitu na kazdy integer. Ty jsi ho asi chtel nachytat na tom, ze int je fixed size datatype.

Polozil bych tu otazku jinak. Jakou velikost bude mit soubor kdyz v nem bude pole 100 000 000 stringu?