Devoxx 2009, day 2

19 Nov 2009    

Second day of Devoxx today! Unlike yesterday, traffic to the venue was bearable this time, so I arrived a bit early. This gave me plenty of time to wander around the exhibition and have some (free) breakfast. I had a nice talk at the booth of SpringSource: they offered a discount for their core Spring course .. but I’m afraid the economical situation won’t allow me to actually take part in it. Maybe next year …

Keynote First up today was the keynote of Ivar Jacobson. Ivar spoke about the the fact that software engineering doesn’t have a theoretical base. New methodologies appear every couple of years (eg. RUP, Scrum, …) and often old methodologies end up being replaced with these new methodologies. In that process everything we might have learned in the past is thrown overboard and software engineers need to learn the new standards. We need a theoretical base, that is extensible in order to stop reinventing the wheel: a sound theory for software engineering. To search for that theoretical base, Ivar started an organisation called Semat. Ivar proposed a standard kernel, containing standard practises. That standard kernel can be extended when necessary, with other existing practices.

After Ivar, Robert C Martin - Uncle Bob raged through the theatre, talking about the gap between management and development through the years. He assigned this gap to a lack of professionalism and craftsmanship. The road towards professionalism should start with pride about what’s being build. And from that pride, developers should stick to their principles and not always give in to management when it comes to achieving impossible deadlines. For professionalism a developer needs certain code ethics:

  • apply test driven development
  • do no harm (don't write code, where one would not be proud of)
  • to go fast go well
  • code coverage

Know your code works!

Spring Framework 3.0 by Arjen Poutsma This session mainly discussed the new features of Spring: generics, (web) context attributes, expression language, declarative bean validation (JSR303), full support for Java EE6, REST support,.. Arjen presented a demo on REST support for retrieving images from Flickr, that can be found here. Spring 3.0 should be a drop-in replacement for 2.5. I’ve always been a fan of Spring (sort of) and Spring Framework 3.0 got me excited all over again.

Pro JavaFX - Developing Enterprise Applications by Stephen Chin Stephen showed JFXtras components and examples, layouts, tests and Enterprise (REST + SOAP) samples. This was the second session I followed on JavaFX and for the second time I ended up begin a little bit disappointed. Compared to the small Flex4 demo from yesterday, JavaFX seems to need a lot of work to get nice simple things. I’m sure it’s possible to create good looking applications using JavaFX, but I don’t feel like writing 20 lines of code to have a button with a gradient and a nice rounded border … The interaction between designer and developer in Flex4 was rather impressive. On the other hand, JavaFX is build on the Java platform ..

The JavaPosse.com Live by Dick Wall, Carl Quinn, Tor Norbye and Joe Nuxoll This session was a live recording for the JavaPosse.com podcast. The session started with free Belgian beer (Duvel) and as expected it was good fun.

Enhancing the JavaServer Faces 2.0 Component Model by Roger Kitain Since JSF is part of the recommended Java technology stack at my employer: HP Enterprise Services, I decided to attend this session from Roger Kitain. Roger presented the JSF2.0 Component Model and demonstrated how to create and enhance complex components, for example with Ajax or Behaviors. An innovation in JSF2.0 are Composite Components. As you can guess, Composite Components are components that are composed out of other components. They should especially be interesting for re-use, for example a loginpanel. JSF2.0 is also well-integrated with Ajax: it is possible to have Ajax calls from the Composite Components and these calls can also be nested: eg. click on a panelGrid and mouseOver components on that panelGrid. With Behaviors JSF adds more functionality to components. Ajax is also a Behavior in JSF2.0: AjaxBehavior (which is an extension of ClientBehavior).  With behaviors  it’s possible to go further: client side validation, tool tips, … which results in a generic behavior model.

Android - resolution independence and high performance graphics by Romain Guy This presentation was divided in 2 parts:

  • resolution independence: different phones = different resolutions and different DPI
  • high performance graphics: a new language was introduced in Android: RenderScript, which is a C-like language for high performance graphic programming. RenderScript isn't released yet as it isn't finished.

Romain really knew what he was talking about and did so in a very passionate way. The presentation was transparent and featured interesting demos. I really intend to make some time to start playing with Android!

Tomorrow is the last day of Devoxx, I’m definitely looking forward to the session on the Pomodoro Technique.