One now, two later: Groovy updates add Java 8 support

Groovy 2.3 is officially compatible with JDK 8, but lambda expression aren't due till Groovy 3.0

Now that they've released version 2.3 of Groovy this week, the developers of the Java virtual machine-based dynamic language anticipate releasing another point release (2.4) this year followed by a 3.0 version also this year. Each release would increase the support for Java 8.

Available from Codehaus, Groovy 2.3 is the first version of Groovy that is officially compatible with Java Development Kit 8, which Oracle released in March. However, Java 8 lambdas are not yet supported; the roadmap calls for supporting that in Groovy 3.0, which is due at the end of the year. Developers "can use Groovy closures in lieu of Java 8 lambdas, as we transform our closures to the functional interfaces that are the types to which Java lambdas are converted," said Guillaume Laforge, Groovy's project manager.

Version 2.4 is likely up next. "We haven't yet decided, but it's pretty likely we'll be releasing a short Groovy 2.4 version before Groovy 3.0, to add some additional Java 8 support -- for example some handy syntax sugar over the new APIs of JDK 8, plus some minor features and enhancements that didn't make the cut for Groovy 2.3," said Laforge. Version 3.0 itself "will be faster, easier to do meta-programming with, and support more Java 8 syntax idioms."

Groovy 3.0 was expected to be released last year, but the date has always been a moving target, Laforge said. "It's going to be a pretty big release introducing breaking changes, so we have to be careful with not breaking the unnecessary. But the bigger problem we faced was how buggy was the invokedynamic on JDK 7." (Invokedynamicsupports dynamic languages on the JVM.)

The Groovy team is also preparing Version 2.4 of the Grails Web framework. Laforge said it should be released soon. "We really wanted to get Groovy 2.3 out the door in time for inclusion in Grails 2.4."

Other capabilities in Grails 2.4 include improvements to the GORM (Grails Object-Relational Mapping) object/datastore mapper, which now supports subqueries; more usage of static compilation to make Grails faster; and updated dependencies on the Spring 4.0.4 and Hibernate 4.3 Java frameworks.

Copyright © 2014 IDG Communications, Inc.