Posts Tagged ‘JavaFx’


As a RIA specialist I have been doing client side development professionally over the last six years or so, in a variety of UI toolkits and libraries that spanned Ajax, Adobe Flex, HTML5, Swing, Applet and Silverlight. During this period I have been in touch with different RIA technology, JavaFX being one of them. Before continuing the discussion further first I would like to tell you little bit about JavaFX. The JavaFX is a rich client platform for building cross-device applications and content. Designed to enable easy development and deployment of rich internet applications (RIAs) with immersive media and content, the JavaFX platform ensures that RIAs look and behave equivalently across diverse form factors and devices. This is an innovative technology built on top of Java that allows the creation of next generation RIAs.

javafx_logo_color_1

Client side developers are always seeking for most efficient way of creating expressive RIAs. They need to build high fidelity GUIs that operates seamlessly on multiple web browsers, operating systems and devices, without having to rewrite their applications for varied environment. JavaFX promised to provide this kind of technology for end user developer, with the power of most preferable web and device technology- Java. With the advent of JavaFX it was thought that java would be one stop shop for developers.

It’s been three years since JavaFX was introduced to the world, but alas it didn’t gain a lot of momentum, though being launched at the right nick of time when the web community was moving towards RIA. It introduced a new scripting language called JavaFX Script, a very powerful language. In fact, it’s a DSL (Domain Specific Language) for creating rich user interfaces where the resulting application runs inside the Java virtual machine on the client. To my surprise when I first loaded the demos on their sites it took lot of time to load as compared to Adobe flash based application. I was hoping that being developed on Java as base technology it should have outperformed the flash based application. The benchmark on different site shows that JavaFX is by far the slowest. JavaFX APIs are not stable yet, it is not an industry standard and not many vendors are committed to it. Further, competing technology such as Adobe Flash is very popular and almost dominates the RIA domain. The key mantra of JavaFX is deployment and performance. Unfortunately, this is where JavaFX has failed miserably. The original Java applets and swing application failed miserably in deployment and JavaFX (which was supposed to be the next applet technology or applets 2.0) has inherited the failed deployment with it. In other words, nothing has really changed since 1995. This is what happens most of the time – you click on a link to launch a JavaFX application inside the browser. The browser freezes for about 5 seconds. To my woes, yesterday night while discussing about the JavaFX deployment process with one of my friend, I tried to show him the demo on JavaFX site, and the browser crashed twice. Should I blame him for this, for he was trying to click here and there while the demo was trying to load itself? I think JavaFX failed to gain any significant momentum mainly because of deployment problems which I described here. Deployment was never simple. Running an applet could freeze the browser for a few seconds, present you with a number of scary securities dialogs, and maybe even launch. If you were not that lucky, you would see the Java logo as an animated GIF. What I described above is the main reason JavaFX has failed so far. Deployment is still a disaster. If Oracle needs to know how deployment should work, it’s very easy. Just look at Adobe Flash. Make it as simple and transparent as running a Flash application. That’s it.

Some people say they don’t like JavaFX because they need to learn a new language. Well that’s just a bunch of hot air. First of all, any decent Java developer can pick up JavaFX Script in about 2 days. If you are developer (any kind) today, you have to learn new stuff all the time.

After acquisition of Sun Microsystem by Oracle, the roadmap or vision of JavaFX is changed. As everyone knows by now, Oracle is making significant changes to JavaFX. Oracle is stopping any further development of JavaFX Script. Instead, it will develop Java APIs which will become a part of JavaFX 2.0 to be released in the second half of 2011. So, instead of using JavaFX Script to develop rich Java applications, you will use the new Java API. There is still time to make JavaFX successful, but the time is running out. First, fix the deployment issue need to be addressed. Just start from scratch, don’t try to fix the current deployment system. Second, if Oracle doesn’t want or need JavaFX, then open source it and let the community drive its future. I think Oracle has 6-12 months at the most to try and revive JavaFX. If nothing happens by then (which would be about 4 years since the technology was announced), we just might as well close the door on JavaFX. Now market trends driven towards open ended technology like HTML5, people are not ready to depend on any third party proprietary technology. As the history suggests Java popularised for being cross-device technology. So for me JavaFX still have a market in device development segment. If they fix the performance and deployment issue ASAP.