Prototypové OOP

Prototypové OOP
« kdy: 15. 07. 2019, 18:33:20 »
Vedeli by ste mi vysvetliť:

1. definíciu a základnú charakteristiku prototypového OOP
2. jeho hlavné výhody / nevýhody
3. Porovnanie s inými typmi OOP
4. vymenovať zaujímavé jazyky ktoré tento typ OOP podporujú


Re:Prototypové OOP
« Odpověď #1 kdy: 16. 07. 2019, 11:00:53 »
Nejrozšířenější jazyk používající prototypovou dědičnost je JavaScript. O prototypové dědičnosti v JavaScriptu si můžete přečíst např. v článku Třídy, dědičnost a OOP v Javascriptu – II.

Re:Prototypové OOP
« Odpověď #2 kdy: 16. 07. 2019, 11:41:33 »
Citace od: Filip Jirsák kdy 16. 07. 2019, 11:00:53
Nejrozšířenější jazyk používající prototypovou dědičnost je JavaScript. O prototypové dědičnosti v JavaScriptu si můžete přečíst např. v článku Třídy, dědičnost a OOP v Javascriptu – II.

Viem najpoužívanejšie prototypové jazyky sú JS a Lua.

Ja by som sa prototypovaniu detailnejšie pozrel na zúbky, ale zrovna JS ho ma trošku zmršené.

Zato taký Self ho má spravené veľmi pekne a zrozumiteľne... Self má, ale veľkú nevýhodu v tom že potrebuje image. Ale napr. Perlovská (Class::Prototyped) má prototype oop na štýl selfu https://metacpan.org/pod/Class::Prototyped#NAME dodržiava aj názvoslovie (addSlots), ale narozdiel od selfu nepotrebuje image.

Re:Prototypové OOP
« Odpověď #3 kdy: 16. 07. 2019, 21:51:14 »
Citace od: fortran1986 kdy 16. 07. 2019, 11:41:33
Zato taký Self ho má spravené veľmi pekne a zrozumiteľne... Self má, ale veľkú nevýhodu v tom že potrebuje image. Ale napr. Perlovská (Class::Prototyped) má prototype oop na štýl selfu https://metacpan.org/pod/Class::Prototyped#NAME dodržiava aj názvoslovie (addSlots), ale narozdiel od selfu nepotrebuje image.

Hlavní problém Selfu určitě není nutnost image. Proč by měla být nutnost image vůbec nevýhoda?

Prototypově programovat můžete nějak nejspíš v nejrůznějších jazycích. Ale v jazyce přímo založeném na prototypech tím získáte určitě víc. Dotaz je moc obecný... a za chvíli tu bude stejně flame.

Ink

  • *****
  • 736
Re:Prototypové OOP
« Odpověď #4 kdy: 17. 07. 2019, 07:39:26 »
Co přesně má to (prototypové) OOP řešit, zajímá Tě to jenom tak, nebo s tím chceš i něco dělat? Úplně chápu, pokud někdo studuje exotické (lidské) jazyky, kultury a organismy, ale z praktického hlediska...


Re:Prototypové OOP
« Odpověď #5 kdy: 17. 07. 2019, 16:04:17 »
Citace od: Ink kdy 17. 07. 2019, 07:39:26
Co přesně má to (prototypové) OOP řešit, zajímá Tě to jenom tak, nebo s tím chceš i něco dělat? Úplně chápu, pokud někdo studuje exotické (lidské) jazyky, kultury a organismy, ale z praktického hlediska...

Pro každého je praktické něco jiného. IMHO javascript je stále populární a může se hodit vědět, jak funguje. Anebo se pak člověk dostane k lepší práci, protože tam třeba bude mít možnost uplatnit rozhled (i když k tomuto levelu je ještě delší cesta, nestačí obecně vědět co to prototypové OOP je).

Re:Prototypové OOP
« Odpověď #6 kdy: 17. 07. 2019, 20:17:26 »
Citace od: Ondrej Nemecek kdy 16. 07. 2019, 21:51:14
Hlavní problém Selfu určitě není nutnost image. Proč by měla být nutnost image vůbec nevýhoda?

Je to môj subjektívny problém. Nemám čas učiť sa popri novom jazyku s novou sémantikou ešte aj nové prostredie a celý nový ekosystém. Inak myslím že image je zaujímavý koncept, ale mne osobne to v tejto situácii nevyhovuje, ale možno predsa len prekonám odpor. Ale inak self sa mi ako jazyk veľmi páči, len škoda toho image :/

Citace od: Ink kdy 17. 07. 2019, 07:39:26
Co přesně má to (prototypové) OOP řešit, zajímá Tě to jenom tak, nebo s tím chceš i něco dělat?

Chcem sa to proste naučiť do hĺbky, zatiaľ mi ide len o teóriu, ktorú ale plánujem využiť pri jednom konkrétnom projekte.

Citace od: Ondrej Nemecek kdy 17. 07. 2019, 16:04:17
Citace od: Ink kdy 17. 07. 2019, 07:39:26
Co přesně má to (prototypové) OOP řešit, zajímá Tě to jenom tak, nebo s tím chceš i něco dělat? Úplně chápu, pokud někdo studuje exotické (lidské) jazyky, kultury a organismy, ale z praktického hlediska...

Pro každého je praktické něco jiného. IMHO javascript je stále populární a může se hodit vědět, jak funguje. Anebo se pak člověk dostane k lepší práci, protože tam třeba bude mít možnost uplatnit rozhled (i když k tomuto levelu je ještě delší cesta, nestačí obecně vědět co to prototypové OOP je).

