Funkcionální jazyky.

Re:Funkcionální jazyky.
« Odpověď #105 kdy: 20. 08. 2015, 09:45:45 »
Okrajový smalltalk si necháme na jindy. Vycházím ze situace OOP v současných mainstream jazycích.
Reagoval jsem na to, že jsi napsal "OOP nikdy nebylo o ...". Na začátku bylo o posílání zpráv, byla to jeho klíčová myšlenka.


Kid

Re:Funkcionální jazyky.
« Odpověď #106 kdy: 20. 08. 2015, 11:07:28 »
Reagoval jsem na to, že jsi napsal "OOP nikdy nebylo o ...". Na začátku bylo o posílání zpráv, byla to jeho klíčová myšlenka.

V době zavádění OOP do mainstream praxe se tato myšlenka již nezmiňovala a hlavně neaplikovala. Pro mainstream OOP proto nikdy nebylo o ...
Z hlediska archeologie samozřejmě máte pravdu Vy, časově první byla zaniklá kultura kolem firmy Xerox :)

Re:Funkcionální jazyky.
« Odpověď #107 kdy: 20. 08. 2015, 11:20:21 »
Reagoval jsem na to, že jsi napsal "OOP nikdy nebylo o ...". Na začátku bylo o posílání zpráv, byla to jeho klíčová myšlenka.

V době zavádění OOP do mainstream praxe se tato myšlenka již nezmiňovala a hlavně neaplikovala. Pro mainstream OOP proto nikdy nebylo o ...
Z hlediska archeologie samozřejmě máte pravdu Vy, časově první byla zaniklá kultura kolem firmy Xerox :)
ObjC je vosk?

Pavel Tisnovsky

Re:Funkcionální jazyky.
« Odpověď #108 kdy: 20. 08. 2015, 11:23:18 »
...Jakmile pomatenci začali OOP zneužívat na modelování reálného světa tak to nutně muselo skončit obrovským průšvihem, protože OOP na to nikdy nebylo stavěné a také se tak stalo :) Čili problémem není OOP, ale nerealistická očekávání od OOP, OOP je mírná evoluce procedurálního programování, žádný megahyperzázrak, spasení lidstva a záchrana Pandy Velké :)

Tak, a ještě horší situace nastává, když se OOP (resp. OOP se třídami) začne násilím roubovat na jiná paradigmata. Už jsem vidět šílené (relační) DB schéma navržené "objektově", to byl dobrej humus. Asi 300 tabulek pro zcela jednoduchej use case atd. atd. Jen proto, že se někdo od Javy nechtěl "špinit" s SQL :-)

Re:Funkcionální jazyky.
« Odpověď #109 kdy: 20. 08. 2015, 11:25:08 »
V době zavádění OOP do mainstream praxe se tato myšlenka již nezmiňovala a hlavně neaplikovala.
A to je přesně důvod, proč je OOP tam, kde je. Je to jako bys řekl "Jo, historicky jakýsi akademický magor vymyslel potrubí s dírou, ale při zavádění do praxe se prosadily plné trubky" :)

P.S. nemáš pravdu, že se ta myšlenka nezmiňuje. Zmiňuje se pořád. Viz např. http://stackoverflow.com/questions/2347973/how-exactly-do-objects-communicate-with-each-other-by-passing-messages Q.E.D.


Kid

Re:Funkcionální jazyky.
« Odpověď #110 kdy: 20. 08. 2015, 16:28:10 »
A to je přesně důvod, proč je OOP tam, kde je.

Technicky je mainstream OOP slabší než mohlo být, to je jasné. Tristní stav kolem OOP je především díky produkci akademických magorů a za to OOP opravdu nemůže.
Viz právě uvedený link na stackoverflow, stačilo podle pravdy říct že na posílání zpráv objektům se mainstream vys***, na Wikipedii jsou bajky a hotovo :)

Tak, a ještě horší situace nastává, když se OOP (resp. OOP se třídami) začne násilím roubovat na jiná paradigmata.

No to je pak peklo :)

Re:Funkcionální jazyky.
« Odpověď #111 kdy: 20. 08. 2015, 23:56:38 »
Tristní stav kolem OOP je především díky produkci akademických magorů a za to OOP opravdu nemůže.
OOP z principu nemůže moci za nic, protože to není nic jiného než čistě abstraktní koncept, který nikam nechodí, nic nikomu neříká a žádný software nepíše. Pokud se budeme bavit o tom, kdo za co může, tak to můžou být buď návrháři jazyka, implementátoři, investor/vlastník_práv nebo uživatelská obec.

A pokud tvrdíš, že za něco můžou akademici, tak by bylo dobré to pojmenovat konkrétně. Já mám třeba neodolatelný dojem, že na vině jsou především implementátoři, kteří původní dobře (vy)myšlený koncept pomocí nevhodných rozhodnutí dovedli do slepé uličky. A jedna z těch věcí je zapomenutí na důležitost konceptu asynchronního a snadno dynamicky dispatchovatelného zasílání zpráv. Což se neprojevilo na jednojádrových strojích, ale dneska je to slepá ulička plná upírů, vampírů, mutexů, locků, deadlocků a jiných strašáků. Druhá chyba bylo přehnané zdůrazňování dědičnosti, čímž se OOP dostalo do situace, kdy jenom nekonečně řeší problémy, které si samo nadrobilo a víc než řešení problému připomíná hádky o to, která křesťanská sekta jsou ti praví křesťané.

Nic z toho není dílem akademiků. Naopak když to akademici viděli, rozpracovali spoustu jiných cest, kterýma je možný se vydat a který těmihle neduhy netrpí (čímž netvrdím, že nemají jiné). Včetně třeba variací na původní koncept, který "reálné OOP"* zprofanovalo do nepoužitelnosti - jako třeba agenti, actor model apod., což v principu není nic jiného, než "původní OOP".

* podle vzoru "reálný socialismus"

Kid

Re:Funkcionální jazyky.
« Odpověď #112 kdy: 21. 08. 2015, 08:50:00 »

Tomu rozumím, já ale celou dobu píšu o něčem jiném :) Problémem není technická nedokonalost implementace OOP ale přehnaná očekávání od implementace OOP. Dokud někteří akademikové a další verbež nezačali v souvislosti s OOP produkovat sra*** o modelování reálného světa, zasílání zpráv a další, byl svět v pořádku, všichni věděli že mainstream OOP je pouhá mírná evoluce procedurálního programování ;)

Asynchronní dynamický message dispatch má svoje určité výhody a svoje určité nevýhody, ani tohle není konečné spasení světa :) Probereme to jindy.

Re:Funkcionální jazyky.
« Odpověď #113 kdy: 21. 08. 2015, 09:29:49 »
Tomu rozumím, já ale celou dobu píšu o něčem jiném :) Problémem není technická nedokonalost implementace OOP ale přehnaná očekávání od implementace OOP. Dokud někteří akademikové a další verbež nezačali v souvislosti s OOP produkovat sra*** o modelování reálného světa, zasílání zpráv a další, byl svět v pořádku, všichni věděli že mainstream OOP je pouhá mírná evoluce procedurálního programování ;)
Ve vší úctě :), tohle je totální krávovina, co jsi napsal.

Re:Funkcionální jazyky.
« Odpověď #114 kdy: 21. 08. 2015, 09:56:55 »
...Jakmile pomatenci začali OOP zneužívat na modelování reálného světa tak to nutně muselo skončit obrovským průšvihem, protože OOP na to nikdy nebylo stavěné a také se tak stalo :) Čili problémem není OOP, ale nerealistická očekávání od OOP, OOP je mírná evoluce procedurálního programování, žádný megahyperzázrak, spasení lidstva a záchrana Pandy Velké :)

