The Artima Developer Community
Sponsored Link

Dr. Dichotomy's Development Diary
JavaPolis 2004 Trip Report
by Eamonn McManus
December 23, 2004
Summary
JavaPolis is great! Lots of interesting people, lots of interesting sessions. Here are my experiences, with a summary of most of the sessions I attended.

Advertisement

I attended the JavaPolis 2004 conference in Antwerp, Belgium. I was invited to talk about the JMX API and was very glad of it because it was the occasion to discover a very interesting conference. The conference is organized by volunteers from the Belgian Java Users Group (BeJUG) and manages an extraordinary level of quality, especially given how inexpensive it is (€200). Any slight criticisms I might have below should be read with that in mind.

The conference takes place in the Metropolis cinema complex on the outskirts of Antwerp, which is the second largest cinema complex in the world. (The largest is in Spain.) To give you an idea, they have 32 different films showing at the moment.

The conference presentations are in film theatres. For once it is possible to read even the small print on people's slides, projected as they are on huge cinema screens. Some speakers were a bit nonplussed by this, showing slides that were supposed be a blur of illegible XML text so they could say "instead of this illegible XML text, uh, text that would be illegible anywhere else..."

I noticed that nobody seemed to be able to agree how the name of the conference should be pronounced. Is the accent on the second syllable, like "photography", or on the third, like "photographic"?

One particularly nice innovation they have is that the video output from the laptop you're presenting from is captured and recorded along with your voice. The recorded presentations will soon be downloadable, and what you will see when you play one back is the presentation as it appeared to the audience, including any animations, and in particular including demos. I haven't seen that with other conferences, and it is a big plus.

The downside is that I only discovered five minutes before I was due to present that in order for the recording to work, the output has to be 1024x768@60Hz. The laptop I was planning to present from, running the Sun Java Desktop System (i.e. Linux) could do 1024x768, but it couldn't do 60Hz. So I had to reboot it into MS Windows, which could. I thought I had a backup of the demo on the Windows partition, but after rebooting I discovered that all I had was some uncompiled sources. So I had to frantically root around to find a JDK I could use to compile them and set up the demo, all in front of a roomful of people waiting for my by-now-late presentation. Not the best way to start, but I got there, only a few minutes late. But of course I realized half-way into the demo that the sources were old and didn't completely correspond to what I wanted to show. Just as well I'd included my "in case the demo doesn't work" slides.

I was presenting the JMX API. (You have to sign up at javapolis.com to access this and other presentations.) I gave a two-part presentation, as I often do. In the first part, I explained what the JMX API is for and showed how easy it is to use it with JDK 5. Creating a managed resource is just writing a Java interface and an implementation of that interface; registering the resource is a couple of Java calls; and once you've done that you can launch your app with java -Dcom.sun.management.jmxremote and connect with jconsole. Then I did the demo (oops, the names in the demo don't correspond to the source I just showed; oops, the managed resource doesn't emit notifications; oh well).

In the second part I gave a snapshot of a few of the API additions we're planning in JSR 255 (JMX API 2.0):

The talk was well attended and apart from the minor demo problems I thought it went pretty well. Here's a photo of me during the talk where it looks as if something very unpleasant has happened to my hand. I'm all right, though.

I also gave a BOF to talk in more detail about what people wanted from the next version of the JMX API. Unfortunately, the earlier BOFs overlapped the later conference sessions so only three people came. We had an interesting discussion all the same. The other BOF at the same time was given by one of the conference organizers, and despite an interesting subject (TopLink) nobody at all came, so I'm guessing that next year the BOFs won't overlap the sessions.

There was a great deal of interesting stuff at this conference, and I couldn't see it all. Here are some things I did see.

Rod Johnson, Howard Lewis Ship, and Sven Beauprez gave a joint BOF about Inversion of Control frameworks. This was particularly interesting to me because JMX is sort-of such a framework. I was left wondering, not for the first time, whether we couldn't add some simple form of dependency injection to the JMX model.

