It’s been about three months since Sun has announced JavaFX “family of products” at JavaOne. Based on the original work by Chris Oliver, it has been picked up by the powers-to-decide, fed into the relentless PR machine and since then touted as the next big thing on the desktop. It certainly has the technical potential with all the engineers working on it (more on that later). And the aspirations are most surely lofty, positioning JavaFX against Flash, Flex, Apollo and SilverLight. My main concern is with the name.
Why does it have to have “Java” in it? The end customer doesn’t care how the application is written. He cares that it’s easy to install. He cares that it starts fast. He cares that it runs fast. He cares that it doesn’t crash on him. He cares that it doesn’t lose his data. He cares that it does what it is supposed to be doing.
Let’s look at the competition. Does anybody outside the development teams of the respective products know what language are Flex, Apollo and SilverLight written? I guess some mix of C with other languages. Do i care when i see a nice Flex / Flash site? Of course not. Do you ever hear Adobe talking about “bringing the full power of language X to the desktop”? What do users know about the full power of this language? Or, to be more precise, what do they care? As long as it’s a one-click user-friendly installer, immediate startup time, and no crashing, they don’t care at all.
Another rule that JavaFX is blatantly violating is the “underpromise and overdeliver”. No designer-friendly content authoring tools, buggy IDE plugins, excruciatingly slow runtime and constantly changing language definition. Of course, these are all coming (or at least promised to come), but promises are just words. While the competition is smart enough to talk about features after they are implemented, Sun’s marketing machine is effectively ruining any chance that JavaFX had to compete by selling promises.
The developers are, of course, eager to download the bits and play with them. Quick frustration and “i hope it would be better” ensue. Does that remind you of anything? Swing still carries the burden of perceived as slow, buggy and odd-looking, even after all the effort that went into it in Tiger and Mustang. NetBeans has long ago lost the “war” to Eclipse and the attempts of catching up in the latest 6.0 version are not going to change that. If Sun wanted JavaFX to follow the same perception patterns, it most surely succeeded.
What can be done? First of all, a major shakeup in the PR / marketing department. Talk about things that are done, not about the things that you’re going to do. The later might work when you’re working on a product that doesn’t have any competition (brand new market place), but doing this in a saturated market with very experienced players will quickly backfire and you will carry the burden of bad reputation for a very long time. Second, don’t focus on the technology behind the product. Rebrand it and lose the word “Java”. And while you’re at it, lose the “FX” as well. Third, stabilize the language, squeeze every bit of performance out of it and create a comprehensive suite of tools. All this before you make any public announcement (look at Apple if you need to). When creating the tools, have graphic designers on your team. Learn from Microsoft that had a professional designer as a part of Blend team. If you want to compete against Adobe and Microsoft, do not let the developers design content authoring tools.
And by the way, while we’re at it, don’t rename your stock ticker as well.