To s tou údržbou by si taky zasloužilo nějaké bližší vysvětlení.
Jakmile tam někde něco chci změnit, začne to vystřeloval chyby a rozpadá se to. Prostě já s ním nedělám rád.
Není rozdíl v tom, když vám chyby vyhodí překladač a když chyby vyhodí runtime. Chyba je chyba a je jedno v kterém kroku se na ni přijde. Jedno to nebylo před 30 lety, kdy byl strojový čas drahý.
Rozhodně není.
V každém "deklarativním" jazyku je chybu težší odhalit, protože odvozovací pravidla generují vlastní jazyk a vyřešit úlohu, zda generovaný jazyk, odpovídá konkrétnímu jazyku a zamýšlenému účelu, je dosti náročné, už jenom proto, že musíte pracovat se všemi pravidly najednou a nebo neustále ověřovat, jaké pravidlo bylo uplatněno v daném místě. Velkou paseku nadělají i "e-pravidla", pak musíte hledat všechna pravidla, která se mohou v daném místě vyskytnout místo "e-pravidla" a to stále znovu a znovu.
Jazyk aplikace se pak "syntetizuje", tedy na každou akci si musíte vytvořit vlastní slovo (funkci), které získáváte odvozováním od už existujíích slov (funkcí), takže závislosti vznikají mnohem horší než u imperativních jazyků, kde můžete rozumně závislosti omezit na okolí funkce, či metody.
Abych šetřil svou klávesnici - prostě to otoč, a budeš znát můj názor.
Výhody FP jsou zdánlivé, protože toto paradigma není široce používáno a každý kdo ho používá se hrabe většinou ve vlastním kódu, takže sdílená údržba různými lidmi není dostatečně ověřena.
To nemohu potvrdit. Ve většině haskellovského kódu, co jsem si přitáhl z cabalu jsem se celkem dobře orientoval, a když jsem něco potřeboval, tak to doslova spolupracovalo. Navzdory tomu, že i Haskellisti trpí nemocí, "na co dokumentace".