Co konkrétně myslíte tím čistěji funkcionální? Narážíte na klasické stížnosti např. z We're Doing It All Wrong by Paul Phillips?
Tuhle prednasku jsem nevidel, snad najdu cas na ni v brzke dobe kouknout a dam vedet.
Ted momentalne jsem myslel to, ze se ve Scale (z meho pohledu) uplne zbytecne resi nejake tridy. A z toho plyne spousta vyjimek. Napr. mezi sebou nemuzou dedit case classes. Zadnou logiku to (z pohledu novacka) nedava, je potreba si to zapamatovat.
Myslím, že interoperabilita s Javou není ten hlavní důvod (řekl bych, že důvodem byla absence teoretických základů a fakt, že chování některých vlastností jazyka nebylo dostatečně prozkoumáno v době, kdy se do jazyka dostaly). Třeba Dotty (v podstatě nová verze Scaly) je v některých ohledech čistší než Scala.
To je mozne, fakt se s tim jazykem teprve seznamuju, takze pisu o prvnich dojmech, ne o nejakem hlubokem vhledu. Zatim se z meho pohledu jazyk zbytecne komplikuje tim, co jsem psal vys: ze vubec obsahuje tridy, ktere jsou z pohledu "klasickeho funkcionalniho programovani" dost zbytecne.
Jenže Elm je výrazně jednodušší jazyk, který má v mnoha ohledech o dost horší vyjadřovací schopnosti (např. nemá higher-kinded typy, nemá makra, nemá typové třídy, nemá podtypový polymorfismus).
Ano, to je urcite pravda. Elm je cisty a jednoduchy za cenu mensi sily. Scala je silna a interoperabilni za cenu komplikovanosti.
Napr. obcas mi prekladac pise neco v tom stylu, ze u nejake lambdy potrebuje plne otypovani (omlouvam se, priklad ted narychlo nevymyslim) - proc, to nedokazu odhalit. Nepochybne je to jenom moje neznalost, ale to je prave spatne, ze je jazyk tak komplikovany, ze nejsem schopny predvidat, co prelozi a co ne.
Dalsi vec, kterou vubec nechapu, je nemoznost destrukturovat slozene typy primo v hlavicce fce. Napr. tohle (kod pro
http://flink.apache.org/) je proste zhovadilost:
stream
.map((x) => x match { case (t,v) =>
s"${t}: ${v}"
})
.print
za naprostou samozrejmost bych povazoval zapis
stream
.map( (t,v) => s"${t}: ${v}" )
.print
...to jenom tak pro priklad, je toho daleko vic... prakticky na kazdem kroku narazim na neco, u ceho vubec nechapu, proc je to tak, jak to je... A to proste neni dobre.