Underwhelmed by JavaFX 1.0

Java FX
By any measure, I should be a perfect candidate developer for JavaFX in its 1.0 release. All the more painful, then to recognize its deficiencies so early on.

While I work with a wide number of languages and frameworks, my career has focused on Java for most of the past ten years.

I mention this because there are some who might say that 24 hours is not enough time to make educated judgments on JavaFX. Perhaps, but it has been my experience that a day is enough time to develop a sense of curiosity or excitement about a new technology or framework, even if you don't completely "get it" yet. This happened for me the first time I played with Spring, with Squeak, Groovy, Rails, GWT, iPhone development, Flex, jQuery, etc. The list goes on and on. Without a sense of curiosity or excitement, one finds it hard to invest much time working with those technologies. And when something fails to stimulate a certain level of curiosity or excitement off the bat, it leads me to conclude one of two things:

  • I must not be the target audience.
  • There is little or no value in its current form.

Only in this case, I feel pretty certain that I am the target audience for JavaFX. I must be, right? But sadly, I'm left to conclude that there's not much to see here. Here's a list of things which I didn't much care for:

  • Performance is lackluster. Start up times are slow across the board. If the point here is to be seamless and not feel like I am kicking off some heavyweight process every time I start running an app, there' s much work to be done here. Case in point, one should not experience long pauses opening up the sample applications off of the JavaFX site.
  • Sample apps are underwhelming. Nothing jumps out at me which I haven't already seen elsewhere. I don't need another media player. I'd like to see a better way of organizing data on a page. I'd like to see interactive navigation, seamless animations. Show me things that actually build on the strengths of Java rather than follow in the footsteps of other RIA frameworks.
  • Browser hang-ups. Along with general performance issues, there were several times when I gave up waiting on an application to load in the browser, and just hit the back button only to be forced to wait yet again. The wait (20-30 seconds in some cases) is inexcusable, and no one will stand for it very long.
  • Java SE 6 Update 10 requirement. The machine I tested on is not running it, but everything seems to tell me to install it. A few of the sample applications require JSE6/10 in order to work, while others do not. This does not send a very clear message to the user, and Sun can learn a few things from Adobe in this regard. After half an hour looking at the preview page for Flash 10, even non-developers could wrap their heads around what "Flash 10" would do for you based on a page full of sample apps. To a non-developer, what the hell would "Java SE 6 Update 10" mean in the first place? And this is not just a marketing problem-- I'd want to know why apps don't degrade gracefully without it, or why the user needs to be aware of this.
  • Lack of a visual editor. Sometimes a visual editor makes sense (c.f. Adobe's Flex Builder which, while not necessary can still be useful). While editing in a UI can have its own issues, it can still be helpful when playing around with layout. Consider this a bullet point in driving interest across teams of developers. For what JavaFX is trying to be, it needs a visual designer component alongside the existing NetBeans integration.

You'll notice that I left "JavaFX Script" off of the list. While others have experienced frustrations along the way with the language, I'd be willing to give it the benefit of the doubt ('right tool for the job' and all that).

For those who want to write straight Java code to play around with RIA's, GWT, while not technically Java (in so far as it is compiled down to JavaScript), is still worthy of attention. In fact, if you are a Java developer, GWT will no doubt give you a better leg up in writing RIA's than JavaFX in the long run. After all, most requirements require some level of interactivity or media-richness in the client, and here, GWT provides a lot of immediate value (with Flash a more robust, mature alternative). Rare is the user requirement that specifies that the code needs to run in an actual, client-side JVM in order to provide value.

So what value does JavaFX actually provide outside of the potential to keep some market share for Sun? Without giving the developer something to hope for or look forward to or be inspired by, even experienced Java developers are apt to go looking elsewhere.

Related posts:

  1. JavaFX – Another Ajax Killer
  2. GWT 2.0: Cool Beans on In Browser Development Mode
  3. Flash Technology vs. Flash Developer
  4. Why Google Gears would have been a godsend 10 years ago, and still is today
  5. Learning PureMVC the Hard Way (is there any other way?)

Topics: ,

Comments: 5 so far

  1. Exactly my feelings about JavaFX. It feels like 1995. Applets still dont load or take forever to do so, crash your browser and feel inferior to Flash.

    I dont understand why so much money is invested in this.

    Comment by Sakuraba, Monday, December 8, 2008 @ 3:34 am

  2. I find rotating cube that plays video quite impressive. And it loaded in just couple of seconds. In fact all examples loaded really quickly.

    I don’t think that javafx is all that problematic (although I don’t care much about it and don’t think Sun needed this endeavour). I’d say too many people are too blind when it comes to java and applets. No matter what performance is, it will always be perceived as slow. And think before comapring serious platform with pathetic flash toy apps.

    Comment by dario, Monday, December 8, 2008 @ 6:02 pm

  3. @dario – I think the issue of ‘performance’ with regard to Java requires some classification. There’s performance of the JVM as measured by execution time (which since the 1.0 days, has been relegated to ‘myth’ status), and end-user responsiveness– a subjective measure not directly related to the JVM. Java on the desktop has suffered largely due to this second factor, wrong or right.

    Comment by Ivan Moscoso, Tuesday, December 9, 2008 @ 12:57 am

  4. Your performance issues and incompatibility problems were linked. You really should upgrade to 1.6.10 as it includes a completely re-written browser plugin which improves performance on startup significantly and includes features such as drag out of the browser.

    At this stage its windows only, but linux and solaris are being worked on as are Apple apparently on the OSX version.

    Comment by Steven H., Monday, December 15, 2008 @ 11:34 pm

  5. For Mac OS X, it’s working like a charm with the latest update from Apple (which is not that new).

    About performance problems, I really didn’t experience that, an update should solve the performance and the browser hangs up. For the three other points I agree with you.

    As what we see in WPF (the MS way), Expression Design is replaced by Adobe Ai/Ps , the only problem is the lack of a soft that would replace Expression Blend… Implementing all the effects on a JavaFX application takes more time than in other technologies.

    I hope that we’ll see some 3rd-party tools that will close the gaps.

    Comment by knuthy, Friday, December 19, 2008 @ 9:18 am

Leave a comment

Powered by WP Hashcash

Launch: Pathfinder Newsletter

    Get a monthly update on best practices for delivering successful software.

    Subscribe via email


    Subscribe via RSS      RSS icon

Topics

Search

WordPress

Comments about this site: info@pathf.com