Friday, July 10, 2009

Is it time to start learning Scala?

Generally, by the time I get interested in something, I'm about the last person on the block. It's sort of a variant on that old saw about not trusting people over 30; I'm that guy who jumps on the bandwagon long after it's been rolling down the street...

Anyway, I've been a fan of Bill Venner's Artima website for a long, long time. I've subscribed to his newsletter for over a decade and I read the articles and interviews regularly.

And it's no secret that Bill Venner has been a big fan of Scala, the alternate JVM programming language developed by Martin Odersky. Up til now, I'd been sort of skimming the Scala articles, not quite paying enough attention, but definitely aware that something was going on.

Then, somewhat serendipitously, 3 events occurred almost simultaneously to alert my sensors and make me wonder if I'm not quite paying enough attention to Scala:

  • First, there's the James Strachan blog post that everybody's been talking about. Strachan is the inventor of Groovy, another alternate JVM programming language, and one which has found a certain amount of favor in some of the circles I run in. So Strachan definitely has some dynamic programming language props, and when he declares

    Though my tip though for the long term replacement of javac is Scala. I'm very impressed with it! I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.

    you just have to sit up and pay attention. And the world did pay attention, as Strachan has already followed up with another detailed post, and there's an avalanche of comments to wade through.

  • Secondly, the most recent issue of the Artima newsletter had a truly great article on the intricacies of overriding Object.equals(). This is, of course, one of the great Java interview questions of all time, and if you've read your Joshua Bloch you can probably muddle your way through it, but this article was superb, covering the subject deeply, well, and with thorough examples. So what? Well, the article was written by Odersky, Spoon, and Venners.
  • Lastly, just while all this stuff was sort of leaking through my psyche, I happened across this note on Weiqi Gao's web log, reflecting on a presentation by Kevin Nilson:

    Is Scala for real? Kevin told us its the hottest thing at Silicon Valley. Mark and I still have some lingering doubts. Mark is focusing on something called persistent data structures. I'm more of a Luddite, fearing the years of learning that I have to go through to be proficient.

There's some sort of superstition about things that arrive in threes. Since I'm a sailor, I'm vulnerable to these superstitious behaviors, so there it is.

I guess I'd better go start at the beginning.


  1. Thanks, this seems like a really interesting language.

  2. Scala is a hybrid Object-Oriented/Functional Programming language on the JVM. When I heard that Twitter was using Scala, I was curious and started collecting all the sites and articles to learn scala programming. If you are interested check the link below for the big list I have gathered (more than 200 sites) for learning scala programming.