Haskell je prakticky asi jak pro koho - osobne si myslim, ze je to pouze o zpusobu vzdelavani, kde se na zacatek silne preferuji imperativni jazyky (Java, Python, Pascal). Napr. na FITu jsme si funkcionalni pristup osahali az v magisterskem, ktere bylo povazovano nekterymi prednasejicimi za nadstandard a do praxe muze student v pohode i jen s bakalarem.
Osobne si nemyslim, ze kvalita jakkoliv souvisi s popularitou. Kvalitni jazyk se totiz podle me nesnazi pretrhnout kvuli zacatecnikum a znehodnotit tak sve dalsi casti nebo cely svuj pristup. A kdyz jsme u toho, tak pokud chcete objektivne merit kvalitu/pouzitelnost a vztahnete ji i k popularite, jak presne objektivne merite popularitu?
Podle radek kodu v produkci? Celkoveho vydelku vyvojaru pouzivaci ten jazyk? Nejake nahodne zvolene kriterium jako pocet commitu GitHubu a pocet dotazu na StackOverflow?
Prakticka pouzitelnost jazyka zase nema s popularitou IMO nic spolecneho. I uplny odpad, jako PHP, ktery je obtizne pouzitelny (poskytl jsem dost prikladu, nekolik jich dodal i Kit a ten v tom dokonce i vyviji trochu vice) a stejne se stal popularnim. Stejne tak to nerika nic o pouzitelnosti a kvalite jeho knihoven a celkove ekosystemu. (Ktery ho v pripade PHP drzi nad vodou.) To stejne mohu vztahnout na NodeJS - to ze
je JavaScript nejpopularnejsi jazyk na planete z neho nedela nejlepsi jazyk a ani nejpouzitelnejsi, rozhodne ne nejak univerzalne. S chladnou jistotou bych vzdy doporucil Javu, Scalu nebo klidne i ten Haskell na back-end pro jakykoliv projekt, ktery neni "fire-and-forget" - tj. ze se ocekava dlouha doba udrzby. Proste dynamicke jazyky, stejne jako treba ty "pokrocile magie", tam podle me nepatri. Dynamicke jazyky typu Ruby se skvele hodi pro stratup, to nepopiram, projektiky jsou obecne mensi, potrebuji to mit rychle udelane a pokud to uspejeje a budou problemy (u tech uspesnych casto ctu, ze jsou), tak to proste prepisou do neceho vice se hodiciho na dany ukol (vetsinou ta Java ci C#, videl jsem uz ale i treba NodeJS, k cemuz jsem byl trosku skepticky).
S tou pajpou jsem myslel Python. V JavaScriptu je vyhoda, ze je prave ten kratky zapis closure, takze staci pribrat treba ten Lodash a muzete vesele retezit. Bohuzel v Pythonu je lambda silene dlouha na zapis, jako kdyby autor nechtel, aby se to moc pouzivalo. Coz ostatne sedi k jeho postoji o FP. To jsme ale trochu odbocili, protoze ani o JS jsem nepsal, ze je nejake skvele na FP, rozhodne ne out-of-the-box (chybi mi spousta funkci pro manipulaci s poli). Puvodne jsem to srovnaval se Scalou a tam jsou i veci, ktere umoznuji opravdu jednoduchy kod (ktery me prijde hezky, ale to je opravdu silne subjektivni), treba placeholder _.
(1 to 10).filter(_ % 2 == 0).map(_ * 10)