I try out JavaFX pretty much every 3 months or so. Have been doing so for almost a year now and i can finally said that JavaFX is now good. They recently finally released a update that enables it for Mobiles and they have been seriously tuning it for desktop use with the last two updates of Java.
The last time i tried out JavaFX it was still a trainwreck. Â Even if i always have noted that JavaFX may well be a lot more powerful than Flex and Silverlight. In fact i am pretty much sure that it is more powerful.
However they got HUGE disadvantages against Flex and Silverlight and that Sun, now Oracle got vs Adobe and Microsoft. This continues to be the case. JavaFX even that it now has a mobile release, a devices release and the desktop reflects maturity. It will not be enough. Or it is not enough yet.
3 months ago or so, JavaFX had the highest CPU usage rate from all the RIA solutions. Now it seems to be lowest one and looks to get the best CPU performance rate i have seen. I tried this out in a Old PC, a Netbook and a Average Desktop PC with all JavaFX samples and the same amount of samples for Flex and Silverlight so i came very sure with what i was going to say here. So passing from worst to best in that crucial area, Â In thatÂ time frameÂ is nothing short of incredible and my props to the JavaFX team. It is a incredible evolution.
Last time JavaFX was excruciatingly slow to load. Any sample or any decent application was slower to load than any similar in scope Â Flex or Silverlight alternative.
It is still the worst but by very very little. In some cases it maybe about even with Flex and Silverlight
Given that JavaFX is still essentially java at the base, That means that authorization and certificates are still a issue. Â So every single thing done in JavaFX must be properly identified so it can load.
When it comes to â€œLoad To Desktopâ€ webstart apps it is not a big issue since the behavior and install experience is pretty much identical to .NET ClickOnce and Adobe AIR so it is to be expected.
But â€œLoad In Browserâ€ apps are another thing. Since usually you only need to identify them once and every time after they will load fine. This is based on who made it and how you authorized the maker. So if you encounter several apps from the same maker and you authorized the first app you encountered from said maker as a trusted party. All apps from that maker will just load every single time you encounter them in the future. If you didnâ€™t marked it as trusted maker or the apps comes from a maker you have not authorized or encountered. Then each app will prompt you before it can load.
Complicated?, Not really. Annoying?, Not for me. Â But for those users that could not stop whining about UAC in Vista having the nerve to prompt them once a day when it needed to?. Â Oh you bet they are going to love (NOT) how JavaFX works. So this is something that needs to be seriously thought out and resolved.
My proposed solution is for Developers to be able to ask for â€œClearance Keysâ€ at Oracle so that the prompt only comes from not registered JavaFX apps or widgets. Well, it is just an idea that Oracle could steal from how oAuth works.
The greatest virtue and flaw from JavaFX comes from being tied up with the rest of the Java Runtime.
It gives it ubiquity and all the power in the world, but it makes it a big download, gives it a bigÂ installationÂ footprint and makes it a power hungry install when compared with Adobe Solutions that comes in 5 separate plugins and Silverlight that is a single plugin install.
But this is a issue that i donâ€™t find Oracle being able to develop a workaround that satisfies them, given what they would lose if they unbundled JavaFX to be on its own.
The worse for last. RAM consume continues to be off the charts for JavaFX. It even makes the worst Flex, Flash or AIR apps look lean and light in RAM consume if compared to JavaFX. So it is dead last in this one.
Were else you could see a simple tiny widget (in-browser) consuming over 100mb of RAM on its own or a simple desktop app consuming as much as 500mb of RAM?. Â Only with JavaFX.
So i guess that such dramatic gain on CPU efficiency had to be loaded somewhere. In this case to the GPU and to the RAM. Â But even as bad as JavaFX RAM consume is. It is logical they decided to go this way since any laptop and desktop now comes with at least 3gb of RAM and some form of GPU chip or card a lot better than what came as default two years ago when RIA were materializing.
I donâ€™t know how much the Start Load, Authorization and RAM consume issues can be improved but if they manage to improve them even a 50%. That alone would make JavaFX a true contender for 2nd place in the RIA space.Â A 1st place is something i find almost impossible for they to get and that will be battled out on and off by Adobe and Microsoft. Â A 2nd place is possible even if quite hard to see it now. But a very close 3rd place is what Oracle should aim for now, Â given they are still in a very very very distant 3rd place. But maybe in 3 months i will have to change my mind. Â So lets see.