JS (resp TS) ma živí a viem ako v ňom prototypy fungujú ale chcel som viac zabrdnúť do teórie a rád by som si prototypy pozrel aj z perspektívy iných jazykov. A Self bol predsa len prvý.

gill

  • ****
  • 270
Re:Prototypové OOP
« Odpověď #7 kdy: 18. 07. 2019, 07:36:36 »
Citace od: fortran1986 kdy 16. 07. 2019, 11:41:33
Citace od: Filip Jirsák kdy 16. 07. 2019, 11:00:53
Nejrozšířenější jazyk používající prototypovou dědičnost je JavaScript. O prototypové dědičnosti v JavaScriptu si můžete přečíst např. v článku Třídy, dědičnost a OOP v Javascriptu – II.

Viem najpoužívanejšie prototypové jazyky sú JS a Lua.

Ja by som sa prototypovaniu detailnejšie pozrel na zúbky, ale zrovna JS ho ma trošku zmršené.

Zato taký Self ho má spravené veľmi pekne a zrozumiteľne... Self má, ale veľkú nevýhodu v tom že potrebuje image. Ale napr. Perlovská (Class::Prototyped) má prototype oop na štýl selfu https://metacpan.org/pod/Class::Prototyped#NAME dodržiava aj názvoslovie (addSlots), ale narozdiel od selfu nepotrebuje image.

V čem je to jiné než v JS, kromě názvosloví sloty vs. atributy?

Ink

  • *****
  • 736
Re:Prototypové OOP
« Odpověď #8 kdy: 18. 07. 2019, 11:13:36 »
Citace od: Ondrej Nemecek kdy 17. 07. 2019, 16:04:17
Citace od: Ink kdy 17. 07. 2019, 07:39:26
Co přesně má to (prototypové) OOP řešit, zajímá Tě to jenom tak, nebo s tím chceš i něco dělat? Úplně chápu, pokud někdo studuje exotické (lidské) jazyky, kultury a organismy, ale z praktického hlediska...

Pro každého je praktické něco jiného. IMHO javascript je stále populární a může se hodit vědět, jak funguje. Anebo se pak člověk dostane k lepší práci, protože tam třeba bude mít možnost uplatnit rozhled (i když k tomuto levelu je ještě delší cesta, nestačí obecně vědět co to prototypové OOP je).

Jsem ten poslední člověk na světě, který by byl proti obecnému rozhledu. Nicméně i do toho JavaScriptu přibylo třídy, domnívám se, že prototypové OOP obecně není moc osvědčený způsob psaní programů, proto jsem se ptal, co s tím chtěl původní tazatel řešit.

Re:Prototypové OOP
« Odpověď #9 kdy: 18. 07. 2019, 14:43:32 »
Citace od: fortran1986 kdy 17. 07. 2019, 20:17:26
JS (resp TS) ma živí a viem ako v ňom prototypy fungujú ale chcel som viac zabrdnúť do teórie a rád by som si prototypy pozrel aj z perspektívy iných jazykov. A Self bol predsa len prvý.

To Vám určitě neunikly články na Bystroushaakově blogu


IMHO je to realistické shrnutí stavu ohledně Selfu. O Selfu na Ábíčku psal i Pavel Křivánek.


gill

  • ****
  • 270
Re:Prototypové OOP
« Odpověď #10 kdy: 19. 07. 2019, 13:08:23 »
Citace od: Ink kdy 18. 07. 2019, 11:13:36
Citace od: Ondrej Nemecek kdy 17. 07. 2019, 16:04:17
Citace od: Ink kdy 17. 07. 2019, 07:39:26
Co přesně má to (prototypové) OOP řešit, zajímá Tě to jenom tak, nebo s tím chceš i něco dělat? Úplně chápu, pokud někdo studuje exotické (lidské) jazyky, kultury a organismy, ale z praktického hlediska...

Pro každého je praktické něco jiného. IMHO javascript je stále populární a může se hodit vědět, jak funguje. Anebo se pak člověk dostane k lepší práci, protože tam třeba bude mít možnost uplatnit rozhled (i když k tomuto levelu je ještě delší cesta, nestačí obecně vědět co to prototypové OOP je).

Jsem ten poslední člověk na světě, který by byl proti obecnému rozhledu. Nicméně i do toho JavaScriptu přibylo třídy, domnívám se, že prototypové OOP obecně není moc osvědčený způsob psaní programů, proto jsem se ptal, co s tím chtěl původní tazatel řešit.

třídy v JS jsou jen jiný zápis prototypového OOP.

Re:Prototypové OOP
« Odpověď #11 kdy: 19. 07. 2019, 18:00:10 »
Citace od: Ink kdy 18. 07. 2019, 11:13:36
Jsem ten poslední člověk na světě, který by byl proti obecnému rozhledu. Nicméně i do toho JavaScriptu přibylo třídy, domnívám se, že prototypové OOP obecně není moc osvědčený způsob psaní programů, proto jsem se ptal, co s tím chtěl původní tazatel řešit.

Prototypy sú krásne v tom že sú jednoduché a elegantné zároveň... A dávajú Vám omnoho viac možností ako klasické triedy. Ale viete si pomocou nich doplniť do jazyka aj tie triedy, alebo multiple inheritance, traity, extension metódy. Ako napísal gill, tiredy v JS sú len syntaktický cukor nad prototypmi.

Citace od: Ondrej Nemecek kdy 18. 07. 2019, 14:43:32
To Vám určitě neunikly články na Bystroushaakově blogu


IMHO je to realistické shrnutí stavu ohledně Selfu. O Selfu na Ábíčku psal i Pavel Křivánek.

Ďakujem za typy na zaujímavé články :)