May 28, 2013

Gr8Conf 2013 Europe Conference Report: Day One

Today the weather is totally different than yesterday. The sun is shining and it promises to be a good conference day. After yesterday's university day it is time to get ready for the official first conference day. The conference has two tracks packed with exciting talks, so it is difficult to choose.

The day started off with a welcome speech by Søren Berg Glasius. This year is the 5th anniversary and the people that went to all 5 conferences got a surprise: a free ticket for the 2014 conference. Then a great keynote talk: The rise and fall of empires: Lessons for language designers and programmers was given by Venkat Subramaniam. Here he used analogies with history, wars, democracy to show that everything is moving. And that one language that is trying to revolutionise (the new kid on the block) will become a resister once it is on top. And this will go on and on and on. He also mentioned it is good to learn different languages, but try to learn really different languages. So if you are a Java developer C# is not that different, try for example Haskell or Ruby. Venkat is a great speaker and this was a very entertaining keynote.

Next I went to the Lift off with Groovy 2.1 session by Guillaume Laforge. He is the Groovy project lead and we were presented with a lot of new features added in Groovy 2.0 and 2.1, but also what to expect from Groovy 2.2 and 3.0. He gave GVM a special mentioning, because it is very good tool to install all kinds of Groovy versions and other Groovy technology related tools. The mean theme for Groovy 2 is static type checking and compilation. This will continue and also extra support for DSLs will be added. Still nice things to come this year and with 3.0 planned for next year.

The following session, Raspberry Pi à la Groovy FX, was presented by Stephen Chin from Oracle. First he showed some of the uses of the Raspberry Pi. Then we learned how to install a JVM on the Pi so we would be able to run Java applications. With an ingenious setup he was able to show this on the video screens by using video capture, a lot of cables and a media player. This was very nice. The second part of the session was about JavaFX and GroovyFX. GroovyFX adds a very elegant DSL to work with JavaFX. Stephen showed how a lot of Java code can be reduced by using GroovyFX. Finally he showed a nice graphical application fed by real-life conference data running on the Raspberry Pi. This application was actually used during the conference to show the agenda.

Lunches at any Gr8Conf are delicious and this year was no exception. We enjoyed our lunch, while also listening to Dierk König telling about Open Dolphin. This is an impressive library with not that many lines of code, but very powerful for running rich GUI clients written in Java and still running and executing the business logic code on a server.

The next session after the lunch was given by Graeme Rocher and was about Road to Grails 3.0. He showed some very exiting features coming up in the next 2.x release. For example much improved dependency management, cross side attack prevention, REST support, data binding and asynchronous support. In Grails 3.0 we can expect Gradle to be the default build/task system and application profiles will be introduced. It is good to see Grails has a very active community and the Grails developers are doing an awesome job creating these new features.

Next up was the session Functional programming in Java by Venkat Subramaniam. In a fast paced and very energetic session he showed some of the more functional features in Groovy as compared to Java. Although Groovy is not a functional language per se we can still use Groovy features to avoid mutable state. With some lively examples he showed difference between Java and nice clean Groovy code.

During the coffee break there was a surprise, because this is the 5th Gr8Conf. Three beautiful cakes with the Groovy, Grails and Gr8Conf theme were served by Guillame, Greame and Søren.

After the coffee break I joined the session Building Grails apps with Gradle by Luke Daley. Although the Grails plugin for Gradle is not completely finished it is very usable. Especially if Grails is part of a bigger project and we want to make sure we have an unified build this is a good solution. By using Gradle we don't have to define dependencies anymore in Grails, but we use Gradle for that. We can also write Gradle tasks that will invoke Grails commands as a way to create for example aliases. I really want to try and use it for our project, because it involves both Java components and Grails applications and plugins.

The final session was Grails under the hood by Graeme Rocher. This was a nice session, where Graeme opened up the Grails source tree in IntelliJ IDEA and walked through the modules and showed their usage and some of the code behind the magic we experience when using Grails.

The days was ended by a Meet 'n Greet BBQ. The Gr8Conf organisers brewed three kinds of beer to go with the food. And even the weather was nice, so it was a gr8 ending for this first conference day.