First Release: Jan 2007
Latest Release: 2.3
Interesting Facts: Did you know that a third of the downstream traffic in the US is coming from Netflix? And that that huge traffic goes through various layers of Groovy? That makes Netflix the biggest deployment at scale of Groovy!
Groovy is an OO programming language that runs on the JVM. It also retains full interop with the Java language. Despite popular belief, Groovy was not first invented by flower children in the 1970s.
Groovy was not the first JVM alternative of choice for developers, but the general vibe is that Groovy is also something to look into–at least for for nearly 1/3 of developers. For many developers used to coding in Java, the first hint of Groovy comes by trying Gradle, which is a Groovy DSL build tool getting a lot of attention these days.
Groovy, and related tools like Grails, Gradle and Griffon, have propelled into the minds of nearly 1 in 3 developers, according to a recent survey, and gearing up to either co-exist or challenge Scala in the enterprise development world.
Groovy often goes head-to-head with Scala for the position of supremacy in the alternative JVM language segment–in 2012, Groovy was first in use on alternative projects, with Scala in 2nd place. We predict eventually that one or more major entities (probably in something like media, transportation or banking) will provide either language the boost towards dominance by fully adopting something other than Java for mission critical applications.
Groovy success is mainly due to its familiarity with Java. Developers want to get things done, they want to master the language quickly, they want power features. Groovy’s a more productive language than Java, but still with a similar Java syntax that is already well known. And on top of that, Groovy simplifies mundane tasks that used to be complex to develop. Personally, I’d like to see full pattern matching coming to Groovy. We already have some forms of destructuring with multiple assignments, of matching with our enhanced switch / case, etc. But we could go beyond and offer some more advanced pattern matching capabilities, that would help working with complex object hierarchies (like our AST transformations do). In the future, we’ll see more convergence and similarity between languages — at least in terms of features, if not necessarily in terms of syntax. Today, a modern language has to have a functional flavor, for example, but syntax varies.
– GUILLAUME LAFORGE, Groovy Project Lead