Funkcionální programátor

pb.

Re:Funkcionální programátor
« Odpověď #15 kdy: 29. 06. 2015, 08:54:41 »
To mi vysvětli. Posílání zpráv v OOP dělám běžně.

Ale to nesmíš! Na posílání zpráv je tady SmallTalk, všechny ostatní objektové jazyky jsou procedurální.


Jann

Re:Funkcionální programátor
« Odpověď #16 kdy: 29. 06. 2015, 10:05:17 »
Objektové programování jeho autor definoval jako model založený na uzavřených funkčních entitách uchovávajících svůj stav, vzájemně komunikujících zprávami a na polymorfismu dosaženém pozdní vazbou. Sám autor pojmu objektově orientované programování se podivuje nad tím, jak je možné, že to tolik lidí nebylo schopno pochopit.

Původní OOP pochopí každý za 5 minut, je to asynchronní zasílání zpráv procesům a hledání metod podle názvu. Původní koncept OOP se používá tam kde je jeho místo a to v inter-process komunikaci. Dnešní OOP je úplně něco jiného protože řeší úplně jiné problémy.

Proč se tomu teda říká OOP, když to nemá s OOP téměř nic společného? A jaké problémy řeší? Mimochodem – na „původním” modelu OOP je založeno třeba Cocoa. Když má z něho člověk po půlročním projektu přejít zase třeba na MFC, tak si připadá, jako kdyby se vrátil někam do doby kamenné.

čumil

Re:Funkcionalni programator
« Odpověď #17 kdy: 29. 06. 2015, 10:25:43 »
"Dnešní oop jazyky sou procedurální jazyky"

Desítky let vývoje, desetitisíce vývojářů ... a přitom - stačilo se zeptat prvního českého burana, který by hned věděl jak je všechno blbě a co a jak má být ..
Vole, když nesouhlasíš s mým názorem, oponuj nějakou myšlenkou. Jediný český buran si tady ty. "všichni říkají že mlátit ženy je dobré, a ty, ty si debil protože jediný říkáš že to není pravda". Nebo jiný příklad chceš? Argumentovat že když to říkají/dělají všichni, tak je to nepochybně správně je na úrovni základní školy.

čumil

Re:Funkcionální programátor
« Odpověď #18 kdy: 29. 06. 2015, 10:30:08 »
Citace
Dnešní oop jazyky sou procedurální jazyky s troškou syntaktickeho cukru aby to vypadalo jak posílání zpráv.
ano, a?

mozete sediet doma pri pive a robit while(true) printf("svet ide do zadeke")

svetu vladne oop ako videne v jave/.net, pripadne multiparadigmaticky gulas ako javascript ci scala alebo v sucasnosti nahypovana vzbura ... clojure. (na smalltalk sa spomina pri vatre)

ano java oop je proceduralne aby ste ho mohli pouzivat ako stateless a teda pseudo funkcionalne
Eh, teda hmm. No. Vysvětli mi poslední větu prosím. Jedna moje polovina je strašně zvědavá na to, co se dozví, a ta druhá to ani nechce vědět.

čumil

Re:Funkcionální programátor
« Odpověď #19 kdy: 29. 06. 2015, 10:40:51 »
OOP i FP paradigmata trpí tím, že valná většina programátorů neví o co vůbec jde a s klidným svědomím řekne že C++/Java/C#/Python/... implementují OOP a zároveň i FP. Přitom dané jazyky neimplementují ani jedno. Korunu tomu poté dá hláška kterou jsem měl čest slyšet: "jo jazyk XYZ je funkcionální, jsou v něm taky ty funkce ...". Super, jsou tam funkce, je to funkcionální ...

Jako, je mi to trošku líto, vůbec jsem nechtěl odvést vlákno na Smalltalk, pouze sem ale nechtěl aby na mne skočil někdo s tím, že přece Scala nekombinuje deklarativnost a imperativnost protože OOP není imperativní. Ne není. Ale to dnešní jo.


Kolemjdoucí

Re:Funkcionální programátor
« Odpověď #20 kdy: 29. 06. 2015, 11:33:52 »
Proč se tomu teda říká OOP, když to nemá s OOP téměř nic společného? A jaké problémy řeší? Mimochodem – na „původním” modelu OOP je založeno třeba Cocoa. Když má z něho člověk po půlročním projektu přejít zase třeba na MFC, tak si připadá, jako kdyby se vrátil někam do doby kamenné.

