[Haskell-cafe] Climbing up the shootout...

Chaddaï Fouché chaddai.fouche at gmail.com
Mon Sep 22 20:21:05 EDT 2008


2008/9/23 Bulat Ziganshin <bulat.ziganshin at gmail.com>:
>> <http://haskell.org/haskellwiki/Wc> seems to do fine; you'll notice
>> it drops "lines" after the first version.
>
> actually it counts lines using built-in function. you may find that
> naive C is 6x fatser than naive Haskell and difference is so small
> only because C version is bound by memory speed

So what ? Strings represented as lists of character are slow ? What an
incredible discovery !

The ByteString versions are fast, ByteString was invented especially
for IO intensive situation, it's a library you can use pretty naively
and mostly get excellent performances, what exactly isn't Haskelly
enough for you in this solution ? The guts of ByteString aren't
idiomatic Haskell ? And ? The guts of the JVM aren't written in Java
either... At least ByteString was built over GHC which means it can be
done.

Besides a part of the performances of ByteString comes from stream
fusion and that's specifically something that is hard to achieve
outside of Haskell...


What exactly is your point ?
- Haskell is slow, we can't make it faster ? That's obviously false as
demonstrated by the progress in the latest years.
- Haskell is slower than C ? Well that's probably true, because C can
touch the hardware directly and can always optimize every single
aspects of a computation... On the other hand that kind of uber
optimization has a cost that I am unwilling to pay, I would rather
write high level Haskell and pay a little hit on execution time.
- We shouldn't center ourselves around performance to promote Haskell
(or should we even promote Haskell) ? Well there you may have a point,
but maybe it would be better to just make it and avoid denying other
peoples efforts to make Haskell faster ?

-- 
Jedaï


More information about the Haskell-Cafe mailing list