News for hackers. Stuff that matters.
Re:Frege: A Haskell-Like Language for the JVM by jbooth on Thursday August 13, 2015 @09:09PM (#10058111)
I think the bad, overwrought explanations are the whole reason.

Yes, they're much simpler than differential equations. But the difference is, differential equations are the simplest way to solve some difficult problems -- monads are often the gratuitously complex way to solve simple problems.

Re:Frege: A Haskell-Like Language for the JVM by iopq on Friday August 14, 2015 @12:10AM (#10058583)
Monads are simple ways to solve simple problems.

Consider the Maybe monad - it encodes optional values in a simple way. The approach before this is to have something called "null" that would wreck your programs. Maybe monad is one of the best improvements to day-to-day programming tasks that I've personally experienced in my lifetime.

Re:Frege: A Haskell-Like Language for the JVM by mafribe on Friday August 14, 2015 @06:51AM (#10059460)
I agree, the concept of monads is very simple, actually trivial. It's just a generalised form of function composition.

But thinking monadically and abstracting monadically is extremely different from what programmers normally learn, for a start because important monads like state and exceptions are built-in features of most programming languages. Seeing that these things have a common pattern, and seeing that it may be worthwhile to abstract this common pattern takes a lot of time.

The mismatch between the utter simplicity of the concept of monads, and the complicated explanations one comes across doesn't help.