JavaFX, part 1 The Rich Internet Application (RIA) fight is hotting up. And, while Adobe Systems and Microsoft are squaring up in the schoolyard with all the kids cheering and screaming them on, it looks as if Sun Microsystems is in danger of getting its lunch money stolen again.
Sun's offering in the RIA space is JavaFX. Supposedly it will be in competition with Adobe's Flex, which sits on top of Flash in the browser or the Adobe Integrated Runtime (AIR), and Microsoft's "don't close the bar yet, I've just got here!" contender Silverlight.
Much has been said and written about AIR and Silverlight, probably because they are being driven by companies squarely focussed on software rather than a hardware vendor prancing about in software drag. Outside of JavaOne 2007 and 2008, Sun hasn't really talked much about JavaFX. Yet Sun's got some big hopes for JavaFX and the language certainly has some plusses. I thought it was about time to look at what Sun's offering.
First, some context. Sun has a track record of taking years to make anything ready for primetime. Jokes about Java's supposed slowness still appear on Slashdot, dating back to the first few versions from well over a decade ago. It arguably took Swing ten years to become a viable toolkit for creating smart, responsive User Interfaces (UIs). Java Server Faces (JSF) may be reaching an acceptable level of maturity now, but there are very few devotees left to notice.
JavaFX is showing a similar "slow-gro" pattern of development. Of course, it's all very new and pre-release right now. It's a mark of its potential, and possibly even the genuine need for a new RIA platform based on Java, that there's some buzz already surrounding it. The end users may be ambivalent (they don't care how your rich UI works, as long as it works well), but it's safe to say that developers want JavaFX. It's highly anticipated.
JavaFX, though, is coming to market with Sun's usual poor focus on supporting resources, while its taken at least one step that'll help set back the cause of adoption. The only book in English on the subject is already obsolete, as Sun in its wisdom made a late change to the syntax. It's a gamble as to whether any documentation, "how-to" blogs or other advice you find on line will use the new syntax.
But what of the language, itself? It's a story of potential and lost opportunity.
JavaFX is a great idea: put a syntactically sweet layer on the Java Virtual Machine (JVM), make the saccharin new language a mix of declarative statements for defining UI layouts, and procedural/imperative control statements, and let the web designers go wild. It has the potential to own the web.