Written on
Gr8Conf 2013 - First Conference Day
Today the first Gr8Conf [0] conference day took place. Gr8Conf is a conference completely dedicated to the Groovy & Grails ecosystem.
The rise and fall of empires: Lessons for language designers and programmers
The keynote wasn't directly dedicated to Groovy or some of its related technologies. Indeed, the talk showed historical patterns that can be projected to some point on the interaction of technologists with technologies and communities. Venkat highlighted the newly gained power of democracy giving not only programmers the chance to participate and influence the development of programming languages and libraries. Right now, the power to change and influent things is mostly only restricted by having Internet access or restrictive access to the Internet. Another message in the presentation has been that technologists need to be adaptive. It might be feasible to learn one or two programming languages in a programmer's life, but our view would be broader if we're open to change, and therefore open to alternative/other languages, libraries and frameworks from other communities.
Lift-off with Groovy 2.1
In the next talk, Guillaume Laforge gave us an overall update of the Groovy 2 features. He started with the modularity changes that happend in Groovy 2.0, mentioning the groovy-all Jar and its reduced version. Another interesting point was the introduction of the extension method mechanism. From Groovy 2.0 on, it is possible for developers to register custom extension methods, side by side with the default Groovy extension methods from the GDK. Another point Groovy 2.0 is covering are the project Coin features (Java 7, changes on literals, multi-catch etc.) [1]. It is to mention that as Groovy is running on 1.5 and above, that means you can run Java 7 features in Groovy on JDK 5 as Mr. Haki already showed us some time ago [2]. As of Groovy 2.1, the newly introduced invokeDynamic byte code instruction is now fully supported when running on Java 7. The most important feature of Groovy 2.0 has been static compilation and static type checks. Groovy 2.0 comes with new annotations to annotate code to be "statically compiled" and/or to be "type checked" by the Groovy compiler. Static compilation results on byte-code very close to the Java equivalent. Type checking at least gives compiler errors if the type checking rules aren't met. Besides the formerly known features, Guillaume presented some upcoming features. First of all, the DelegatingScript base class. It is a new optional base class for Groovy scripts automatically delegating all calls to certain delegate objects (a blog post on that topic will follow once the class has been released). Groovysh [3] also gained some attention in the last months. A new doc command has been added and auto-completion support for imports, class names and method names has been added. A documentation rewrite, GroovyDoc overhaul, Java 8 support including an Antlr 4 grammar rewrite and a new version of the MOP have been mentioned as the corner milestones for Groovy 3.0.Raspberry Pi à la GroovyFX

Enterprise Desktop Apps with Groovy FX and OpenDolphin
Right after lunch, Dierk König from Canoo gave an introduction to OpenDolphin [6]. A library supporting the communication between a view (a client) and a controller (a server). That alone wouldn't be exicting news, wouldn't the communication be asynchronous and completely "behind the scenes" without a synchronous call in either direction.
Road to Grails 3.0
Next up, Graeme Rocher gave an overview of the upcoming Grails 2.3 and Grails 3.0 features. The most interesting parts for me were the improved support for REST applications and the increasing number of Groovy AST transformations used by Grails during compile-time.Functional Programming in Groovy
Another talk by Dr. Venkat Subramaniam. This has been my favorite talk of the conference day although I knew most of the content. Venkat talked about the differences between imerative and functional programming, the differences between lambdas and closures and the advantages of using function objects and higher order functions. I really liked the talk because it showed the most important functional concepts in a very refreshing, educational but also really funny style.Getting Groovyier with Vert.X
The next talk has been about Vert.X and explained the most important concepts and the terminology behind it.Grails Under The Hood
The last session of the day was held by Graeme Rocher. "Grails under the Hood" gave some in-depth views into certain places of the Grails application framework. Again, the use of Groovy AST transformations has been very interesting from my point of view. Grame also showed the brand new (introduced at the Gr8Conf HackerGarten) @Transactional AST transformation which automatically adds a TransactionTemplate wrapped to annotated methods [7].[6] OpenDolphin