S původním významem OOP nemá společného prakticky nic, ani Smalltalk ani Cocoa.
Původní OOP je o zasílání asynchronních zpráv samostatně fungujícím jednotkám jako třeba počítač, proces, vlákno, to vše s pozdní vazbou.

Jann

Re:Funkcionální programátor
« Odpověď #21 kdy: 29. 06. 2015, 11:58:22 »
Proč se tomu teda říká OOP, když to nemá s OOP téměř nic společného? A jaké problémy řeší? Mimochodem – na „původním” modelu OOP je založeno třeba Cocoa. Když má z něho člověk po půlročním projektu přejít zase třeba na MFC, tak si připadá, jako kdyby se vrátil někam do doby kamenné.

S původním významem OOP nemá společného prakticky nic, ani Smalltalk ani Cocoa.
Původní OOP je o zasílání asynchronních zpráv samostatně fungujícím jednotkám jako třeba počítač, proces, vlákno, to vše s pozdní vazbou.

To je naprostý nesmysl.
To, co píšeš, je pouhá IPC a to s objektově orientovaným programováním nijak nesouvisí. Pojem „Object Oriented Programming” zavedl Alan C. Kay a ten tím rozhodně nemyslel to, co jsi napsal – viz veřejně dostupné zdroje.

Kolemjdoucí

Re:Funkcionální programátor
« Odpověď #22 kdy: 29. 06. 2015, 12:07:28 »
To je naprostý nesmysl.
To, co píšeš, je pouhá IPC a to s objektově orientovaným programováním nijak nesouvisí. Pojem „Object Oriented Programming” zavedl Alan C. Kay a ten tím rozhodně nemyslel to, co jsi napsal – viz veřejně dostupné zdroje.

Původní OOP je to čemu se dneska říká IPC, konečně se v tom začínáte orientovat :D Veřejně dostupné zdroje to potvrzují:

- I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages

http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en

Jann

Re:Funkcionální programátor
« Odpověď #23 kdy: 29. 06. 2015, 12:28:11 »
To je naprostý nesmysl.
To, co píšeš, je pouhá IPC a to s objektově orientovaným programováním nijak nesouvisí. Pojem „Object Oriented Programming” zavedl Alan C. Kay a ten tím rozhodně nemyslel to, co jsi napsal – viz veřejně dostupné zdroje.

Původní OOP je to čemu se dneska říká IPC, konečně se v tom začínáte orientovat :D Veřejně dostupné zdroje to potvrzují:

- I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages

http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en

Aha, no už mi je konečně jasné, odkud se vzala ta vaše popletenost.  :) Připomínáte mi režiséra Kohoutka ve filmu Trhák, jak vždycky nějakou scénu ve scénáři špatně pochopí a začne ji realizovat doslova: „Listonoška se nemůže odtrhnout od okna.” – Pro Krista pána! Takhle já jsem to nemyslel! Pohledem se nemůže odtrhnout, to se přece tak říká… – Ale vy jste tam speciálně vypíchnul to lepidlo! – Já jsem nic nevypichoval, jen jsem prostě popsal normální rekvizity přítomné na každé poště.

Takže zdroj jste četl dobrý, teď ještě zapracovat na čtení textu s porozuměním, v tomto případě doporučuji zamyslet se nad významem slovíčka like;)

karel

Re:Funkcionální programátor
« Odpověď #24 kdy: 29. 06. 2015, 12:35:09 »
OOP i FP paradigmata trpí tím, že valná většina programátorů neví o co vůbec jde a s klidným svědomím řekne že C++/Java/C#/Python/... implementují OOP a zároveň i FP. Přitom dané jazyky neimplementují ani jedno. Korunu tomu poté dá hláška kterou jsem měl čest slyšet: "jo jazyk XYZ je funkcionální, jsou v něm taky ty funkce ...". Super, jsou tam funkce, je to funkcionální ...

Jako, je mi to trošku líto, vůbec jsem nechtěl odvést vlákno na Smalltalk, pouze sem ale nechtěl aby na mne skočil někdo s tím, že přece Scala nekombinuje deklarativnost a imperativnost protože OOP není imperativní. Ne není. Ale to dnešní jo.

Takze podle tebe jsou to vse jen proceduralni jazyky ? 
Nebo to nejsou jazyky vubec ?



hu

Re:Funkcionální programátor
« Odpověď #25 kdy: 29. 06. 2015, 12:37:37 »
Drazí odborníci, docela by mě zajímalo, zda lze například concurrent assignments ve VHDL považovat za funkcionální prvek. Zvláště pak pokud výstupem kompilace (resp. syntézy) není program, ale zapojení.

