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.
_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs