K tem burritos - Crockford (alespon v tom videu, co jsem videl) monady primo neprirovnava k burritos. Tam slo o to ze
Aby clovek pochopil monady, musi se nejdrive naucit Haskell a teorii kategorii.
je v podstate to stejne jako
Aby clovek pochopil burritos, musi se nejdrive naucit spanelsky.
Rozhodne z toho nevyplyva, ze monady = burritos, "Haskell + teorie kategorii" = spanelstina nebo ze kdyz pochopim burritos, tak pochopim monady
.
Prostě, mám pocit, že tohle téma může dobře vysvětlit jenom člověk, kterej nemá potřebu dělat chytrýho, ale naopak se rád sníží k "dětinským" příkladům, aby studenty látku efektivně naučil. A takových učitelů je bohužel na našich VŠ asi dost málo...
Tesat do kamene. Na VUT FIT v Brne jsme meli hodne ucitelu, kteri vucovani moc nezvladali (casto matematiky a ty silne teoreticke predmety; ale nebudu jmenovat, protoze tam byla alespon ta snaha). Bylo to neprijmne, protoze nejen, ze latka byla velmi narocna, navic nebyla vysvetlena moc dobre. No, a pak tam bylo nekolik presne takovych prednasejicich, o kterych pises (a shodou [?] okolnosti zrovna i ten FP predmet) - namachrovani, nikdy si neodpusti studenta shodit, otevrene davaji najevo (nekteri to i na rovinu rekli), jak vsichni studenti jsou flakaci a oni prednasi, jen aby meli penize na svuj vyzkum, at je tedy moc neotravujeme (mezi takove patrili pan Hruska a pan Kolar).
Je to škoda. Zrovna tohle by si zasloužil znát každý mírně nadprůměrný programátor...
Bych sel klidne i dal, kazdy prumerny by to mohl znat. Jako takove ty nejjednodussi veci typu operace nad kolekcemi si myslim nikomu neublizi a mohou hodne pomoci. I pokud jde o prumerneho programatora (coz neberu jako nic spatneho, sam se asi radim do teto kategorie, protoze z te teorie znam opravdu malo), ktery bude vyvojarit v Java/C#/JavaScriptu/PHP, tak snad vsude jsou dostupne budto primo v jazyku nebo pomoci externich knihoven nastroje umoznujici nejaky zakladni FP pristup (Java s verzi 8, C# ma ty divne metody ala SQL, JS treba Lodash, pro PHP jsem vygooglil functional-php).
Je opravdu k placi videt tu argumentovat C#pistu, jak ze pojmenovani "map, fold/reduce, filter" je nevhodne, ze C# to ma jako "select, aggregate, where" a jak je to mnohem nazornejsi a lip to vystihuje danou funkci...
FP určitě do mainstreamu pronikat bude (už se to masově děje), ale řekl bych, že spíš v takové té pragmatičtější formě - jako volitelná součást, použitelná, pokud programátor chce, ale nesvazující ho tam, kde nechce.
Hodne me prekvapilo, kdyz jsem se dozvedel o
Redux, ktere je v podstate FRP (ted se divam na ten clanek a ono to cerpa i z Elmu, nepsal jsi v tom?). Ve vodach Reactu je to myslim hodne popularni a uz i s Angularem to lidi pouzivaji.
Prave treba ta Scala, si myslim, je to pragrmaticke vyusteni - hybrid mezi OOP a FP. Pro lidi prechazejici z Javy lze psat skoro stejnym stylem ve Scale, jak byli zvykli v Jave (jsou tu vyjimky, treba pouze jeden hlavni konstruktor a ostatni musi pouzivat ten hlavni - to pro me byl ze zacatku maly sok). Ale postupne muzou zacit experimentovat s FP stylem s kolekcemi, ktere maji opravdu spoustu uzitecnych funkci, a jit jen tak daleko s FP, jak oni (nebo jejich tym) budou chtit.