Tried to attend a few sessions today, at Devoxx 2009 in Antwerp, Belgium, that I wouldn't normally have done, i.e., sessions that didn't necessarily grab my initial interest. If you only attend sessions that appeal to you, you're potentially missing out on discovering completely new tools or techniques.
So, some of those are included in the list below.
The highlights of Devoxx were listed by the JavaPosse team as follows:
- Closures in JDK 7
- Fork/Join in JDK 7 (the assumed rationale for closures)
- Java 7 date slip to September 2010 (June feature freeze)
- Java EE 6 release date December 2009
- New package file format to replace JARs
- Adobe Air 2.0 Beta
- Adobe Catalyst
- JavaFX components, 1.3 level components
- JavaFX RAD Tool (in NetBeans IDE)
- Parleys 3.0
From now onwards, JavaPosse will be broadcast every other week, it will focus more on big news (less on minor product releases and more on interviews and discussions), and will broaden its topics beyond Java to include other languages on the VM.
Two things I heard about that I'd like to look into: "bad code credits" and the Google Go language.
Funky Java, Objective Scala
This was my first session (ever) on Scala. (I actually thought I was in a different session initially.) Dick Wall is a great presenter. He started by pointing out that after 20 years of object oriented focus via Java, we're in a situation where we have a hammer and every problem we look at seems like a nail. But not all problems are nails, while objects (invoices, cars, dogs) are not the only thing around which programs need to be able to organize themselves. And the argument was also made that even in the object oriented game Scala beats Java (because of, for example, properties).
Functional programming via, for example, Scala fits well in places where you're not dealing with e-commerce applications but, instead, when you're working (for example) with scientists and mathematicians who don't think in object oriented terms. In some detail we were taken on an interesting excursion into genetics (specifically, life expectancy calculations) and shown how functional programming works better than object orientation in that context, since Java leaves you in a dense jungle of "ifs" and "fors" that is (a) hard to parse and (b) nearly impossible to test.
We were also shown some code examples of how the freshly proposed Java closure proposal would help make the Java code samples more concise. Quick book tip: Dick Wall cited Java Generics and Collections as "one of my most thumbed through books". Two things I heard about that I'd like to look into: Lombok and JSR305/Findbugs, with its CheckReturnValue annotation.
Jason van Zyl discussed Maven 3.0 in some detail: polyglot support, OSGi resolution, Maven shell, Maven 3 extensions, queryable lifecycles (execution plans), lifecycle mappings, Tycho, embedding, error and integrity reporting, refactored plugin manager, plugin extension points, Jetty client and SAT4J, extensible reporting, Guide and Peaberry.
What I found particularly interesting, though it won't make it into 3.0, is the possibility of converting a pom.xml file to a pom.groovy file. However, until co-operation between the two formats, via an intermediate format (probably) can be resolved, this won't be supported officially. The release date for Maven 3.0 is end of January 2010.
That's it for today. I walked into a few other sessions and noticed that Kirk's performance session was MASSIVELY attended. I'd seen parts of it before, in Prague, at TheServerSide conference (and reported on it on Javalobby at that time), so gave it a miss. However, I really like his message in every presentation he does: performance tuning isn't magic, it's science: "The system is screaming at you, telling you everything you need to know. All you need to do is listen." Nice.
All the sessions held today at Devoxx are listed in the program here.