So what IS Scala?

The question a lot of people have been asking lately is "What is Scala and why do I care?".  The short and sweet answer is that Scala is an object-oriented/functional hybrid that runs on the Java Virtual Machine (JVM).  This is interesting because it can harness the full power of the JVM, including bringing in Java libraries.

And you care because concurrency is hard to get right.  It's hard in Java and it's hard in C# (I hope you got to see Brian Goetz's talk at CodeMash).  It's hard because writing multithreaded programs with our current programming model is hard.  Deadlock is hard to detect and hard to protect against.  Until now, we've been shielded a bit from the dangers that lurk by single processor machines.  We were writing multithreaded programs that might be interrupted, but often weren't.  But now, you can't really even buy a single processor machine.  It's compelling to take full advantage of the hardware that you have just bought, and all of those little mistakes that you made previously in multithreaded programs may bite you as well.

So we had better figure this thing out.  Erlang's good for concurrency but most people aren't really adept at programming in a purely functional language.  And we have reaped benefits from object-oriented programming, so it's interesting to combine the two in such a way that we can use the functional programming aspects to gain better concurrency without walking away from the productivity gains that we have made with object-oriented programming.

If you still care, check back in.  I'll pump out some Scala blog posts in the upcoming weeks, conveying what I have learned about the language and how I feel about it.  I like it but I'm not jumping to Scala for anything other than personal interest right now.  This is a stage of investigation.  It may well turn out to be a language that I want to use for development, but I'm not committing to it yet.  Even Brian Goetz agrees that Scala and F# may not be "the" answer but may be a stepping stone along the path to more multiparadigm languages [CodeMash quote].  If you are anxious to get started, read the Artima article, "First Steps to Scala" and listen to podcasts with Scala creator Martin Odersky on Software Engineering Radio and on The Java Posse. If you're still hanging on, then definitely buy and read the "Scala Programming Language" book.