Welcome to the new Linux Foundation Forum!
Haskell vs. C++
I have been learning C++, and I now know much of the general syntax. Right now, I am concentrating on learning more of the Standard Template Library. However, I have also learned a bit of Haskell, not nearly as much, and I am interested by it.
So, my question is, what are the basic performance differences that I would generally see if I used Haskell instead of C++, in regards to memory and speed?
0
Comments
According to those benchmarks, C++ is up to 5 times faster, and uses as little as quarter of the memory compared to Haskell.
that is absolutely right. no way to compare them.
Haskell is a niche language, not a general purpose language. It is also an interpreted language, which are generally much slower than compiled languages. Again, exceptions need not apply. We're talking about general performance characteristics.
The benchmark I linked to is not authoritative. But I do not know of any other cross-language benchmark which uses: open-source compilers and interpreters, transparent testing methods and algorithms, well-known algorithms, and algorithms that are fully language-agnostic. For the purposes of basic, generalised performance comparisons between languages, it is a reasonably good benchmark. If a user wants to compare performance differences within a specific problem domain, they'll need to perform benchmark tests themselves.
Then look at how the code is written!
The full source code, compile options and output is shown for all the programs.
GHC is a Haskell compiler.
You can see the compilation command and options in each programs "build & benchmark results" log, for example - http://shootout.alioth.debian.org/u32q/benchmark.php?test=spectralnorm&lang=ghc&id=1#log.
Here's a C interpreter - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=cint - does that make C an interpreted language?
It makes you think rather differently about your solutions (not "how", but "what"), and I would suggest that a lot of functional-style solutions to problems are actually quite enlightening. In addition pure-functionality has important theoretical properties that make it much more amenable to something like data-parallelism due to lack of side-effects, for example...