27 May 2013

Tags: gr8conf groovy programming

GR8Conf Europe 2013

Last week I spoke at GR8Conf Europe for the second time. As last year, the content of the conference was really amazing and highly technical. While the conference started with a University day on May, 22, we took advantage of the conference to organize a Groovy DevCon the day before. A Groovy DevCon is basically a physical meeting for the Groovy Core developers, where we share ideas and eventually make decisions with regards to the future of Groovy.

This year, several well-known Groovy gurus participated in the meeting:

  • Guillaume Laforge, the Groovy project lead

  • https://[Jochen ``Blackdrag'' Theodorou], the Groovy technical lead

  • Dierk Koenig, Groovy committer and main author of the famous Groovy in action book

  • Andrés Almiray, the Griffon lead

  • myself, Groovy Core committer

But we had a special guest, M. Juergen Hoeller of Spring fame himself!

The meeting was really useful. On my side, I was particularily happy with the discussions regarding Groovy and Java 8, where we eventually took the (long awaited for me) decision to provide some automatic coercion of closures to interfaces. Basically, this means that you would no longer have to write:

    interface Callback {
        void execute()
    }
    void onEvent(Callback c) { c.execute() }

    onEvent({println 'hello'} as Callback)

But instead, you will be able to write directly:

    interface Callback {
        void execute()
    }
    void onEvent(Callback c) { c.execute() }

    onEvent {println 'hello'}

This will lead to easier to read and maintain code. We discussed some limitations for the feature, but for a large number of cases, this would work directly. You can expect this feature to appear in Groovy 2.2.

AST transformations unleashed

The University day was the occasion for me to give a workshop about AST transformations. For GR8Conf Europe, I had the chance to do it with Andrés Almiray, the Griffon lead, but also one of the most talented programmer of the Java community. Andrés started with a small introduction about AST transformations, then I continued the workshop with a series of exercises (that you can take for yourself). Unfortunately, two hours and a half didn’t give us enough time to complete all exercises but I was quite happy with the session. I really hope this gave ideas to some people in the room, and that it provided the necessary bits to get started. Note that if you missed it, I will give the same workshop at GR8Conf US in Minneapolis, so register now!

Type checking your DSLs

I gave my second talk on Friday, last day of the conference. It was named Type checking your DSLs. While I already gave this talk 3 times before (G&G exchange, Greach and Devoxx France), I always like to change some contents to adapt to the audience and have some novelties inside. Unfortunately, for technical reasons, this talk went really bad for me. I assume people felt it, but I was quite disconcerted. The reason is that most of my talk relies on commenting code, but that I wasn’t able to show it properly! Even if the projectors were supposed to support full-HD through HDMI, for some obscure reason, my laptop wasn’t able to ``discover'' the HDMI output, and I was stuck to a 1024x768 VGA output. Worse than that, on screen, the borders were cut. This was the first time this ever happened to me, and to be honest, it completely troubled me. I wasn’t able to show code properly, so I wasn’t able to keep track of what I wanted to say. This was a horrible experience, but I hope people get the idea, as I only managed to give a rough idea of what I wanted to say :-( You know, that feeling when you try to explain something, and that people look at you as if you were an extraterrestrial…

I will give the same talk at Minneapolis later this year, so I sincerely hope things will go better, especially because I really like this talk, which gives a lot of hints on the power of the language, combining several features available in Groovy 2.1. All the (uncut) slides are available on GitHub.

Conclusion

Going to GR8Conf for the second time was like last year an incredible experience. I had the chance to talk to lots of talented and famous developers of the Groovy community, as well as sharing with users, which is worth the trip. This gave me for example the occasion to talk to two GPars brains for the first time (Dierk Koenig and Vaclav Pech). I’d really like to thank Soren for organizing this, as well as the crew for all the goodness that we can see here. I’m really looking forward to go to the next edition!