[Haskell-cafe] Re: Re: What is Haskell unsuitable for?

Curt Sampson cjs at starling-software.com
Tue Jul 6 10:05:05 EDT 2010

On 2010-06-19 16:43 +0100 (Sat), Max Bolingbroke wrote:

> Curt Sampson had an experience report at ICFP last year about his
> experience with Haskell for a real time application
> (http://www.starling-software.com/blogimg/tsac/s5/2009-09-01-icfp.html).
> He reported no issues with GC speed in practice.

As it turned out, there were issues in the end. I'm no longer with that
project, so I don't know how things are at this point, but the issues
weren't anything terrible that you wouldn't see on other platforms, and
GHC was at the time just bringing in some new and great facilities (such
as the tracing used by Threadscope) for starting to profile this sort of
thing. I didn't feel as if I faced any horrible hurdles.

braver's note, "As I suspected, JVM garbage collector got more testing
than Haskell at this scale; since not many people load it up as much,
it may be less tested," strikes me as much more likely an issue with
improper control of lazy evaluation than a GC issue: the GC of a Haskell
implementation is generally much harder worked than a JVM GC due
to the heavy use of immutable variables that's part of the nature of
Haskell itself. While I'd say the Sun JVM's GC is more mature than GHC's,
it's not anywhere near a night-and-day difference, and it's mostly visible
in things like the greater number of strategies Sun's GC offers, such as
concurrent GC. GHC is making excellent progress.

If there's one key thing I took away from my whole experience, it's that
to make effective use of Haskell in a time- and performance-critical
application, you need to understand and control (lazy) evaluation. This
isn't really any more sophisticated a type of knowledge than you need to
move from, say, a non-GC to a GC language, but it is new, and you have
to be prepared to learn a bunch of new stuff.

Note that I'm not reading this list regularly due to the enormous
volume, so be sure to cc me on replies to this if you want to make sure
that I see them. I'd be happy to chat further with anybody contemplating
a serious project in Haskell that has worries about this, and I'd even
be available for some consulting if it comes to that.

(Oh, and the trading system is running in production and making money
these days. There's no question in my mind that the project was a
success, and I'd do it in GHC again. Thanks to the Simons and many
others for the fantastic job they've done with that.)

Curt Sampson         <cjs at cynic.net>         +81 90 7737 2974
    "There's a war between the ones who say there is a war
     and the ones who say there isn't."   --Leonard Cohen

More information about the Haskell-Cafe mailing list