Every technology has its overblown trivial debates and for IoC it's Constructor versus Setter Injection. Rod feels that constructor injection starts with a major handicap, which is that the Java reflection API doesn't allow you to know the names of constructor parameters. I suggested that this could be corrected with a standard annotation, for example as in this request for enhancement.

Rod Johnson also gave an excellent if controversial presentation called J2EE without EJB. To summarize his position: EJB 2.x is too hard to use; EJB 3.0 will correct this somewhat; but it will be another couple of years before it will be in all the major app servers. Unless you are using MDBs or need distribution, you are better off forgetting EJBs entirely and using an Inversion of Control framework like Spring. Of course, Rod is co-founder of the Spring project, so you might guess that he is a bit biased.

Tim Bray gave a keynote "When Not To Program in Java" about dynamically-typed languages targeting the JVM. There are a number of these now, notably Groovy and Jython (Python for the JVM). Tim recently organized a summit to discuss the subject and he was obviously still on a high. One of the outcomes was that there should be some JVM support to make it easier to support dynamic languages, for example extra bytecodes.

Tim quoted Seán McGrath to the effect that static languages limit your possible failures but in so doing they also limit your possible successes. Tim is not advocating throwing out static languages like Java, but rather suggesting that there are places where dynamic languages are a better fit. Test development is an obvious candidate. Scripting in large systems is another ("all large systems end up having scripting"). Gluing together components in frameworks is a third.

(Seán McGrath was in the same Computer Science class as me lo! these many years ago. He seems to have become geek-famous while I wasn't looking.)

Greg Bollella gave a keynote on the Real-Time Specification for Java, with technical details and some of the uses to which it has been put. I saw a lot of interest in this talk during and afterwards. Greg and his team are at Sun's site in Grenoble, as am I, so I was already familiar with the material, but this was the first time I actually saw the famous "Viagra demo". (The white stick is on a pivot and would normally hang downwards, but a little electric motor driven by RTSJ conspires to keep it in the air by moving sideways as necessary. Like balancing a ruler on your hand. If you tilt the stick sideways the motor compensates and gets it vertical again. All of this while the same JVM runs a non-real-time but compute-intensive animation. And if you switch off the machine piloting the motor a second machine in hot-standby takes over immediately and the stick doesn't budge. This got a round of applause.)

Jon Bostrom of Nokia gave a keynote on Mobile Java. I'm ashamed to admit that I was sitting in the very back row and fighting with my laptop's flaky connection to the very expensive WiFi access I had paid for, so I wasn't paying as much attention as I should have. The key thing I understood was that Java is winning the war for application platforms in mobile phones and is set to achieve the same monopoly position as Microsoft has on the desktop. (This is my interpretation of the figures and trends presented.)

While I was sitting in the back row, a person emerged from a hatch in the wall above my head and jumped onto the seats beside me. I felt like William Shatner in the famous Twilight Zone episode with the gremlin. Before anybody else could see him, he disappeared back into the hatch.

Tim Boudreau presented NetBeans 4.0. I've been using the beta of this for a while and have been very happy with it, so Tim was preaching to the converted as far as I was concerned. Tim showed a couple of nifty new things, though. One is the integration with the JFluid profiler, which I'll certainly be using once it's available for JDK 5. The other is the support for J2ME. For J2ME, there's support for different flavours ("configurations") via a preprocessor that gives the moral equivalent of #ifdef, so you can extend NokiaCanvas if building for Nokia and plain Canvas otherwise (or whatever). This would probably be considered ideologically unsound in the J2SE world, though it is mitigated by the fact that NetBeans builds both the plain source code without any flavours defined and the flavour you have selected in the IDE. So (if I understand correctly) you must have at all times a version of your app that compiles portably.

