...and brought many new ideas home. JAX 2008 was a great event, but also very exhausting. There were a total of 211 sessions from which to choose from starting at 08:30 in the morning with session until the late evening.
Main themes as I have collected them where:
- Dynamic Languages
- Spring
- SOA
- Eclipse
- Architectures
- Web frameworks and RIAs
- Complexity of the classic JEE offers. I would even say that I heard of a severe crisis of JEE and I doubt that a radically simplified EJB 3.1 will change peoples mind on that.
I used FreeMind to collect notes and here are the unedited notes I took during some of the sessions:
General Notes abut JAX 2008
In general JAX 2008 had more than 2000 participants - a record in the history of this conference. There where 211 sessions, 22 workshops and 10 short talks presented by 178 speakers. In my opinion JAX 2009 should rather try to reduce the amount of sessions and given the presenters more time. Most talks had to rush through the content as the time was limited to an hour and there was so much to say.
Pretty interesting was the architectural layers for future enterprise applications presented by Sebastian Meyer during the opening of JAX 2008:
- DSL: Domain specific languages used by the customers to create rules and adapt the software to their needs
- Fluid: The fluid layer contains glue code and easily changeable high level logic made of scripting languages like Grovvy or (J)Ruby or using BPM engines.
- Solid: This is were the complex backend logic is beeing implemented. Mainly Java POJOs or plain old Java EE.
KEYNOTE: Does Enterprise Java Have a Future?
Rod Johnson from Spring Source gave some insight into what we can expect from Java EE 6, which is scheduled to be released in late 2008/early 2009.
Extensibility is a key point of JEE 6. It will be more open to 3rd party vendors to plug in their own extensions.
Another major change will be the introduction of profiles. Each profile has a different set of technologies. Profile A is a minimal profile consisting of Tomcat and some basic technologies. Profile B adds persistence and component models, while Profile C will represent the classic, bloated and fully features JEE.
However the current market leader is clearly just Spring and Tomcat.
Rod predicted that EJB will die.
Opening Eclipse Forum Europe
After Mike Milinkovich (Executive Director of the Eclipse Foundation) gave some information about the development of the Eclipse Foundation organization, Jeff McAffer (leading Equinox and RCP) and Jochen Krause gave more technical info about the future of the Eclipse platform.
The platform will move more towards the Equinox framework (OSGi), will become more flexible and move towards RIA technologies. What I found very interesting was that SWT will become capable to run in a web browser. Not as an applet as many may think of now. SWT will generate Action Script code from Java code and thus will become a direct competitor of Adobe Flex.
API Design - Designing Persistent Interfaces
Arno Haase and Sven Efftinge a great presenters. Too bad that the presentation did not show up new innovative ideas. The content was very well known to me.
KEYNOTE: Errors - So what!
Bernd Löchner from Zühlke Engineering hold a keynote about error handling. This was one of the best keynotes. Although error handling is something that should be very well known, it does not harm to repeat it again and again. One essential point I realized was that despite of its importance, error handling its coverage in literature is very limited.
Event-driven Architecture
Markus Lünsmann and Torsten Winterberg from Optiz Consulting gave an overview over Event-driven Architecture. I hoped that they would show some pracitcal use case scenarios. However they only talked about the theory. Afterwards I talked with other participants and this showed that the presentation left many questions open for people that did not dived further into EDA before. Especially its use in the context of SOA.
RIA - Comeback of "real" UI Technology
This was a short talk, where short means as much as 'Too short'.
It contained severl good points that matched my impressions about the usefulness of AJAX, however in the end I had the impression that the session was more or less a presentation of Captain Casas products.
Google Gears

