Definitely Scala. I've worked with Groovy/Grails, which is nice in a lot of ways (mainly ways that are borrowed from Ruby/Rails), but I think the language is hindered by being overly Java-compatible. That makes it easy to learn, but limits the language's capabilities. I'd be very happy if some of the syntactic sugar of Groovy were simply made a part of the Java language (e.g. default scope is getter/setter, lists and maps have their own syntax); that would cut down on the ridiculous amount of Java boilerplate. I'm not as big a fan of the dynamic aspects of Groovy, which can make debugging painful. In Grails, if something goes wrong, it's not uncommon to see a 30-line stacktrace that gives you no clue as to where the error actually occurred, because the error-prone code was added dynamically.<p>As to Scala: It's extremely elegant, and the community has its act together as far as positioning the language to go mainstream. I'm expecting the 2.8.0 release to be a major step forward, thanks in part to a completely rewritten Eclipse plugin. That kind of tool support will be crucial in getting the language to critical mass. One thing that worries me, though, is that Scala projects tend to be built using Maven, which is awfully complex. Perhaps something like JavaGems may prove to be more important to the future JVM ecosystem than any single language.