Hello,
> We investigated alternative languages to diversify
into last year and Haskell
> was one of them. The single biggest problem with Haskell is that it
is wildly
> unpredictable in terms of performance and memory consumption.
>
This is only the case if you don't understand lazy
evaluation. This is no different from OCaml, or any language. One must
understand the operational semantics to write efficient code. Imagine how
a C programmer feels when writing OCaml without knowing to make functions
tail-recursive.
> The Haskell mailing lists are full of people asking why their programs
run so
> slowly. The response is generally to litter the code with strictness
> annotations and then resort to unsafe operations. There is virtually
no
> usable information explaining how to optimize Haskell code.
>
Many people using Haskell don't fully appreciate the
enormous difference between eager and lazy evaluation; furthermore, most
languages, functional or otherwise, use some sort of eager evaluation.
Strictness annotations and unsafe operations are rarely necessary to write
efficient code (but they are necessary to make code written for an eager
language run fast in a lazy language).
In any case, I'm not trying to push Haskell or OCaml;
they are both useful in the real-world.
I wonder if similar complaints (unpredicatable performance,
memory use, dearth of practical information) will arise about F# as it
starts to be widely adopted in the real world.
-Jeff
---
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.