Today’s interview features the Groovy luminary Guillaume LaForge. Guiallume’s work on improving the Groovy language paved the way for the innovative frameworks such as Grails and Griffon, and showed a whole generation of Java developers to stop worrying and love dynamic programming.
Guiallaume is the Groovy project lead, and is constantly improving the language. One of his newer efforts is the App Engine framework Gaelyk. Running on top of Groovy, this framework allows developers to build Google App Engine web sites with very little effort. We talked to Guillaume about the project, and about his thoughts on Java 7 as well. This week we took questions from the ‘twitterverse’, and I started using Google Wave to edit my show notes.
Upcoming Groovy 1.7 features…
- Support for anonymous inner classes (before suggested you use closures)
- Providing an AST Builder, to make it easier to provide AST transformations (such as @Singleton, @Delegate). AST transformations are compiled into bytecode.
Gaelyk – The Google App Engine framework
- Groovlets, small groovy web scripts – just write a script!
- Templates – separate Groovy code from view
- Injects Google features into scripts, not abstract them too much
- Sitemesh templating: Guillaume is researching sitemesh integration but likely not including it directly (providing instructions at some point)
- Question asked by @wmacguyver on what Groovy
- DataStore was easy to wrap with a thin veneer – is hoping to more groovify and add a DSL around it
- Mail – added ONE method to enrich base class to make it eaiser to use from scripting
- Route support in 0.32 – was more work but not complex to do…
- Also hosted on Gaelyk: Gaelyk project itself
- Community feedback – will drive some enhancements, obviously Guillaume is very committed to Groovy language too!
- Users have become contributors – submitting suggested changes / patches, these are very welcome.
- Future feature: Querying support on deck potentially for datastore, simple SQL queries don’t work on a NO-SQL database.
Java 1.7 Closures –
- The working document – mentions dynamic interfaces for closures, groovyc compiler could create same interfaces under the hood – could be interoperable POTENTIALLY…
- Could we pass groovy closures to a java class? No implementation yet, so we need to see how languages work together…
- Java closures – cannot access non-final vars, etc… Shouldn’t replace Groovy closures with Java closures…
Jigsaw (JDK modularity)
- Interesting to investigate. Would be nice to modularize Groovy a bit – maybe pull pieces into modules (groovlets, etc)… OSGi is an option as well, need to evaluate.