I’ve been meaning to start learning Scala for some time now. The other JVM language I’ve used is Groovy. Groovy is a pleasure to use. I wrote one application using Groovy and Grails. It’s purpose was to allow Subversion repository owners to grant permissions to new committers. Groovy has a very low learning curve and great interoperability with Java. It also has the backing of the creators of the Spring Framework. Groovy gave us closures, which are finally coming in Java 8, and other wonderful features. Grails is also a great framework for creating web applications. I used it for creating front end services that served a Single Page Application. The complaint I’ve heard about Groovy is that with it’s dynamic nature it is much slower than Java. They have the ability to static type checking now in newer versions of Groovy so I don’t know how much that is improved.
The other two languages that interest me at the moment are Scala and Clojure. I actually have books from the library for both of them right now. I am going to start with Scala. The one knock I’ve heard about Scala is that it is overly complicated. I am going to start with a free book I found written by Cay Horstmann called Scala for the Impatient. It is $25 from Amazon, but I just noticed it is free at the TypeSafe website. They also have Scala In Depth. I am never one to turn down a free technical book.