The
next short talk was about Google Gears - a framework that allows Online
applications to be used offline like Google Reader (simply click on
'offline' on the upper right to test that). Well, I was a little bit
dissapointed. It's use is limited to JavaScript applications that use
the Google Gears libraries. An browser extension then provides the
necessary environment to run the application locally.
Apache Sling - a REST-based Web Application Framework
Carsten Ziegler gave another very short introduction into the Apache Sling Framework, which won the fifth place of the JAX Award.
After the session I asked him, how Apache Sling compares to Grails. First of all Apache Sling uses OSGi as base for the deployment - a very good idea. However it does not provide the capability to generate code for you. However when there is no custom code for a resource, it provides default views.
The real power of Sling seems to lay in its flexibility. It can use any Java compatible scripting language (Groovy, JRuby, JavaScript,...) or views and controllers can be implemented in plain old Java. Resources can be anything. Not only database resources, but also file system resources.
Aspects of Running Large Java Applications
Dr. Carsten Schinzer from Amadeus Data Processing GmbH showed how the leverage a CMDB to manage their environments. Well, their use cases were not very sophisticated. HP Software provides with its UCMDB portfolio much more in this area. Unfortunately they decided to migrate to BMC Atrium. We asked him after the session for the reasons, but he wasn't involved in this decision.
Non-Functional Requirements of Architectures
Another greate presentation from Arno Haase. Unfortunately also nothing new for me. Anyway it's always good to see the views from the outside world are not too different from what you learn in a big company.
KEYNOTE: Architectural Patterns and the Emergence of the GigaNOW
Miko Matsumura from Software AG hold a great keynote on the architectural problems with regards to
- Why is Enterprise Software so stupid?
- Keyproblem: Enterprise Software is made by humans that want to save their own workplace and their own ideas.
How to Tell the Team? Applied Architecture Communication
Dr. Gernot Starke proved why he is such a well known presenter. He talked about a rather boring topic in a very entertaining way. I guess this would never happened in the main hall, if it wouldn't have been presented by him.
Design Patterns in Dynamic Languages
Neil Ford shows how well-known Design Patterns are applied in modern dynamic languages like Groovy or JRuby. The essence: dynamic languages do not need some Design Patterns, or Design Patterns are much easier to use in dynamic languages, since they are already build in. E.g. the command pattern is obsolete due to closures.
Effective Design Using Swing
Mr. JGoodies himself showed how to effictively design UIs using Swing. With the use of JGoodies FormLayout he demonstrated how to create uniform UIs and what is required to create nice UIs.
This was a great talk.
JSR 311 - Java API for RESTful Web Services
Stefan Tilkov from InnoQ presented the JSR 311 and showed examples on how to apply it to create RESTful services. The presentation contained a lot of basic information about REST I already knew. Still it was a great talk and gained high interest.
Java Programming in the Age of Multicores
Surely there is a lot to say about new technologies. But what about the core of Java, the plain JRE? Angelika Langer showed that there is still much to learn about Java, especially when using multithreading with multicore CPUs.
She showed several great examples containing errors that are everything else than obvious and why programmers should care for language elements like volatile.
DSLs in Java - Fluent API Design
I was disappointed by this talk, which simply covered well known patterns like Method Chaining, Builder Pattern or nested function calls to create a fluent API.
Maintainable RIAs using Java 6SE, Java FX and JEE 5/6
One of the best talks, held by Adam Bien. I just had wished that the Session would have been longer given the large amount of content.
He covered the latest features of the upcoming Java 6 update 10 and how it will change the perception of Applets and Swing UIs. Gave some previews to Java FX and showed how EJBs 3.1 can help separating controller logic from the model and the view.
Workshop: Groovy for Java Developers
On the last day I visited the Groovy Power workshop, held by the Groovy Guru Dierk Koenig and Tammo Friese. We did stuff like using meta classes to extend existing classes by methods. The workshop concentrated on all the stuff that is not possible with Java and what are the real differentiators between Java and Groovy. A good idea. It was interesting that the workshops were done using IntelliJ, since no other IDE can provide a similar powerful Groovy plugin. What I really liked about the Groovy plugin was, that it highlighted dynamic function calls in a different way than plain old function calls.