[Haskell-cafe] Re: Libraries for Commercial Users

Curt Sampson cjs at starling-software.com
Sun Oct 25 10:05:30 EDT 2009

On 2009-10-25 04:58 +0000 (Sun), Iain Barnett wrote:

> ...

Ok, let me sum up the basic, serious points first, and then I'll get
into the fun usenet-style tit-for-tat afterwards.

No web application doing significant traffic is running on Rails as
you'd roll it out by installing the appropriate packages on your Ubuntu
server, and following the Rails tutorial. There's an enormous amount of
other work that goes on there, usually involving things like vertical
and horizontal database partitioning, read-only replicas, memcached,
interesting caching schemes, and quite clever changes to the application
to support clustering. Oh, and throw in entire systems that have no
connection with Rails whatsoever, such as Twitter's self-developed
Starling [no connection to my company] queue server, written in Ruby,
which, now that they've learned what they're doing, they're replacing
with a new server written in Scala.

This is not unusual. Google's map-reduce is not something built from
"good/many libraries and a large pool of developers." Nor was Rails
itself (bad as it is), for that matter; it didn't even have the "stable
code base" requirement.

By your standards, Rails should never have been written in Ruby, it
ought to have been written in Perl. Chew on that for a while before you
dismiss Haskell as failing here, because it's failing in exactly the
same way (well, not as badly, really) as Ruby was before Rails came along.

Now for the tit-for-tat!

> ...and give me an example that isn't from a time when Oasis actually
> made good records (I'll give you a clue, they only made one, and it
> was their first).

Actually, I liked best their second album, though it's not my usual
Creation fare. (It's probably obvious that Momus is more my style.)

But the example of Twitter replacing Ruby with Scala happened around the
time when Oasis was given the NME Award for Best British Band of the
year. So perhaps your clue is wrong?

> One that involves Haskell would be good, handling Twitter-esque 
> traffic would be even better.

Sorry. My project (an automated options trading system) deals with only
five million or so messages in a (6-hour) day. Admittedly it does some
fairly complex processing on them, and runs pretty easily on a single
i7 without much work (even when it's simulating the stock exchange as
well), but what can I say? Guilty: I cannot personally come up with a
Haskell application that is currently dealing with Twitter's traffic,
even though I can see that such a thing would not be terribly hard to
write (at least compared to doing it in Ruby).

> Since of course, the next Twitter could never be done in ROR even
> though the current one was.

Err. Yeah. You mean the current one that fell apart and got replaced
with Scala? The current one that used "ROR" despite the fact that the
back-end wasn't a web application? The current one where you'd have to
consider MySQL and some of the interesting clustering tools for it to be
part of "Ruby" for it to be written in that?

> Think of it as dealing with facts....

I'd like to think I do. After all, I'm not here because I'm an academic
who loves Haskell and functional programming. (I rather disliked the
idea when I'd first heard of it, actually.) I'm here because (though I
don't do web sites any more, at least for the moment), after building
web sites for more than a decade, in Bourne Shell, PHP, Perl, Java,
Ruby, and a few other things besides, having built my own web framework
in Ruby, having built sites in this framework that can deliver seven
gigabits per second sustained, I think that Haskell, which I had never
heard of four years ago and had never used in anger less than two years
ago, can offer me more of what I was looking for when I moved to Java in
'99 and Ruby around '04.

Well, so there's your happy ending, or mine at least, anyway. I can now
point out that all of the arguments against Haskell that I'm getting now
are pretty much rehashes of the ones I got against Ruby in 2004. And I
expect anybody in most organizations promoting Haskell now as hard as I
did Ruby in 2004 is going to get fired in pretty much the same way.

I just hope Haskell doesn't end up being known for and stuck with
something as awful as Rails, five years from now. It would be like
waking up to find out that everybody remembered The Smiths for Morrissey,
not Marr...

Curt Sampson       <cjs at starling-software.com>        +81 90 7737 2974
           Functional programming in all senses of the word:

More information about the Haskell-Cafe mailing list