Warning: Ranting Ahead
This article was written around the launch of JavaFX.com, it may prove untrue in future version of JavaFX, first version mistakes happen.

No Graphic Design Environment Intergration
Being able to code designs in XAML for Silverlight is great. But RIAs (Rich Internet Applications) are all about graphics. Fortunatly, both Flex and Silverlight are backed by companies that produce fully integrated graphic design solutions.

Sun, on the other hand, doesn’t make graphic design tools. This means JavaFX will never attain the integration level of Flex or Silverlight, simply because the graphic tools required to produce JavaFX content belong to its competitors.

Poor Media Support

Silverlight is backed by Microsoft’s array of video encoding and distribution tools. Everything is very well integrated and Silverlight 3.0 will bring support for H.264. Microsoft has long been serving streaming markets with tools that work. Flex has everything Adobe does, including Flash. Just the fact that Flex runs on Flash, which gives it access to Flash’s proven video solutions, makes it better.

JavaFX on the other hand is stuck with a subset of Adobe Flash’s FLV format, called FXM, to display video. JavaFX does support a bit more than that, but the cross platform framework is limited to VP6 and Mp3. Even though JavaFX may be capable of communicating with Mac’s Core Video or Windows’ Direct Show because it runs on Java, we’re still talking about web apps here, a place where dependancy on the OS is not welcome.

Heavy Plugin

The plugin part is even more boggling. Unlike Flash and Silverlight, JavaFX relies on the whole Java plugin to run. Installing Java is far from being a light experience. Even more problematic is Java on the Mac platform. Java on Mac is distributed through Apple’s own Software Updates on Mac OS X. And if that latest update did not include something very new from Sun, you’ll be surprised that you won’t have access to some JavaFX content, even though you have the latest version (as is the case right now as I type this).

Edit: Developers can download the latest Java SE for developer stuff at apple.com/java/download/

Edit 2: I did some tests on JavaFX formats for interpreting vector graphics. the FXZ came in very close to the SWF rendered from Flash while an SVG came in at around 5 times the size. However, when it came to performance, the same heavy vector graphic on the SWF would perform twice as fast as the SVG in most browsers while the FXZ would nearly crash Netbeans, but is at least very performant on the desktop viewer in the JavaFX Production Suite. It would be a good thing to note though that the FXZ viewer seemed to cache a bitmap version in RAM everytime I would resize the vector art, something that was done dynamically on the SWF with acceptable performance albeit the complex vector. As Netbeans was resizing dynamically with a true vector display and nearly crashed, we could safely say that FXZ is far from fast. SVG is much faster to interpret and SWF simply puts both on the floor. I have yet to try XAML.

It’s Slow

What do you want me to tell you? This RIA platform is simply broken. The poor demos aren’t even real full page RIAs, they seem more like turtle-speed Flash-like embedded apps than an actual worthful demo.

On my older Pentium 4 hardware, the JavaFX samples from JavaFX.com loaded, slowly, but they did load and run, although far from as smooth as Flex or Silverlight demos. Although JavaFX apps took longer to start than Silverlight or Flex apps on my 2.66ghz Pentium 4 PC, this behavior is identical on any processor (Java libraries are to blame). Performance-wize, the apps tested in my previous entry weren’t on the same level and when it comes down to it, they are all more or less the same just acceptable speed on older hardware.

On my Mac, every single demo app nearly made the browser crash (by which I mean Firefox would stop responding for a while, under a minute). In fact, only Firefox survived. Both the latest versions of Safari and Opera would crash badly. And all of that on a Intel Core 2 Extreme 2.8Ghz.

Edit : I’ve tested JavaFX on a few other PCs and it turns out it runs perfectly well (better than earlier releases of Silverlight in fact). Sure, JavaFX still takes a lot of time loading the applications because of the way Java apps run, so it cannot replace embeded Flash, but if Sun succeeds at making it performant on all platforms (say, fixing a few quirks), it does have a place amongst RIA frameworks.

Conclusion

If you’re looking at making RIAs, I’d place my bets on Microsoft’s offers because of Silverlight’s intergration with ASP.net and the Visual Studio IDE, IMO one of the best IDEs that exists and Adobe’s offers because of its platform’s capacity (superior video, Air, Flash animations, Flash’s popularity, vector graphics speed, etc.), but certainly not on JavaFX, at least, not for now.

JavaFX still needs a bit of polishing and a lot of luck to gather market interest. I’d have to say that unless something inovative is brought by JavaFX, it’s not really going to catch on. Let’s face it, most developers that would do something like an RIA are on Adobe stuff already and if it wasn’t for Microsoft’s sites using Silverlight, it wouldn’t have gathered much attention.

However, JavaFX runs on Java, and there’s a lot of Java developers. This is sure to help.


Share this!
  • Facebook
  • FriendFeed
  • Twitter
  • Digg
  • LinkedIn
  • del.icio.us