Muzu potvrdit. Nas skolni tymovy projekt v Haskellu takto zacinal ("musi se tam placnout do a pouzivat ta sipka"
). Dale nasledovalo zdeseni, ze to divne "IO" se musi vsude na desitkach mist dopsat, aby se to vubec prelozilo - doslova jsme si rikali, ze nam to IO infikovalo cely kod. Ke konci projektu jsme snad dokonce i zacinali chapat, o co jako ze asi jde. BTW teorie z prednasky nam byla uplne na pendrek, to uz vice nam daly cvika, kde se naopak jelo spise vyhradne na prakticke priklady.
No a tohle je presne ta tragedie. A presne proto si myslim, ze by Elm byl jako intro-jazyk lepsi a prejit od nej na Haskell by pak uz tolik nebolelo. Napr. si vem, ze by ses tenkrat nemusel ucit nejakou "IO monadu", ale dozvedel by ses, ze putStr ma treba takovyhle typ (ilustracni priklad!):
putStr :: String -> Task
a getStr takovyhle:
getStr :: Task String
- hned by ti bylo jasny, ze putStr vytvari
prikaz pro runtime, aby neco vypsal. A ze ten prikaz je proste jenom nejaka datova struktura, kterou muzes klidne predavat z (ciste) funkce sem a tam, ruzne transformovat, retezit, cokoli... ale k tomu, abys z "Task String" dostal ten String, musis ten Task String nejak "spustit", coz se uvnitr toho jazyka udelat neda.
Vubec bys nepotreboval dumat nad nejakymi monadami a milionem roztodivnych operatoru, ktere funguji jenom kdyz se zapisou v nejakem magickem poradi, ktere nikdo nechape a je potreba to proste vyzkouset

...no a az by vsichni pracovali s Tasky jako kdyz lambdou mrska, tak by ctihodny pan profesor prisel s fascinujici otazkou: "A panove a damy, ze nevite, co ma spolecneho List a Task?"

Nekdo by tu nasledujici odpoved dal, nekdo ne, ale Tasky by chapali vsichni. Protoze - jak rika ten clanek, co mi pry odporuje - prvne potrebuje clovek videt neco konkretniho a pak teprve se posunout k abstrakci.