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.
The writing has been on the wall for Mozilla Thunderbird for quite some time. Now Mozilla is actively engaged in the process of getting rid of it. Could Thunderbird spread its wings and have a new lea [ ... ]
NativeScript 2.0 was recently released with tighter integratin for Angular2, extended support for 3rd-party native libraries for iOS and Android, and support, via plug-ins for TypeScript and UWP. A we [ ... ]