Java Performance Services
Training, Seminars, Benchmarking, Tuning

Java Performance Tuning Course


Chania Crete, May 17-20, 2010


Sun Extreme Learning EXL-2025

Houston, December 1-4,2009
New York, December 8-11, 2009
Washington DC, January 5-8, 2010



San Francisco, January 11-14

Anti-if

I have joined Anti-IF Campaign

Calendar

««Nov 2009»»
SMTWTFS
1234
5
67
891011121314
15161718192021
22232425262728
2930

Performance Anti-Patterns

My Top Tags

                                       

Mailing List

My RSS Feeds








JavaFX, are we there yet?

posted Thursday, 31 July 2008
Today, Sun has finally decided to make good on their promise of JavaONE 2007 by making a pre-release of JavaFX available today. With this release, JavaFX finally becomes a little less vapor and a little more ware But the question remains, does JavaFX have what it will take to claim back the desktop in the face of stiff competition from the likes of Adobe and Microsoft?
 live up to the promise of taking back the desktop for Java.

JavaFX has it's fair share of critics each casting their own aspersions. Some have said that Sun has bet their lunch money on making JavaFX work; money better spent where they are work best, on the server. While one can discuss the merits of that criticism, the bigger question is; is JavaFX too little too late? Given the really really promise in 2007, even this pre-release feels late.  I for one, suspect that Sun wanted to be able to provide a full release for JavaONE but couldn't because if just wasn't baked enough to make it. Point being, creating JavaFX has required a lot more effort than anyone first suspected, If they did know, they certainly didn't let on just what it would take to revive Java on the Desktop. Just think about it. In order to make this work, Sun had to sit down and tackle some very hard problems even before they could get down to the task of building JavaFX. The biggest of which is getting the JRE download house in order. If Java is to be revived on the Desktop than it needs to become a lot less visible to people like my Mother. People that are perfectly ignorant Flash, Air, HTML and just about any other client technology that they use on a regular basis. While these products work very quietly in the background, Java has been quite obnoxiously in your face.

The first contact I had with JavaFX was a pre-JavaONE 2007 phone call. Sun often uses the Java Champions to tune their messages and on this call they got a heavy does of it from the likes of Alan Williamson and others. For those of you who don't know Alan, he's the author or Blog-city, one of the first sites on the web that really took advantage of rich client interactions over the web. Alan (and others) hit hard with several pain points that Sun was going to have to tackle if JavaFX was to have any chance. The list included, versioning, browser integration, download size, startup time, applets crashing the browser, the age old view that Java is slow and on and on. We set Flash as the gold standard to which JavaFX would have to measure up to in terms of providing a good user experience. To their credit, Sun sucked it up and started whittling away at things. If you listen to the JavaPosse you probably heard the discussions about how the Java/Browser interface need to be completely reworked. Finally we can see the first results of those efforts in the 1.6 update 10 release. That release completely re-worked the JVM/Browser interface to the poin that the JVM now runs out of process. They are also breaking up the Java libraries so that you don't need to eat the "whole elephant" to get something to run.

The JavaFX demo’s at this years JavaONE although fragile, were pretty impressive. The best demo involved dragging an “applet” out of the browser and left it to run while the browser was shutdown. That demonstrated the complete decoupling of the browser and Java runtime environments. No more would could a crashing browser be blamed on Java. In the next demo, the same application that was previously dragged out of the browser was running on an Android simulator. That sealed the deal for me. I knew right then that if Sun could iron out the other wrinkles and really deliver on a good set of tools, JavaFX was going to be a product to be reckoned with. Of course that last sentence contains the hedge word "if" several times.

