Thursday, March 15, 2007

QCon: Cold Turkey after EclipseCon

Last week at EclipseCon I had the feeling that my evangelist days were numbered. At that conference it was too easy to think that we conquered the world and could claim victory. In comparison, QCon is a bit going cold turkey. There seems to be something called .NET from an obscure company in Redmond that is also being used to build systems. I even met a woman from IBM focusing on open source software that was not really aware of OSGi. I guess that I have to keep on running around in my Ask me about OSGi shirts a bit longer.

Though the news is not all bad, Rod Johnson (he seem to be an even more frequent conference speaker than I) from Interface21 (the Spring people), gave a very interesting presentation in which the OSGi technology played a major role. He even followed the OSGi marketing missives as a new member, explaining that the OSGi Alliance denies they have anything to do with gateways. Of course the effect is that he is educating most of the the audience about the fact that we once had something to do with gateways! Anyway, it was a good presentation that helped to alleviate the first withdrawal symptoms.

Rod also gave a presentation about Aspect Oriented Programming that was quite interesting. I was at the OOPSLA 97 conference where AOP was first made public and have followed it over time, now and then playing a bit with it. However, I always shied away of using it in real products. It is interesting how Spring allows you to use many of the AspectJ features without really requiring any AspectJ compiler. The integration facilities of Spring are quite powerful, just the fact that they use XML is a bit off-putting.

This dislike of XML is the reason that I read the Grails book lastnight (the party was way too noisy and too crowded, so I walked back from Soho after 2 minutes and 12 seconds in the bar). Grails is supposed to be Java's answer to Ruby on Rails (RoR). Key feature of Ruby on Rails is that it does not use XML! Last year at Oredev Niclas Nilsson of Activa gave a cool presentation of RoR on Öredev in Malmö. Anything that actively avoids XML configuration files has my undivided attention.

Unfortunately, Ruby has its own world disjoint from Java. JRuby is supposed to correct this shortcoming but in the meantime Grails is trying to clone and surpass RoR.

Grails consists of Spring (configuration, bean handling, MVC model), Hibernate (persistence), Quartz (scheduling), and Canoo (testing), all bound together using Groovy. I had eyed the Groovy language but never really looked into it. I must admit from the Grails book's explanation I was quite impressed. I am not completely clear how they do all their magic but it looks impressive. This seems a really nice dynamic language that is well integrated into Java. Recently I spent some flights trying out Scala but that syntax was a bit harder to digest (though it is a static typed language while Groovy has typing as an option). Key thing is that Groovy supports closures and syntax for lists and maps. The lack of closures in Java is an unforgivable oversight and the lack of special syntax for lists and maps is a major inconvenience.

Key thing of Grails is that it uses a lot of conventions to minimize the coding one has to do. A code generator uses conventions to create most of the boiler plate code that is so prevalent in enterprise software. I have read the book but not played with it yet so I might be disappointed when I really start to play with it, we'll see. But so far it looks promising.

I am not sure if it is my advanced age or the industry is accelerating but I never felt so behind in catching up with emerging technologies. I guess I have to take some weeks off and learn to work with all those libraries and frameworks that seem to become mainstream. Spring, Hibernate, Grails, Linq, Scala, Groovy, AOP, JRuby, Jython, .NET 3.0, Struts, the list seems endless.

A lot of these technologies have become mainstream and through the Enterprise Expert Group they have become key technologies that should run on OSGi service platforms. Grails seems to contain most of theses hot technologies so creating an application with it and making it run on
an OSGi framework would teach me a lot. A cool project would be to port the OBR repository to Grails and run it on an OSGi framework. OBR v2 seems a very suitable application for it. Then again, time is always in short supply somehow. Which reminds me, I better fine tune my slides for my presentation.

Peter Kriens


  1. I didn't know that you are into Grails. I've tested some Groovy in my OSGi-Bundles a couple of weeks ago and it was kind of fun. What I would be intrested in, is Grails running in OSGi and then developing modular Grails-Applications that consist of different OSGi-Bundles.

  2. I did not know I was into Grails as well, I just read the book and there many things I liked. :-)

    However, I think the combination OSGi and Grails definitely seems very tempting.

    Peter Kriens

  3. Thanks for blogging about QCon! I just wanted to let you know that we quoted and linked from this entry on the over all QCon 2007 blogger's key takeaway points and lessons learned article:

    Feel free to link to it and of course blogging about this articles existence would help even more people learn from your and other bloggers takeaways.

    Thanks again!