JavaFX, part 2 Sun Microsystems lost the first Rich Internet Application (RIA) war when Macromedia (now part of Adobe) ate its applets for lunch following a schoolyard brawl. Now Sun has a second chance.
But, to succeed in such an unforgiving market, Sun needs something special. A mature, powerful platform, a buzzing community, some seriously talented people with an eye for visual design, and some butt-kicking WYSIWYG tools so that non-programmers are invited to the party as well.
JavaFX ticks some of these boxes, and it has tools on the way. These tools, though, are going to make or break its chances. And they're a little late, to be honest. Spring 2008 was mentioned for the visual development environment. Spring has given way to glorious summer.
Currently there's a limited NetBeans plug-in that provides some text editing and compiler support, but that's as far as it goes. There is no tree-based navigator view of a file, there's no properties view of the current node - you just have to either guess or know what properties are available or valid. And, above all, there is (as yet) no WYSIWYG graphical user interface editing. These are all things you currently get for Swing development.
If Sun's goal is to compete with Adobe's Flash or Silverlight from Microsoft, then a Matisse-based visual editor should have been one of the first toys to be pulled out of the box. It should be right at the center of the rich client development experience rather than a "potential add-on some time", leaving third-party vendors to pick up the slack.
Hard lessons of EJB
My main concern with JavaFX, though, is that there is no clearly targeted audience. Web designers? Java-literate programmers? What problem is Sun attempting to solve here? JavaFX is very programmer-centric, but not even as "friendly" as Swing.
Even those involved in its development don't appear to be sure. In this interview, senior engineer in Sun's Java client group Amy Fowler is asked about the target audience for JavaFX. Her reply suggests that there just isn't a clear answer at the moment. She divides JavaFX into two conceptual areas and talks about each area separately. This harkens back to the artificial separation of roles in the original Enterprise Java Bean (EJB) spec.
Given the success of Adobe's Flex, the mission statement for JavaFX should simply be: make JavaFX 1.0 just like Flex.