Friday, October 19, 2012

SpringOne 2GX - Conference Summary

Here is a high level summary of the key themes and take-aways that I got from the SpringOne 2GX 2012 conference.

First of all, the name of the conference can be parsed as follows:
  • SpringOne is analogous to JavaOne (but the focus is on the Spring framework instead of the entire Java ecosystem)
  • 2G = Groovy & Grails
  • X = other stuff in the Groovy/Grails ecosystem (Gradle, Geb, GORM, etc.)
This was a big conference. I don't have an exact head count but I'd say that there were over 500 people there. The conference was divided into two separate parts (Spring and Groovy/Grails); the sessions were even held on different floors of the hotel. I only went to the Groovy/Grails sessions.

The final session that I attended, Grails and the World of Tomorrow by Peter Ledbrook, provided a good summary of the major trends in web system architecture these days:
  • moving applications to "the cloud" for horizontal scalabiltiy, efficient resource utilization, and reducing IT infrastructure costs
  • moving page processing off of the server and into the browser using one (or more) of the many javascript frameworks that are becoming available. One example of this is the "single page" web app.
  • use of NoSQL data stores (redis, mongoDB, cassandra, Neo4j, etc.) to allow applications to scale better horizontally
  • social integration (Facebook, twitter, Linked-In, Google+, etc.)

Groovy take-aways

I learned a few new and interesting things about Groovy at this conference.

I knew that Groovy 2.x supported static type checking and compilation but I thought that using it meant having to use Java 1.7. Groovy 2.x can use Java 1.5, 1.6, or 1.7. I am now much more eager to start using Groovy 2.

I learned more about closures in groovy. I had assumed that they were essentially the same as closures/lambda-expressions in other languages. Groovy, being object oriented, represents closures as a class with some properties that I wasn't aware of. Every closure has (potentially) three properties: delegate, this, and owner. These affect how free variables in the closure are resolved.

I learned a bit about metaprogramming in groovy too, including how to write modules that can add methods to ordinary existing java classes at run time.

Gradle

Gradle looks very promising as a new general purpose build framework (not just for java and groovy). I want to take some of our Imake rules and create gradle plugins for them.

Geb functional testing framework

I went to a session on geb and learned a lot about what is going on with it. Here is an architecture diagram for geb from that presentation:

The Selenium project has migrated to the Google-supported and soon to be W3C standard WebDriver mechanism for controlling different web browsers via their native interfaces.
The target release date for Geb 1.0 is Q1 2013. I'm putting together a presentation on web functional testing using Geb so I won't go on about it here.

Grails

I went to a few sessions on Grails. The Grails 2 Update session gave an overview of things that have changed between Grails 1.x and 2.x but I knew most of this because Grails 2 has been out for almost a year. Burt Beckwith's session on Spring Security in Grails was interesting. My take-away was to not try to implement this stuff yourself; use the things that folks like Burt provide.

0 Comments:

Post a Comment

<< Home