Tak, a ještě horší situace nastává, když se OOP (resp. OOP se třídami) začne násilím roubovat na jiná paradigmata. Už jsem vidět šílené (relační) DB schéma navržené "objektově", to byl dobrej humus. Asi 300 tabulek pro zcela jednoduchej use case atd. atd. Jen proto, že se někdo od Javy nechtěl "špinit" s SQL :-)

Jo, bohužel tohle je tragická realita - kolikrát nechápu, kde se v systému objevují stovky tabulek, a proč dotazy obsahují desítky joinů - a pak ORMka dávají logiku - při silně neprakticky navrženém schématu databáze se fakt SQLka píší špatně - a potřebujete ORMko, jinak se z toho zblázníte. Při návrhu relační databáze je potřeba zapomenout na dědičnost - jinak je to neštěstí.

JSH

Re:Funkcionální jazyky.
« Odpověď #115 kdy: 21. 08. 2015, 10:39:34 »
Tomu rozumím, já ale celou dobu píšu o něčem jiném :) Problémem není technická nedokonalost implementace OOP ale přehnaná očekávání od implementace OOP. Dokud někteří akademikové a další verbež nezačali v souvislosti s OOP produkovat sra*** o modelování reálného světa, zasílání zpráv a další, byl svět v pořádku, všichni věděli že mainstream OOP je pouhá mírná evoluce procedurálního programování ;)
ehm... Ta mírná evoluce procedurálního programování přišla až podstatně později než to původní OOP se zprávama. Ale chápu. Nadávat na akademiky a jinou verbež je jednodušší než se vzdělávat.

OOPice

Re:Funkcionální jazyky.
« Odpověď #116 kdy: 21. 08. 2015, 11:03:24 »
A co konkrétně je špatné na té dědičnosti, kdy si prostě nějakou funkcionalitu, co je společná pro víc třd, vyčlením do zvláštní třídy a pak si ji podědím? Jak jinak by jste tohle chtěli třeba řešit (a lépe).

Re:Funkcionální jazyky.
« Odpověď #117 kdy: 21. 08. 2015, 11:07:30 »
A co konkrétně je špatné na té dědičnosti, kdy si prostě nějakou funkcionalitu, co je společná pro víc třd, vyčlením do zvláštní třídy a pak si ji podědím? Jak jinak by jste tohle chtěli třeba řešit (a lépe).
Nechceš na to založit separé vlákno? Už jsme to tady tím OOP zaplevelili až hanba :)

Makovec nereg

Re:Funkcionální jazyky.
« Odpověď #118 kdy: 21. 08. 2015, 12:33:39 »
A co konkrétně je špatné na té dědičnosti, kdy si prostě nějakou funkcionalitu, co je společná pro víc třd, vyčlením do zvláštní třídy a pak si ji podědím? Jak jinak by jste tohle chtěli třeba řešit (a lépe).
Nechceš na to založit separé vlákno? Už jsme to tady tím OOP zaplevelili až hanba :)

... a nazvat ho "Programovací jazyky budoucnosti (funkcionální a OOP), zdělání (VŠ) je k ničemu", zdá se že tato při themata vždy organicky zkonvergují do jednoho spletence vláken.  ;D :P

Kid

Re:Funkcionální jazyky.
« Odpověď #119 kdy: 21. 08. 2015, 13:20:22 »
ehm... Ta mírná evoluce procedurálního programování přišla až podstatně později než to původní OOP se zprávama. Ale chápu. Nadávat na akademiky a jinou verbež je jednodušší než se vzdělávat.

Nechápete, přišel jste pozdě :) Nadává se magorům co kolekci dat a metod spojují s modelováním reálného světa a zasíláním zpráv.
Vzdělání do kolekce dat a metod asynchronní message dispatch nepřidá, tím není dotčena důležitost vzdělání.