Susan Landau presented the Trusted Computing Group. I got the impression she was expecting more animosity from the audience than she got, because people do associate this name with some of the more hostile Digital Rights Management proposals. Her presentation made it clear that DRM is not a goal of what the TCG does, and that there are many conflicting goals in the area of data security, from which the usual evil-record-labels-trying-to-control-everything discourse is mostly a distraction. The sort of questions they really tackle are: If you connect to me, how can I trust you are who you say are? Can I be sure your machine hasn't been taken over by a virus that is piloting the authenticated connection from it to me? Will I still trust you if you tinker with the open-source OS your machine is running?

The presentation was interesting, but it was the questions and answers that really woke the audience up. It was clear that Susan was choosing her words very carefully and balancing her own opinions, those of Sun on whose behalf she participates in the TCG, and contrary opinions held by other TCG members.

Gregor Hohpe talked about event-driven architectures. After an exposition of some of the nice stuff now available in java.util.concurrent, he went into more detail on event systems, point-to-point versus publish/subscribe, channel naming, testing, and more. Although it wasn't the subject of the talk, a natural follow-on is the use of messaging for Enterprise Integration, which is a hot topic in which Gregor is an expert. I missed the course that Gregor gave earlier in the week, but the online slides are excellent.

Mark Hapner talked about Java Business Integration (JSR 208). The main thing I saw people discussing afterwards was that JBI isn't exclusively about Web Services, which is the impression people often get, but more generally about linking together disparate components through exchange of XML messages.

I was of course chuffed to see JMX figure prominently in many of the slides. The idea being that JMX technology is used to control installation of plug-in engines and bindings, their life-cycle management, and their monitoring and control.

Microsoft had a stand in the exhibition hall, which surprised me not a little. I kept meaning to visit it to see what they were pushing, but never got around to it, so I don't know. They also had a bunch of Xbox arcade games, which didn't seem to attract people much.

Rick Ross and Matt Schmidt of JavaLobby gave a BOF purportedly about JDocs.com but actually vaunting the activities of JavaLobby, of which JDocs is one. The main thing I retained was that JDocs.com contains a big collection of Java API docs that are cross-indexed and searchable, and that users can add clarifying comments to the APIs to accumulate wisdom in them. They only really needed five minutes to talk about that, though, not an hour. I had a look at JDocs.com in the meantime and wasn't unduly impressed; but maybe it will improve.

Mark Proctor and Bart Strubbe gave a BOF about Drools, an open-source rules engine. Although rules engines are of interest in the management world (in particular for event correlation and automatic reactions), I was mainly attending because their BOF was just before mine and I wanted to be in place. It was an interesting experience, because they made the reasonable assumption (for a Drools BOF) that the audience already knew the basics of rules engines and the Drools API. Mark started by asking if anybody needed an explanation of the notorious Rete algorithm. As an interloper, I didn't want to hold up proceedings by asking for one, but maybe I should have, because I spent most of the rest of the BOF in a bewildering state of half-comprehension. It may be that the other ten people present all understood everything perfectly, and it may also be that like me they were totally lost but didn't dare say so. Quite an interesting experience in any case, and afterwards I read up a bit on Rete and revisited the BOF slides.

In summary, this was an excellent conference, and I would strongly recommend it to anyone, especially my American colleagues when they are looking for an excuse to travel to Europe.

Talk Back!

Have an opinion? Readers have already posted 1 comment about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Eamonn McManus adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Eamonn McManus is the technical lead of the JMX team at Sun Microsystems. As such he heads the technical work on JSR 3 (JMX API) and JSR 160 (JMX Remote API). In a previous life, he worked at the Open Software Foundation's Research Institute on the Mach microkernel and countless other things, including a TCP/IP stack written in Java. In an even previouser life, he worked on modem firmware in Z80 assembler. He is Irish, but lives and works in France and in French. His first name is pronounced Aymun (more or less) and is correctly written with an acute accent on the first letter, which however he long ago despaired of getting intact through computer systems.

This weblog entry is Copyright © 2004 Eamonn McManus. All rights reserved.

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us