Snipped and backdated from a Reddit comment of mine.
If functional programming is so great, why is it still niche? We have a product that can practically eliminate runtime errors, make refactoring much easier, lighten the testing burden, all while being quite delightful to use. What’s the hold up?
One factor is that we make things artificially hard to learn, sometimes with a seemingly pathological glee.
Seriously, what language already does that?
Hell, we don’t even need to use the word “monad”. What honestly is the benefit of using the word “monad” other than to “sound smart” and for newcomers to Google it and become even more confused than they were already? (Sure, knowing something is a monad is probably useful to the miniscule group of people actually understand it.)
Take a look at Elm’s documentation. Elm’s documentation for
Maybe.andThen describes in absolute simple terms how to “chain together many computations that may fail.” It describes in plain English how to practically use “monads” without even using the word.
Point being, we don’t need to make things to unnecessarily complicated. You already have Haskell for that.