> Quoting Bulat Ziganshin <[EMAIL PROTECTED]>:
> > Haskell can't provide fast execution speed unless very low-level
> > programming style is used (which is much harder to do in Haskell than in C,
> > see one of my last messages for example) AND jhc compiler is used
I have to dispute this Bulat's characterisation here. We can solve lots
of nice problems and have high performance *right now*. Particularly
concurrency problems, and ones involving streams of bytestrings.
No need to leave the safety of GHC either, nor resort to low level evil
code.
This obsession with mutable-variable, imperative code is unhealthy, Bulat ;)
> ajb:
> The PGP format is heavily character stream-based. We know how horrible
> the performance of character streams are in Haskell. On one hand, this
> would be an excellent test case. On the other hand, performance would
> indeed suck now.
Unless you used a stream of lazy bytestrings!
As Duncan did for his pure gzip and bzip2 bindings:
compress, decompress :: ByteString -> ByteString
http://haskell.org/~duncan/zlib/docs
http://haskell.org/~duncan/bzlib/docs
With underlying stream fusion, you keep the nice high level code. And no
imperative gunk required! I see no reason a PGP tool couldn't be
implemented similarly.
-- Don
P.S. The comments on this thread makes me think that the state of the
art high perf programming in Haskell isn't widely known. Bulat-style
imperative Haskell is rarely (ever?) needed in the GHC 6.6 Haskell code
I'm writing in these days. Solving large data problems is feasible
*right now* using bytestrings.
Trying to write code using an imperative style is likely to do more harm
than good, and certainly not something to suggest to beginners on the
mailing list ;)
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe