A major new release of Groovy has been announced with official support for use on Java 8.
Groovy is an agile and dynamic language for the Java Virtual machine with features inspired by languages like Python, Ruby and Smalltalk that sets out to make modern programming features available to Java developers with almost-zero learning curve.
Groovy 1.0 was released in January 2007, Groovy 2.0 in July, 2012 and this month Groovy 2.3 has been released.
Announcing the release of Groovy 2.3 on the Spring blog, Guillaume Laforge, Groovy Project Manager tells us that this new release of the programming language for the JVM features a new trait keyword to define new units of code for composing behaviors, new and improved compile-time code transformations, fast JSON parsing, and a markup template language.
The implementation of traits gives you more options for composing behaviors than are offered by just using classes and interfaces, so enabling easier code reuse.
The JDK 8 support is the other main improvement. In addition to enabling the running of Groovy 2.3 on JDK 8, the support also means you can use Groovy closures instead of lambdas, and can reuse the new APIs in JDK from Groovy.
The improvements to compile-time code transformation include @TailRecursive for transforming methods with tail recursion, @Builder for implementing fluent builders, and @Sortable for transforming classes to implement Comparable using the various properties of the class.
There’s a new NIO2 module with Path support, and the addition of closure parameter type inference to infer the type of parameters in closures when using the static type checker and static compiler. Other improvements include a new GroovyAssert test utility and more @BaseScript class capabilities.