One also has to consider the firm competitors that aren’t standing still waiting for JavaFX to eat their lunch. Most notable are Silverlight from Microsoft and Adobe Air. Of the two we’ve not heard much from Microsoft while Adobe Air has been putting a lot of distance between it and everything else on the planet. The real question is, with Adobe’s huge up take, is JavaFX doomed from the get go? Better question, assuming a zero sum gain (though we know this won't be true), where does JavaFX growth come from? Certainly a key component will be people having the skills. Since there are only a handful of people that know anything about JavaFX, you have to conclude that Adobe will have a staffing advantage for some time to come.

That said, part of Sun’s strategy is to "eat off" of Adobe’s tool set. That should allow them to tap into robust designer community. But don’t go looking for this tool integration in this release because you won’t find it. In fact, the machine of choice for many designers, the Mac, won’t come with multimedia support thanks to lack of a CODEC (Sun is trying to work with Apple to resolve this and other Java problems). The longer it takes to get the tools in the hands of the graphic designers, the lower Sun will sink into Adobe’s rear view mirror.

Sun had decided to cater to developers in this release. Considering there is a a lot of room in the GUI space where Adobe doesn’t play, this isn't a bad move. Every time someone goes to develop a Swing or SWT application they now will be faced with the choice to use JavaFX. I suspect that once Java developers have kicked the tires on JavaFX, they will be dropping Swing development in troves. The reason is, it is just so much easier to develop good looking Java GUIs using JavaFX than it is with either Swing or SWT. I suck a GUI code yet I've actually created some interesting looking interfaces with JavaFX. And if you consider the ability to run the same code base on a mobile device, something that is currently not so obtainable if you use Swing, you have to believe that JavaFX will have a long term edge.

Is JavaFX there yet? What we have from Sun is a pre-release with some of the bells and a few of the whistles so there is still a ways to go. Tool integration is still a sticking point. There is some integration with NetBeans (Nile plug-in). But that's not a tool that a designer, or most developers for that matter, will be happy with. Like it or not, Eclipse is the dominate IDE and it is poised to stay that way for quite some time. Like or not, Sun or someone will have to build plug-in support for JavaFX for NetBeans competitors if JavaFx is going to be a big hit. But it isn’t all doom and gloom for JavaFX for even with this late start. JavaFX has already made a big difference in how client side Java works and this promises to get better. Stephan Janssen (www.parleys.com) demonstrated in a keynote at both JavaONE and TSSJS-Europe that JavaFX can provide an experience that rivals Adobe Air. And we can't forget that JavaFX has the added advantage that is it Java and as such will have all of the rich Java APIs available to it. With this in mind, I'm pretty optimistic that JavaFX, being free and open, will become the preferred choice for building rich clients if....

tags:          




1. Thom Theriault left...
Thursday, 31 July 2008 1:32 pm :: http://maldenlabs.com

Very well thought-out post. Like you, we've been working with JavaFX - we're disappointed in the Mac support but believe it will get there - probably faster than we think. Coding GUI's is a chore and is in fact easier in JavaFX. I couldn't agree with you more with your statement that one of the best things about JavaFX is the access to all of the "rich Java APIs" - that sealed the deal for us.

Thom Theriault, CTO Malden Labs


2. Jim Weaver left...
Thursday, 31 July 2008 2:39 pm :: http://javafxpert.com

Thanks for this excellent post, Kirk! Hats off to the Sun Engineers and the JavaFX Community for their tireless and productive work on Java SE 6 Update 10 and JavaFX. It great to see that the hope of rich-client Java (from 1995) is finally being realized.


3. Jin Chun left...
Thursday, 31 July 2008 3:38 pm

I've looked casually at the Adobe AIR documentation and it seems like they will hit a wall with native integration that won't be surmounted. Silverlight 2/WPF seems to do this very well, of course. Personally, I think JavaFX will surprise many, and I predict that in a a couple of years, the market segmentation will be vastly different.


4. Josh Marinacci left...
Monday, 4 August 2008 4:58 pm :: http://weblogs.java.net/blog/joshy/

I'm Josh from the JavaFX Team at Sun. Thank you for your blog post. You are quite right that we've done a tremendous amount of work to get to this point, and there's still a whole lot more to do.

I'd like to correct one thing in your blog. Project Nile is not the NetBeans plugin. The NetBeans plugin is simply called the NetBeans plugin for JavaFX. Project Nile is a set of plugins for Adobe tools, currently Photoshop and Illustrator. They let you export annotated graphics from Photoshop and Illustrator into JavaFX projects. You can then open the project in NetBeans and add behavior. Project Nile is available today as part of the Preview SDK. For more info check out this tutorial:

http://java.sun.com/javafx/tutorials/project_nile_integrating_graphics/


5. Me left...
Tuesday, 5 August 2008 7:08 am

aspersions not dispersions


6. Kirk left...
Tuesday, 5 August 2008 8:03 pm

Hi ME.. duhhh, how did that make it past editing.

And thanks for the other correction Josh. I see in my inbox that there is indeed some multi-media announcements that have been made. I shall be interested in checking them out once my vacation has ended.