Groovy Vs Scala Vs Clojure



Groovy

Groovy is a dynamically typed scripting language, whose syntax is very close to Java. It's good for fast prototyping, scripts, and learning dynamic languages without having to learn a new syntax (assuming you know Java).

Clojure

Clojure is a dialect of Lisp with a few advanced features like Software Transactional Memory (STM). If you like Lisp and would like to use something like it under the JVM, Clojure is for you. It's possibly the most functional JVM language, and certainly the most famous one. Also, it has a stronger emphasis on immutability than other Lisp dialects, which takes it closer to the heart of functional language enthusiasts.

Scala

Scala is a fully Object Oriented language, more so than Java, with one of the most advanced type systems available on non-research languages, and certainly the most advanced type system on the JVM. It also combines many concepts and features of functional languages, without compromising the object orientation, but its compromise on functional language characteristics put off some enthusiasts of the latter.

Groovy Vs Scala Vs Clojure: Comparison

While Groovy has good acceptance and a strong web framework in Grails, I personally think it is a language with limited utility, particularly as Jython and JRuby start making inroads on the JVM-land, compared to the others.

Clojure, even discounting some very interesting features, has a strong appeal just by being a Lisp dialect on JVM. It might limit its popularity, granted, but I expect it will have loyal community around it for a long time.

Scala can compete directly with Java. It can't compete in popularity at the moment, of course, and the lack of a strong corporate backing may hinder its acceptance on corporate environments. It's also a much more dynamic language than Java, in the sense that the language evolve. From the perspective of the language, that's a good thing. From the perspective of users who plan on having thousands of lines of code written on it, not so.

Reference:
http://stackoverflow.com/questions/1314732/scala-vs-groovy-vs-clojure