
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 documentation.
My opinion is largely recorded in my sarcastic http://www.vex.net/~trebla/haskell/exception.xhtml 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: http://www.haskell.org/pipermail/haskell/2004-June/014271.html
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 or 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.