Monday, July 19, 2010

The Continuing Struggles of JavaFX

In the post O JavaFX, What Art Thou? I publicly posted questions about JavaFX that largely pertain to its future.  As I stated in that post, I had felt somewhat deceived by Sun's overhasty JavaFX marketing at 2007 JavaOne and 2008 JavaOne and wasted more time than I like to waste looking into what JavaFX was (or in most cases, was supposed to become).  I have hesitated to really invest time and effort into it a third time until I feel better about its future.  Since posting O JavaFX,What Art Thou? there's been little to make me feel more optimistic about JavaFX's future.  This week, there was a major piece of bad press for JavaFX.

In his blog post JavaFX is a Train Wreck, Kirill Grouchnikov expresses frustration at JavaFX not delivering on early promises to make it easy for developers and designers to work together to build compelling user interfaces with JavaFX.  His feeling is that there are next to no good examples of real JavaFX applications that take advantage of designer skills and asserts that JavaFX seems to be of some interest to developers but is not very interesting to designers.  Kirill is not the first to express dissatisfaction with JavaFX.  However, his critique is especially significant because of his obvious experience developing user interfaces and because he seems to have really wanted JavaFX to be something special.  This blog post apparently hit a nerve as it quickly soared into the DZone Top Links after I initially saw it featured on's "Java Today" section (for July 15) and other bloggers have referenced it.

JavaWorld blogger Josh Fruhlinger observed that Kirill's post and the user feedback to his post provide a summary of the trouble with JavaFX, in one tidy blog comment thread.  Fruhlinger points out that the feedback comments provide a nice overview of various problems Java developers (and any designers who have tried it) have run into when using JavaFX (such as bitterness about Sun reallocating people from working on Swing to working on JavaFX [mentioned in a different Kirill Grouchnikov post]).

In How Can Oracle Make JavaFX More Popular, James Sugrue also references the JavaFX is a Train Wreck post and asks what Oracle can do to improve JavaFX's popularity.  This post is a question intended for developers to answer and the feedback is insightful.  Many want to simply "kill" JavaFX and have Oracle reallocate resources to Swing or other technologies.  Others want to see it open sourced.  Based on the feedback to both the original Train Wreck post and to this Sugrue post, it seems that Java developers in general do not have a positive perception of JavaFX or its future.  That's daunting news because it means a reputation is being established that may be difficult to tear down.

Shai Almog has posted a poll based off the just-mentioned DZone poll specifically targeted at mobile developers.  Similarly called How Can Oracle Make JavaFX More Popular, Shai asks how JavaFX can be more popular among mobile developers and I think Ryan de Laplante's answer in the feedback probably sums up the answer best: "JavaFX Mobile needs to be available. Where is it? Not on Android. Not on iPhone. Not on BlackBerry. Not on Palm Pre."  I admit that I'd probably be more likely to get into JavaFX if it worked on my Droid.  This is what I was poking at when I asked Does JavaFX Have a Niche?

Being called a "Train Wreck" wasn't JavaFX's only exposure this week.  The two top DZone links as I write this are related to a petition to Oracle requesting that JavaFX be open sourced: Stephen Chin's Petition to Open Source JavaFX (both comments so far favor Pivot over JavaFX) and the original Petition to Open Source JavaFX.  Open source success depends heavily on community involvement and/or a strong sponsoring organization, so I'm not certain that open sourcing JavaFX would improve its future.  As I stated in the post O JavaFX, What Art Thou?, JavaFX cannot make the argument that it's standard or any more "Java" than other open source frameworks such as Pivot.  Being open source does not magically save projects.  Oracle could open source JavaFX as it has done with TopLink Essentials/EclipseLink and ADF Faces (Apache MyFaces Trinidad) and several other projects, but my current speculation (and that's all it is) is that JavaFX is more likely to be taken the same direction as Oracle's Application Developer Framework (ADF).

It wasn't all negative this week for JavaFX.  Early in the week, the Sun Developer Network (AKA featured the article Stylin' with JavaFX.  There is a small number of ardent JavaFX proponents in the blogosphere and the author of this article, Jim Weaver, may be at the top of that list.  The article's introduction talks about JavaFX's CSS support that is meant to "encourage this collaboration" between "designers and developers."  The irony, of course, is that it is the lack of greater support for collaboration between designers and developers that led to the "Train Wreck" post.

Despite the enthusiastic and valiant efforts of a seemingly small number of developers who like to use JavaFX, the momentum seems to be moving away from JavaFX.  Perhaps it never had momentum because it took so long to deliver anything of real value from its initial announcement at 2007 JavaOne.  For now, I cannot justify spending any more time or effort learning JavaFX.  Perhaps things will turn around for JavaFX and it will be worth a third look, but I wouldn't bet much on that at this time.  JavaOne 2010 may be the next serious look I give to JavaFX, if it's fate is not sealed by then.


Sergey Surikov said...

Do you want to see nice JavaFX applications that works with databases and web-services? Look to this

Kirill Grushnikov is right, JavaFX is a train wreck now. It has beautifull concept but it has terrible implementation.

Why? JavaFX engeneers are not RIA professionals. They don’t understand what Swing is but they trying create Swing replacement. It is nonsence.

Oracle can fix that problem. Oracle should dismiss JavaFX managers and hire real RIA professionals. It is easy.

I talked with some JavaFX team members. They doesn’t like bitter truth.

I worked with JavaFX since it was called F3. I worked with JavaFX 1.0, 1.1, 1.2 and 1.3. All i can say - 1.3 is unusable in real project. I forced to reimplement WHOLE set of GUI controls for my commercial JavaFX projects.

Scam Plotter said...

One thing would lead JavaFX on a path to recovery.

Make an official, supported JavaFX Panel that can be used in Swing applications.

The current design focuses development through the UI instead of treating the UI as a separate layer of development. There is no way to easily integrate a JavaFX UI with *existing* Java desktop application code.

Lucas Jordan said...

It would be really nice to see some positive news for JavaFX and JavaONE. It seems like both JavaFX and the Java Store are two promises that need to be kept soon.

Personally I find JavaFX a very productive language, but I can rarely justify using it.

It really is frustrating that there is not a really good scene graph API that works on all platforms. If it was a technical issue stopping this I would feel a lot better, since it seems to me the only thing that prevents this from happening is corporate maneuvering.

I'm keeping my fingers crosses for JavaONE!


Dustin said...

Sergey, Scam Plotter, and Lucas,

Thanks for adding to the discussion. I think you express some of the most significant gripes Java developers have with JavaFX.

Like Lucas, I'm hoping that we'll get some clarity about the future of JavaFX at JavaOne 2010.

Dustin said...

JavaOne 2011 had significant news for JavaFX. Oracle announced its intentions to open source JavaFX and to seek JCP approval to make JavaFX a standard part of Java SE. JavaFX has come a long way since 2007 JavaOne Conference.