Kód: [Vybrat]
a <= b or c;
d <= a and not e;



čumil

Re:Funkcionální programátor
« Odpověď #26 kdy: 29. 06. 2015, 12:50:19 »
OOP i FP paradigmata trpí tím, že valná většina programátorů neví o co vůbec jde a s klidným svědomím řekne že C++/Java/C#/Python/... implementují OOP a zároveň i FP. Přitom dané jazyky neimplementují ani jedno. Korunu tomu poté dá hláška kterou jsem měl čest slyšet: "jo jazyk XYZ je funkcionální, jsou v něm taky ty funkce ...". Super, jsou tam funkce, je to funkcionální ...

Jako, je mi to trošku líto, vůbec jsem nechtěl odvést vlákno na Smalltalk, pouze sem ale nechtěl aby na mne skočil někdo s tím, že přece Scala nekombinuje deklarativnost a imperativnost protože OOP není imperativní. Ne není. Ale to dnešní jo.

Takze podle tebe jsou to vse jen proceduralni jazyky ? 
Nebo to nejsou jazyky vubec ?
Ano. Méně jízlivosti a více myšlení prosím. Než ale budeš zběsile psát nějakou odpověď postrádající SMYSLUPLNÝ argument, prosím, nastuduj si něco o paradigmatech či paradigmatu, o kterém chceš diskutovat. Fakt není možný vést diskuzi s lidmi, kteří vlastně ani nevědí o co jde, jen je sere člověk kterej jim boří představu o jejich jazyku/paradigmatu.

 "COŽE, OOP není OOP? To není pravda, vždyť tady se píše že je, přesně v tédle knize o C++/Javě/Pythonu/jáNevímČehoJeště! Na hranici s ním! Heretik!"

čumil

Re:Funkcionální programátor
« Odpověď #27 kdy: 29. 06. 2015, 13:17:52 »
Drazí odborníci, docela by mě zajímalo, zda lze například concurrent assignments ve VHDL považovat za funkcionální prvek. Zvláště pak pokud výstupem kompilace (resp. syntézy) není program, ale zapojení.

Kód: [Vybrat]
a <= b or c;
d <= a and not e;
VHDL implementuje reaktivní paradigma. Dokonce mám pocit že zrod reaktivního paradigmatu se datuje od vzniku jazyků pro návrh EL zapojení. Takže VHDL je deklarativní jazyk.

Funkcionální prvek je vše co splňuje podmínku referenční transparentnosti. Řečeno jinak, při stejném vstupu vrátí funkce (či "něco" co funkce popisuje) stejný výsledek, je jedno kolikrát a kdy ji vyhodnocujeme (či posíláme "tomu něčemu" data).

Daniel Kozak

Re:Funkcionální programátor
« Odpověď #28 kdy: 29. 06. 2015, 13:41:12 »
OOP i FP paradigmata trpí tím, že valná většina programátorů neví o co vůbec jde a s klidným svědomím řekne že C++/Java/C#/Python/... implementují OOP a zároveň i FP. Přitom dané jazyky neimplementují ani jedno.

Tak treba podle me jazyk D implementuje castecne OOP i funkcionalni programovani a samozrejme i proceduralni. Ano nekdo by to nazval za zmrseni techto paradigmat ja tomu rikam idealni jazyk, protoze mi umoznuje delat vse co potrebuji zpusobem ktery me vyhovuje.

Korunu tomu poté dá hláška kterou jsem měl čest slyšet: "jo jazyk XYZ je funkcionální, jsou v něm taky ty funkce ...". Super, jsou tam funkce, je to funkcionální ...

Jo toto je(byl) bohuzel casty omyl, nastesti diky osvete uz se to uz zlepsilo. Priznam se ze jako dite jsem si to taky myslel.

hu

Re:Funkcionální programátor
« Odpověď #29 kdy: 29. 06. 2015, 13:45:43 »
VHDL implementuje reaktivní paradigma. Dokonce mám pocit že zrod reaktivního paradigmatu se datuje od vzniku jazyků pro návrh EL zapojení. Takže VHDL je deklarativní jazyk.

Funkcionální prvek je vše co splňuje podmínku referenční transparentnosti. Řečeno jinak, při stejném vstupu vrátí funkce (či "něco" co funkce popisuje) stejný výsledek, je jedno kolikrát a kdy ji vyhodnocujeme (či posíláme "tomu něčemu" data).

O reaktivním paradigmatu slyším prvně. Měl bys nějaký relevantní link?