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.