"Lambda Dance", Haskell polemic,...

Wojciech Moczydlowski, Jr khaliff@astercity.net
Fri, 4 May 2001 09:21:54 +0200 (CEST)

On Tue, 3 Apr 2001, Brian Boutel wrote:

> they do the job better that the proprietary competition. Why then has
> Haskell not done as well as sendmail or apache? Perhaps because the
> battleground is different. To get people to adopt Haskell (or any other

> brian

IMO, what's also important, is an infamous memory consumption. Everybody
seems to ignore it, but by now I wouldn't use Haskell in a commercial product, 
because of this little inconvenience. For me, it doesn't matter much if a
language is slow - as far as it's not very slow, it's ok. More important for
me is the predictability. I have to know how much memory my program will
eat. And in Haskell, with ghc the only sure answer is: "Very much". Things
are better with nhc, true, though I haven't tried yet to use its impressive
profiling tools. Hbc isn't alive, so there's no point in speaking about it.
The other thing, which somebody has mentioned, is a steep learning curve.
Most of us has understood and embraced the monads - in fact, I consider do
notation as one of the more important things in Haskell. Yet it took me some
time to understand it - and when I tried, I was a CS student. IMVHO monads
are a difficult concept to grasp. And simple writing to the screen or
reading text from keyboard enforces us to use IO. I don't know what to do to 
make them easier to understand. Perhaps these new papers make it better. 

The lack of standard arrays, with update in O(1) time, and hashtables is
another thing. Every time I write a larger program, I use lists - with an
unpleasant feeling that my favourite language forces me to use either
nonstandard extensions or uneffective solutions. I think that IO
arrays/hashtables should be in standard. Because they are in IO - they could
work efficiently. Yes, I know about MArray/IArray. Yet I couldn't find
information in sources about complexity of array operations. 
And they aren't Haskell 98 compliant. 

I'm also curious about what you think about the purpose of Haskell. I
personally consider it *the* language to write compilers. 
But what can you do in it besided, that wouldn't be as easy in other languages?
 (I'm talking about large projects, we all know about polymorphism, 
higher-order function, etc.)

Wojciech Moczydlowski, Jr