Thursday, June 28, 2007

Back from JaZOOn, Third Day

There are several ways to rate a conference. Here is mine: How many time do you spend bored in the lobby/outside the conference and/or how often do you wish you were bored outside of the talk you're currently sitting in?

Looking at it from this angle, Jazoon is doing great. Go, guys, go!

The keynotes today was Eclipse Way to Jazz by Erich Gamma. It took me some time to figure out what Jazz actually is. There was no abstract and Erich rushed us through the talk. Apparently, it's a tool to design a software process in the Eclipse way: Help you to get your things done without getting in the way (at least as long as you can keep the pointy haired boss (PHB) away from it). This looks pretty promising, even for a process-hater like me (seen too many processes imposed by PHB's who think anything can be solved by micro-management) since it allows you to keep track of all the info (for example all bugs, the state of the current build(s), messages from team colleagues, your todo-list) in the IDE so you don't have to go back and forth between tools to keep track of all this non-coding work.

It's planned to be a commercial tool which is understandable but still a pity. OTOH, how many OSS projects need to keep a schedule? Some part might be available for free but not Open Source. We'll see. I was impressed with the UI which looks pretty slick for a Java app, even when using SWT and forms.

Next in my schedule was of course "Why can Groovy succeed?" held by Mike Müller. Many nice arguments but I was missing the main point: Groovy (or any other language or Java library or whatever) will succeed as soon as one of the main players (IBM, Sun, etc.) adopts it. Large customers (= those who pay bills which get converted into developer paychecks in turn) will not adopt anything that isn't backed by big companies. I've heard that "Oracle backs Groovy and Grails" which is promising but, despite Larry being one of the richest men in the world, well, Oracle is not IBM. I don't want to be the bad guy here but ... well ... let me put it this way: If you plan to buy a new telephone, are you going to ask your plumber which brand you should get?

Sun's support is half-hearted at best ("We don't care which language it is as long as it runs on the Java VM"). Let's see if IBM can afford to spare some attention. If you want to learn more about Oracle's stance, here is a press release. Good luck to them.

Next, JavaFX. I'm someone with broad interests and I know a bit about design, too, and layout. For example, I know what a "river" is (when whitespace in adjacent lines creates verticals gaps in texts that irritate the eye) and I'm using TeX to layout my texts (which not only formats it nicely but also gives me feedback how "bad" a paragraph looks). When I first heard about JavaFX, it was just another UI description language. Oh bother. Instead of creating a good UI builder like Adobe's Flex 2, they created another programming language. And no, Matisse doesn't cut it. Matisse does Swing and a swing is something kids have in the backyard. It's a toy. In 2007, Swing UI elements still can't be connected to bean properties without the help of some extra library. In 3.3, Eclipse at least comes with the binding framework.

Back to JavaFX. Designers will never ever touch a text editor even if their lives depend on it! They use Photoshop or Illustrator or Flex. Tools that can do all kinds of amazing things with just using your mouse or *gasp* a pen tablet. Any software developers here? Who has a pen tablet attached to his computer? Ever used one? Forget about text editors. That's just like asking your boss: "Why don't you come to work with a VW Golf instead of your Lamborghini? I would feel much better!"

"Who cares what you feel? Get to work! The rates for my fourth Porsche aren't payed, yet!"

Ahem. Where was I? Oh yes, JavaFX. At the Jazoon, they showed quite a few very nice demos what you can actually achieve. There was the usual boring stuff (showing that you can type in some code and the result of that code is shown in near-realtime) but they also converted the Tesla Motors website into a JavaFX app which looked and behaved so similar that you could only tell the difference by looking at the header of the window (one had the browser toolbar in it). Nice and smooth transitions. JavaFX connects Swing, Java 2D and it supports data binding, something that should have been in Swing 1.0 (when it was still called JFC).

Unfortunately, they didn't show how the code (i.e. how many horrible hacks they had to use to make it work) but apparently, you can download the demo and see for yourself. So it looked pretty slick and nice and appealing. I'm just not really convinced that the designers will swallow the JavaFX pill. Sun is concerned that there is no compiler for JavaFX, yet, but designers don't care about compilers. They care if they can do anything from their pen tablets. A designer will only touch her keyboard when she has to add the few lines of text to her work.

On the positive side, Anatoli and Greg gave a great show. Thanks, guys! For all the companies out there who think about sending someone to present them at a conference: Send two guys who get a long with each other very well. That way, one of them can do the presentation and the other can use her/his head to keep things interesting. Also, that way, more of your staff gets free conference passes. Win-win.

A short break during which I rode the elevator with Bruce Willis. Well, not actually Bruce Willis but his character John McLane. And not the character as such but an image of him. Many in fact. Thousands. 24 * 60 * 60 ... bc to the rescue ... 86'400 ... but he's not on all of them ... say 50% ... that makes roughly 43'200 images of John McLane, give or take 5'000. If you still don't know what I'm talking about: I was riding in the elevator when the cinema staff brought the second reel of the movie Live Free or Die Hard (called "Die Hard 4.0" in Europe) was brought in. I had a camera with me but I was too upset to think of taking a picture. You'll have to believe me. I really was in that elevator ...

The last show in the morning was Revisiting the Anything Pattern. An "Anything" is a data structure which has properties of a list (it keeps the order in which elements are inserted) and a hash (you can attach names to items of the list and access them by name). Nice and powerful, especially for configuration-like data. The guys around Stefan Tramm extended the original code so you can now read JDBC ResultSet's into an Anything and write them back into the same or another database. Nice stuff. There is a google project at You can find the source at Don't be confused that there are two directories there: "initial-release" is the original code as Stefan got it and "starting-release" contains the extensions of him and his team (including the DAO code). Use that one.

In the afternoon, we all enjoyed Die Hard 4. Nice movie, lot's of action and good characters. Go watch it.

No comments: