To provide a little counterpoint to Tim’s post on JavaFX Script (Formerly F3), I still am not too excited.
JFX/F3 is pretty cool. It is something the Java world has needed for a long time. However, I am just not sure the whole JavaFX™ branding effort is really warranted here. While F3 is a great start, it doesn’t put Java(FX) anywhere in the neighborhood of Flex. First, while F3 is cool, there is still a great deal of engineering work left to be done. There isn’t a compiler. There isn’t a really application framework for it — though this seems to be a shortcoming of the UI guys in the Java world; how long did we wait for JSR-295..6? Most importantly, though, there is no tooling.
Flash hasn’t kicked Java’s butt for so long because it is sooo technically superior. Indeed, until just recently the Flash runtime itself was horrible, and it still has a long way to go, especially being sold as a real application runtime in Apollo. The reason Macromedia/Adobe have done so well is tooling, and there isn’t even the beginnings of this for Java FX. Until JavaFX has a tool that a graphic designer can use with somewhere approaching the fit and finish of the Adobe product suite, it just doesn’t matter. It won’t go anywhere.
The second big problem with offering up JavaFX as the savior of Java in the RIA space is the quality of the Java runtime. I know a lot of people talk about the DL size, and startup times. These are valid concerns. Until LiveConnect works right in every browser, it just doesn’t matter if there is an awesome declarative markup language on top of it. One of the more impressive tech demos this year is Iris, and while it works and looks cool, those guys did a yeoman’s job working around the problems with making Java talk to anything else in the browser. While it is still a relatively new thing, Flash’s ExternalInterface system introduced with Flash 8 works…. right… the same… in all 4 major browser engines.
I don’t mean to downplay what Oliver has built. I know he has spent about 3 years working on this, and it is a really great DSL for UIs. The problem is, that DSL doesn’t make a “platform” and certainly not an “environment”. The whole JavaFX hypecycle seems like it came a year early. If Sun manages to break the habit of hyping somethign then walking away from it, buckles down with some resources, and delivers a great tooling option for JFX, JavaOne 2008 might be something to get excited about.