Haskell certainly seems friendly enough to me. It catches most of my errors before I even run the program, it let me hack things relatively quickly with very little code. Yes, there is that "purity" discipline, but I mostly think like that anyway.
Now, it certainly won't be friendly to one who routinely writes code like that:
if (foo)
if (bar)
do_something;
if (foo) {} // OK, do nothing
else if (bar) {} // OK, do nothing
else { do_something; }
(I saw that yesterday in production code!) Those people think too procedurally to be able to understand Haskell, or even ML. You have to fix that flaw first.
(For the few who don't see the code above as utterly ridiculous, here is the better version:)
if (foo && bar)
do_something;
if (!foo && !bar) { do_something; }
Haskell certainly seems friendly enough to me. It catches most of my errors before I even run the program, it let me hack things relatively quickly with very little code. Yes, there is that "purity" discipline, but I mostly think like that anyway.
Now, it certainly won't be friendly to one who routinely writes code like that:
(I saw that yesterday in production code!) Those people think too procedurally to be able to understand Haskell, or even ML. You have to fix that flaw first.(For the few who don't see the code above as utterly ridiculous, here is the better version:)