[Haskell-cafe] MonadError vs Control.Exception
Albert Y. C. Lai
trebla at vex.net
Sat May 5 22:09:59 CEST 2012
On 12-05-04 07:03 PM, Станислав Черничкин wrote:
> Hi, guys, I'm interested in best practices in using of each approach.
> Personally I like MonadError because it is more explicit and
> Control.Exception-s becomes really ugly in complex scenarios.
> User has to deal with
> both, but have no evidence on none of them from type signatures or
My opinion is largely recorded in my sarcastic
Be sure to click the "click me if you can" button and read again.
My sarcastic article focuses on control flow and doesn't comment on
types. I agree about seeing exception possibilities in types. But that
was done 8 years ago:
> So, I hate exceptions, I blame it, I think exceptions is junk came
> from OO-world and horrible languages like C# or even more horrible
> like Java, and it should be wiped out from Haskell with fire. But it
> is only my humble opinion.
While you are entitled to have opinions, and I am fine with those parts
about "I hate exceptions, exceptions is junk", it is irresponsible and
unreasonable to use that right on objective, verifiable, historical
facts. Yes, I really hate it when people do that. "I think Oleg is from
Vulcus" without even asking anyone. "I think everyone uses Java" without
hard data. Programmers' habit of subsituting "thinking" for empirical
facts is one of many reasons why the software profession has not yet
earned the engineering status.
The only two responsible, reasonable positions are:
1. find the answer
2. hold the position that you just don't know
Exceptions appeared as early as in ML and Ada in the 1980s, before many
people knew OO, before ML or Ada got OO stuff, before Java or C# existed
(or when Java was an internal project under two old names at Sun), even
before C++ got exceptions. Exceptions first appeared under another name
in the paper of David Parnas and Harald Würges "response to undesired
events in software systems" in ICSE 1976. Exceptions did not come from
OO or languages you mentioned, and this is not about opinion.
More information about the Haskell-Cafe