
On Friday 10 August 2007 07:46:36 Donald Bruce Stewart wrote:
Doesn't look too good for your assertion :(
Poor benchmark design forces the authors of the shootout to subjectively reject or cripple submissions. In fact, counting primes and printing pi are among the worst possible benchmark tasks imaginable. Regardless, of the more objective tests (spectral-norm, fasta, k-nucleotide), Haskell is slower in all cases than all of the following languages: C, C++, D, Pascal, Clean, OCaml, Java, CAL, Scala, MLton and C# (Mono). I don't know what you're counting as an imperative language but I am sure you can find some in that list. The ray tracer is a much more objective measure because it is a practically irreducible task. Haskell remains something like 3x slower than OCaml, Scheme and C++: http://www.ffconsultancy.com/languages/ray_tracer/results.html You might also like to finish the Minim interpreter or compare the performance of some other suitably small interpreters perhaps running some larger programs. A Haskell implementation of the "n"th nearest neighbours example from my book would be interesting. The program is small, computationally intensive and of practical interest. The symbolic simplifier would be a good benchmark if it were run on non-trivial input. A term rewriter to evaluate some simple Mathematica programs would be interesting. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. OCaml for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists/?e