Gr8Conf 2014 in Copenhagen has been great. Three days filled with very informative talks, learning the latest from the Groovy community and mostly meeting all the people involved with the Groovy community, both project leads, members and users.

As always the first day of the conference is a university day with workshops that take 3 hours. This format is more of a hands-on experience. The day started with a Getting Groovy workshop to learn Groovy and play around with the language given by myself (Hubert Klein Ikkink).  Notes and the presentation can be found at Github. The following session we attended was Creating RESTful API's with Grails and Spring Security by Alvaro Sanchez-Mariscal.  After some startup problems, we were running out of time, so he did a live coding session. Where a rest service was created and login functionality added. I got some good ideas for our upcoming rest workshop. The final session of the day was really about playing: Getting Groovy With Lego Mindstorms EV3 by Ryan Vanderwerf. Ryan gave a small introduction about leJOS as an operating system for the Mindstorm computers, capable of running Java code. But we can also use Groovy and run the compiled classes on a Mindstorm computer. It is good to use the @CompileStatic annotation, because otherwise the application will be to slow to run. After the introduction Ryan had five Mindstorm sets we could play with. It was fun to write little code snippets with actions for the Mindstorm 'robot' to execute and then upload them to the Mindstorm computer and see the results. This was really fun and the Groovy support can be even extended by including builders for instruction. The project is open source and we can all contribute. Code from the talk is available at Github. At the same time the workshop about Unleashing the power of AST transformations by Cédric Champeau started.  The great thing about AST transformations is that you can change the bytecode, so non-groovy languages can use it. There are multiple phases where you can use your transformation, depending on what you want. These were some hard exercises. Homework! The workshop is also available online.

It is tradition that the university day ends with Hackergarten. The goal of Hackergarten is to work on open source projects in small groups and try to make a contribution in a 2-3 hour time span. Groups worked on Ratpack, Grails plugins, implementing a GUI for GVM and other projects while enjoying some drinks and pizza. The conference on the next two days is filled with talks of about 50 minutes.

The conference was opened by Søren Berg Glasius of the organizing team. Guillaume Laforge followed with a keynote about Groovy in 2014 and beyond. The day before Apple announced Swift as a new programming language and Guillaume could already show the resemblances between Swift and Groovy. Swift has "borrowed" some nice Groovy features.

In a next session Andres Almiray talked about the The Groovy Ecosystem Revisited. He showed a lot of projects using Groovy besides the "Usual Suspects", where GVMtool is Keyser Söze. At the same time Peter Ledbrook talked about Application architectures with Grails. Explaining that it's often best to leave the database implementation and the model till the end. Claus Ibsen talked about Integration using Apache Camel and Groovy. He already apologized in the beginning the focus would be more on Camel than Groovy. He explained how Camel implements integration patterns and how easy it is to write code using Camel. Also HawtIO was mentioned as a monitoring tool and Claus showed how to use it. Hybrid client/server view rendering with Grails by Rob Fletcher showed how we can reuse Handlebars templates both at the client in Javascript and on the server with Grails. There still can be a lot gained with generating views on the server side, but we don't want to implement the same templates with different template engines, because then we would have to maintain different code. Vert.x using Groovy - How you can simplify non-blocking code was presented by Sasha Klein. He introduced Yoke a middleware framework for Vert.x. He also showed how Groovy can help in writing better and more maintainable code. Next Marco Vermeulen talked about Cucumber in his talk BDD using Cucumber JVM and Groovy. He started first to explain a bit about BDD and how BDD can help to get a shared understanding of what the software must do. He also explained the anatomy of a Cucumber specification. He also did a demo which showed how easy it is to write tests with Cucumber. At the end of the day there was a short talk about Lazybones by Peter Ledbrook. Lazybones is a tool to create new project structures for all kinds of frameworks using templates. This way we can write and reuse predefined project structures to get started quickly. The tool is also available via GVM. His short talk was followed by Andres Almiray talking about Griffon: what's new and what's coming. Griffon, like Grails, will be using Gradle. Also there will be a more modular design, support for Java 8 and much more nice features. Just after the conference Griffon 2.0 beta was released and ready to play with. Before the first day ended with a Meet and Greet, together with a BBQ and home brew Gr8Conf beer, there was a great talk Groovy and Grails Puzzlers - As usual - Traps, Pitfalls, and End Cases by Naomme Tenne. Naomme showed some Groovy code and asked the audience what the result would be. The code contained constructs which seemed logical, but were not, or unexpected results were given. This was really fun.

The second day of the conference started with a keynote talk about Grails 3.0 and beyond by Graeme Rocher. The future of Grails is all about using Gradle as the build system, modular design, support for multiple types of applications (microservices, big single application). Grails 3 will be built on top of Spring boot and Graeme already showed a working Grails 3 application on stage! The future of Grails still looks bright and it is nice to see the platform really evolves and supports the latest trends in software design. After the keynote I (Hubert Klein Ikkink) did a session on Gradle: Gradle Goodness. As always I want my presentations to be full of code snippets, like my blog. Some known and maybe lesser known features were shown with live coding samples. Göran Ehrsson talked about how he makes use of grails plugins to quickly make applications. All the logic is in the different plugins and an application is just glueing the plugins together. He has made a lot of his plugins available at Github. Marco Vermeulen did a talk on Building micro services using Groovy, Spring Boot and friends. It turns out it is very simple to get started with writing Spring Boot applications and use Groovy as the language to develop your code. This really feels like a natural fit, where the underlying framework is all about developing fast and we can use the Groovy language to express ourselves in neat, readable, maintainable and concise code. At the same time Cédric Champeau did a presentation on how to write Android apps with Groovy. Unfortunately we couldn't attend the session, but the Groovy 2.4 beta already contains the code that makes it possible to use Groovy for Android! After lunch Ryan Vanderwerf talked about his experiences with cloud computing and which tools we can use to make life easier when working with cloud solutions. He has really some real-life tips and tricks and pointed out pitfalls to avoid. Colin Harrington talked about Functional testing your Grails app with GEB. He explained first the features of GEB and then showed how we can write our tests using GEB for a Grails application. GEB is very powerful, because of the page model, which allows for very solid tests, even though underlying content on pages can change (for example dynamic HTML id values). Finally Rob Fletcher talked about Idiomatic Spock. The presentation was filled with a lot of useful tips on how to write good specs and how to use the most of what Spock has to offer. He also showed some common pitfalls and ways to do it right. We could only cover the sessions and talks we attended.

Please visit the Gr8Conf website and learn more about the other talks. In the upcoming weeks the video's of the talks should be available on Youtube and check the presentation description pages, because they will contain links to slides. Gr8Conf 2014 was again very good organized. The talks have good debt and the nice part of this conference is that you can meet all the amazing people that develop the Groovy related projects and frameworks, but also those that use the frameworks in their daily life and just enjoy programming. Written by: Tammo Sminia and Hubert Klein Ikkink