Thoughts on the JavaFX Launch Event
I just got back from the JavaFX launch event in San Francisco. It was just a few blocks from my office, so I figured, why not? Jonathan Schwartz was presenting, as well as the VP in charge of Java (I forget his name), and the had a pretty impressive set of demos.
There were also demos being presented by Sun folks and a few partners. I spoke for a while with Jeff Martin, from a small shop called ReportMill:
They've built a very impressive gui builder for FX:
It struck me as something like a cross between Matisse and InDesign, with some whiz-bang animation and video thrown into the mix. It had fully functional data binding, as well. I didn't ask him if it was a 2-way editor, though I kind of doubt it, for the same reasons Matisse is not.
It seems everyone demoing was fond of doing things like rotating widgets at odd angles to each other, putting in gratuitous animation, etc. Of course, they all said it was just to show what the platform could do, and is not considered best practice :)
It got me thinking about this separation between designer and developer workflow. The intention is to allow good graphic artists to create impressive looking and unique interfaces, without being hampered by the constraints of, well, whatever you need to do to create a Java L&F, for example.
It may do that for some successful deployments. I think that in the rank and file development houses that cannot afford (or are not interested in) designers, we'll see two other outcomes. In some cases, we'll see horrors like you can only find when developers try to do design. It will be the blink tag all over again. In other cases, we'll see standardization on a few L&F sets, just like we do now. Only this time, those sets will be easier for good designers to create. Furthermore, I think that this will finally settle the platform fidelity issue for Swing. It will be much easier to mimic XP, Vista, OSX, Gnome, and KDE.
Anyway, I don't really have a point to this entry. Just some random thoughts. I'm excited about the technical improvements to the base JDK that make this all possible. I'm excited about the unified deployment model. I think that separating designer and developer workflow is a good thing (and I spent a great deal of time thinking about those issues when I worked on Nuance V-Builder). I haven't delved too far into the technical details of how this is accomplished, so I haven't made up my mind completely about FX Script.
They seem to be heading in a good direction, and upping the ante in a few areas against Flash and Silverlight. I think if they can manage to get the browser penetration that Flash has, they've got a pretty good shot. Certainly the legions of Java EE developers will find it a more familiar platform than Flex.
One thing that's absolutely clear to me from the launch party, though, is that Java FX is not complete. This 1.0 release feels more like a .9 release. The engineers were still holding their breaths during the demos. The tool offerings are incomplete, and they're leveraging their major competitor's tool stack. They don't even support Solaris yet! I think this "release date" is pretty arbitrary.
But, I'm more confident than I was yesterday that it will be really nice when it's done.