Impressions from Groovy Grails Exchange - day 1

12 December 2013

Finally, the Groovy Grails Exchange starts, and the  opening keynote was by Guillaume Laforge, titled 'The Groovy Update'. This year Guillaume skipped the past part of the update, and focussed on the new features of Groovy 2.2 and the ideas for Groovy 3.
The highlights are the new ASTs @Memorized and @Delegate, caching results of closures and flexible delegating some methods from inner objects. Also the annotation driven base class for Groovy scripts provides a common base for your groovy scripts.
When typechecking, the makeDynamic() method can add some dynamic features to atherwise typechecked code, but the biggest smiles was for the 'MrHaki approved' improvement to the GDK. These includes @Immutable(copywith=true) annotation and upto support for Date and Calendar.
The groovyshell now has tab completion, and a new doc command, opening both the java and the groovy doc in a browser - that really looks usefull.
Groovy 2.3 will feature traits and tailrecursion, and Groovy 3 will likely feature a rewrite of the language parser, a new MOP (Meta-Object Protocol), and support for Java 8 features.
 
Guillaume mentioned that contributions to the new documentation would be welcome!
 
After the keynote, the worst part of conferences started: Selecting which of the talks to see (and which not to see). I choose 'Making JAVA APIs Groovy' by Cédric Champeau. Crics talk was full of great hints, the first was: please use #groovylang as hashtag, unless you are searching for lavalamps and other 'Groovy' stuff. The talk was at a high tecnical level, and definitely worth a second view on video. I'll just reiterate two great hints: 1) Improve API's step by step, and don't try to do it all at once, and 2) don't always try to make things shorter, but instead make them easier and more readable.
 
 
Next talk I chose was Marcin Erdmann with 'Modern Groovy Enterprise Stack'. Marcin described the design choises and technologies they have chosen at UnderwriteMe. The setup allowed horisontal scaling multiple places, and Marcin pointed out issues they had worked on. Some of the technoogies they use are Groovy for configuration, including the @PostConstruct to create more advanced objects, DropWizard for HTTP based APIs, Gradle for building and SPock for testing.  Quote of the talk: 'The biggest problem with Spock is, that even after 3 years, I keep discovering hidden gems'. 
 
 
After the lunch, Joseph Nusairat in 'NoSQL with Grails' presented the different types of NoSQL databases, not gloryfying the new datastores, but analyzing pros and cons. The first part of the talk focussed on when it would make sence to use NoSQL and when not to. The second part of the talk was specific to MongoDB, on the documents and the query syntax. The talk was quite interesting, but the part on using mongodb from Grails was limited to the last seconds (when the talk was over). Examples should be available at https://github.com/nuisairat/mongo-groovy-example. Quote of the talk: ('became the defacto toy to the shiny object crowd').
 
Alvaro Sanches-Mariscal presenting 'Developing SPI Applications' made nice arguments for using a more separate grails architechture, splitting the front end more from the monolithic current structure. Alvaro presented several problems, and recommending grails 2.3+ for generating REST  webservices, letting the front end be handled by a separate application made in Angular/Ember/Backbone, letting front end developpers work with their usual tools (Yeoman/bower/grunt). He has made an example available on bit.ly/grails-angular.
 
The last talk off the day was 'Message Driven Architechtures in Grails' by Daniel Woods. Dan did live coding of xml, setting up Spring Integration. Through configuration, you can define which services will be applied on the message path. An absolute great talk on a high technical level.
 
After the pizza and beers session, half went directly to the pub, and the other half of the conference went to the Skillsmatter HQ for a Hacksession/Hackergarden. After a slow start the process got going, coding on a lot of different projects. Along with Søren from the GR8 conf crew, we picked the brain of Cedric, updating a plugin for messagesource resolvable, with a much improved AST transformation. 
 
Great work Skillsmatter and all speakers!