There's a ton of great and long-awaited stuff in this release, but I'm especially excited about the delimited continuations (<a href="http://www.scala-lang.org/node/2096" rel="nofollow">http://www.scala-lang.org/node/2096</a>) support.<p>If you've struggled with asynchronous I/O in the past, libraries implemented using delimited continuations might seem like a breath of fresh air. They make it possible to write functionally asynchronous code in a traditional blocking style. Further, continuations can be serialized, introspected, and passed around from machine to machine.
I really hope Scala 2.8 lives up to its potential. Having used Scala 2.7 for close to a year now during my personal time, I'm very impressed with the vision and direction of the language. However, the language and its surrounding tools are immmature and I almost feel like any productivity I gain through using Scala is more than offset by the battles I wage with its tools.<p>Every time I code up a new project, for instance, I swear I encounter a new compiler or library bug. I've had jcl libraries spin in infinite loops, I've had the persistent immutable Set consistently crash during a filter, I've had the compiler both die at compile time and generate bad code that failed at runtime when trying to shield me from the ugly details of jvm arrays, and I've had actor libraries deadlock, forcing me to switch to using java executors. Buildr's Scala support is very immature and buggy. The Eclipse plugin is also unstable and I've at least twice had to rebuild my workspace from scratch. It also degrades heavily in performance over time so that I am frequently restarting Eclipse.<p>I think that the above problems are partially because the language is new, but partially because Scala as a project is so ambitious. They are trying to cover up all the warts of the JVM and create a powerful OO-functional language hybrid on top of it. They are trying to reify generics, implement C++-style templates for primitives to avoid the high costs of autoboxing, and implement arrays efficiently in a way that they play nicely with generics and the rest of the language, just to name a few things that really the JVM should have taken care of a long time ago. And, of course, Scala as a language is much richer and more complex than Java ever will be.<p>Again, I hope Scala eventually succeeds in all of its ambitious goals and begins being adopted for mainstream use, and I will continue to follow it and hopefully find time to contribute to it. And, if you don't mind slogging through a few bugs and flaky tools yourself, I highly recommend learning Scala and consider it the best language on the JVM so far.