Liminal Existence


Updated: Go read Steve’s Dynamic Languages Strike Back. It’s a longer read, but it’s much more interesting, and he’s much smarter than I am.

LOL. <– this is a link. Read Ola’s post, first.

For all those who don’t get it, languages don’t scale, architectures do.

Now, some languages are faster than others. That means that to complete a given operation, it costs less, everything else being equal. Costing less is a good thing. But developers also cost money, so if you have to spend money on developers’ time porting from one language to another then you might not be saving any money at all, and really you’re just treading water.

Once upon a time, Shell Scripts were used to write CGI applications. With the correct architecture, and enough money, you could build Google with tcsh. No, really. It wouldn’t be fun, and you’d be dumb, because there are much cheaper ways to do it. But then again, if you stuck with it, perhaps you’d optimize tcsh to be really fast at spawning and serving up web requests. Faster than Java, faster than <insert your favourite language here>. Faster means cheaper, it doesn’t mean more scalable.

I point to exhibit A. Perl used to be slow. Now it beats JoCaml with the bestest concurrency (re: “Scalability”) around. What was Perl built for? Parsing text. Lots of it. All the time. It’s fast. Does it mean that you can’t build Wide Finder with another language? Absolutely not. Does it mean that you couldn’t build Wide Finder to scale out to a trillion documents with gawk? If you answered “yes”, go back to the start of this post and read again! :-) If you’re still answering “yes,” try reading some more. Leonard, Ted, Joe, Cal, and Theo are good places to start.

If you answered “no,” congratulations! Pat yourself on the back for knowing what scalability means.