Today I went to High-Performance XML Processing: Techniques & Tips With the JavaTM API for XML Processing (JAXP) 1.3,
Desktop Application Architecture II: Using Threads Correctly and Effectively, JDesktop Network Components (JDNC): Simplifying JavaTM Desktop Client Construction, Deploying Rich Client to the Masses, and The Groovy Programming Language.
The XML and Rich Client sessions were pretty boring, so I don’t have
much to say here (I don’t do enough XML for the first really to ring
home with me, and Rich Clients focused more on configuration details
than I care about).
JDesktop Network Components (JDNC): Simplifying JavaTM Desktop Client Construction was very interesting. I hadn’t really looked at JNDC before, but the work Amy Fowler
and her team have done a great job. They demonstrated a rich
client for Bugzilla that used the traditional Master-Detail
approach. The data was accessed asynchronously, and there were
attractive and interesting renderers for the cells in the Master table
and for the elements in the Details form. It seemed that such a
design would have taken a long time to create in Swing (I think they
estimated days for 5000 lines of code). They showed that, in
fact, it was less than 200 lines of code using the simpler but richer
APIs from JNDC. More impressively, they also implemented the GUI
using just XML, taking less than 95 lines. Very impressive.
I’m going to have to investigate more later.
The Groovy Programming Language was a very popular session; they had to close the room not long after I got there. Groovy
is a new programming language “for the JVM combining lots of great
features from languages like
Python, Ruby and Smalltalk and making them available to the Java
developers using a Java-like syntax.” The simplified API that
James Strachan and Rod Cope created and presented was very
powerful. For example, Groovy uses the same methods to access the
elements of Lists, Strings, and Arrays. That’s much more
consistent than Java, and they added a lot of other methods to the
standard Java Objects (which are the core of Groovy Objects) that are
much more useful. Basically, Groovy takes care of a lot of the
boilerplate for you, at the cost of some performance (it’s not
optimized yet) and less useful error handling. The presenters
were knowledgeable and entertaining, and their subject was
fascinating. It might just be the best presentation I’ll see this
Now I’m at Karsten Lentzsch’s BOF for JavaTM Foundation Classes (JFC/Swing) Technology Data-Binding Techniques. Karsten really knows his stuff. I highly recommend his JDiskReport for looking at the space hogs on your disks.