JaxaFX 1.0 Released – Not a Great First User Experience

Sat, Dec 6, 2008 (Programming)

Please keep in mind I’m wearing my “Joe average user” hat that this platform is suppose to target as a delivery platform (and simplify developer’s lives in the process).

I’ll admit that I’ve always had trouble with the Java plugin and Firefox on my old Windows XP SP2 desktop, Windows XP SP3 laptop and my Windows Vista SP1 desktop; for some reason, usually after a Firefox update the plugin will crap out and stop loading whenever I go to a page with an Applet.

Working with JDK 1.6.0_10 was no different.

Here’s a bit of info about my system:

  • Windows Vista – SP1
  • JDK 1.6.0_10 w/ Browser Plugin set as Default for all Browsers
  • Internet Explorer 7 (latest)
  • Firefox 3 (latest)
  • Chrome (latest)

My Experience

When I visited the new JavaFX homepage with both Firefox and IE, I got the two following results:

… more specifically, in Firefox the video player (com.sun.mediaplayer.MediaPlayerApplet from mediaplayer.jar) did not load. On IE it loaded, but I sat and watched the spinning loading animation for about 20 secs:

and then another 8 secs of the actual media player loading (what I guess was the stream buffering) before the video started playing:

Seriously?

How many people would use YouTube, Vimeo, Break, etc. if every single time you visited a page you were faced with that type of loading experience?

Just to make sure, I hit Refresh on the page to see if it would come up instantly… and still no luck. The first Plugin splash screen spun for 9 secs that second time and then the buffering screen for another 4 before playing.

[smartads]

I have no idea how Flash avoids these long load times OR why it keeps working in my browsers… all my browsers… after an update and the Java plugin cannot. But I shouldn’t have to know this stuff — I should be given a fluid development and deployment platform to target my applications for and Sun hasn’t been able to do that for me with Java on the Desktop, Java WebStart or Java Applets — why is JavaFX any different?

NOTE: There is probably a Flash ad displaying on the left right here… you didn’t notice the page load delay because of it did you? You probably would have if that were JavaFX.

This was the entire reason Applets failed — slow load times. When you got to a page with an Applet on it back in the day, your computer locked up and ground to a halt. We complained about it for 12 years until we got the Java-at-boot-time service with JDK 1.6.0_10 and the rewritten browser plugin. What I’m seeing is a much reduced pause time compared to previous Java/Applet experience, but still not as fast as Flash.

It’s almost like Sun is content competing with itself (e.g. “We are 810% faster than previous Applet loads!”), which is awesome assuming anyone cared about the previous benchmark, and no one does; they’ve all moved onto Flash or JavaScript.

So instead of benchmarking and designing against the current preffered solutions, we are still getting sub-par deliverables when it comes to performance.

But, But, But…

I know, I’m going to get hate-comments for this. I’m sure Java 7.0 has additional enhancements planned, and the tooling support from NetBeans may be quite nice in the upcoming future — I’ll hold off absolute judgement until then. All I’m saying, is that with JavaFX 1.0, the user-experience from my end is not much different than Applets before it… I’m still not enticed to deploy a product on this platform. Is this the best Sun can give me as far as a product-platform goes?

Also, how come the Sample Gallery is all written using AJAX and the individual sample pages (e.g. BrickBreaker) all require the samples fire off using WebStart? Did anyone else expect this to be done with JavaFX Applets besides me?

NOTE: These are some of the nicest example app/source code samplings I’ve seen for an API, I’m not knocking that quality.

Closing Thoughts…

It’s about two things:

  • Convenience (for the user primarily and the developer secondarily)
  • Performance

It’s always been about those two things. Unfortunately JavaScript and Flash dominated the first point and caught up with the second point (with JavaScript getting huge boosts with JavaScript VM work going on) while Java missed the first point for 10 years, and got about 80% of the way in the second point only this year — while the 1st point still isn’t totally solved with the JDK 1.6.0_10 release — there are still plugin/browser problems and you cannot begin to compare the “convenience” and widespread deployment of JavaScript engines or Flash to Java.

These are the reasons I’m not excited.

If JavaFX had shown me either of the following:

  • Drop-dead-easy plugin installation in all browsers
  • Flash-like performance with seemingly instant-app-loading

I would have been excited…  I haven’t seen either of those things yet. It really seems like JavaFX is a reboot of a failed paradigm/technology: The Applet. That didn’t work in the past, is it really going to work now?

Success Obviously Still on the Table

There is obviously still a possibility that JavaFX comes through (otherwise Sun wouldn’t be pouring so much into it), these are the hot-ticket items I see dragging it from the realm of “Applet 2.0″ into the realm of “Alternative to Flash”:

  • Resilient Plugin – Stays hooked into your browser as well as Flash
  • Performance Boost – Besides an ignorable pause, loads up with the page the first time, and no perceivable wait on subsequent JavaFX-enabled-page views (just copy Flash here… go look at YouTube)
  • Visual Designers – Not sure what NetBeans plan is here, but this will be a must.
  • Simplified Deployment Creation – Again, on NetBeans’s plate and not sure what is planned here.

Those items are in order of importance. You could have the best developer tools in the world, but if your end-user experience is still iffy, companies aren’t going to buy in, etc. etc.

Share This on Your Favorite Social Network:
  • Facebook
  • MySpace
  • Twitter
  • Digg
  • StumbleUpon
  • LinkedIn
  • Reddit
  • FriendFeed
  • Tumblr
  • Suggest to Techmeme via Twitter
  • Technorati
  • Mixx
  • Propeller
  • Fark
  • Slashdot
  • del.icio.us
  • Google Bookmarks
  • Yahoo! Buzz
  • Print
, , , , , , , ,

This post was written by:

Riyad Kalla - who has written 41 posts on kallasoft.

"Ultimately I just want to provide a resource that folks find useful."

Contact the author

21 Responses to “JaxaFX 1.0 Released – Not a Great First User Experience”

  1. Ray Gomez Says:

    This is quite possibly the most important evaluation for new tech. New developers get caught up in the latest and greatest frameworks and libraries that allow for an improved coding experience. However, more often than not we forget that enduser experience is the driving force behind acceptance and propagation. I’m surprised to see that v1.0 isn’t as blockbuster as Sun has made it.

    Reply

  2. Riyad Kalla Says:

    Ray, agreed. It’s incredible when you go to developer-focused meetups or conferences how little importance hardcore developers give to customers. The idea that a customer would drive adoption of something (through demand) seems impossible since they are “stupid”… I always hated this thought processed because it isolated the developers from one of their biggest fans (and biggest critics) and made it really hard for some hardcore devs (usually steeped in the religion of their language or framework) to see what was going on.

    I’m not saying I have the answers, but just saying that I think there may be too many hardcore devs working on JavaFX and Sun in this mindset of benchmarking against themselves instead of benchmarking against what’s currently winning in the market place.

    Reply

  3. Eric Suen Says:

    Applet loaded a little fast in java 1.6.10 is not because Sun do good job, it is because of “Java Quick Starter” which will start something when your OS is startup, it is stupid and annoying so I have to turn it off, and the applet is loaded as slower as the old version…

    Reply

  4. florin Says:

    We should all call that Joshua Marinacci move up to some really high position and be relieved by JavaFX responsibilities.

    This guy constantly fails to deliver or understand indeed that appearance and performance matters.

    Many of us want to be proud of the java platform. Many of us hoped for better. People at Sun of the likes of Marinancci consistently put us to shame amid our peers.

    Reply

  5. Philip Andrew Says:

    Its amazing how stupid smart people are.

    Reply

  6. Andy Says:

    Great post – performance does matter to the end user the most… this can’t compete with flash or silverlight

    Reply

  7. Casper Bang Says:

    > We should all call that Joshua Marinacci move up to some really high position and be relieved by JavaFX responsibilities.

    It’s my hunch that he took over the entire JavaFX engineering team and SUN’s marketing department at the same time. Or perhaps that he is cloned, sure seems to be everywhere! ;)

    Reply

  8. Riyad Kalla Says:

    Andy, agreed. I haven’t even looked at Silverlight yet, does that have a Firefox plugin or cross-platform support? (Mac/Linux?)

    Reply

  9. Dimitris Menounos Says:

    Riyad, my feelings exactly. I couldn’t have said it any better.

    Reply

  10. Jean-Francois Poilpret Says:

    Hi Riyad. I’m using FF (3.0.4) and did not have the problems you mentioned (just tested it today). However, the waiting time for the player to load was much longer than what you described on IE: several minutes (at about 70KB/s as far as I could see).

    Then playing the video was very clunky, it looks the player tries to start playing too early in comparison with the amount of data already loaded (on my environment, observed streaming was about 30-40 KB/s), then the audio is fully unaudible, the video is not smooth.

    The only option you have is to pause it and wait until download is complete. Further problem, there seems to have no indication of the current amount of data loaded already!

    Conclusion (I join yours): very disappointing so far (fortunately I did not expect much from JavaFX so not a big problem anyway).

    Reply

  11. Riyad Kalla Says:

    @Dimitris, thank you I appreciate the kind words.

    @Jean-Francois, was it the first spinning wait screen (loading) that took several minutes or the second one (buffering)?

    As far as clunky playback, I agree… I tried to skip forward a few seconds and it locked up for another 25 secs before continuing again… seems like seeking does something upsetting to the player (seeking ahead of it’s buffer)

    Reply

  12. Jean-Francois Poilpret Says:

    Riyad, that was the first spinning wait screen that took several minutes. I did not take any measure for the buffering screen (after 2+ minutes waiting, I switched to another FF tab to avoid wasting my time;-) then later when I switched back I had the video “ready” for starting). I believe that depends a lot on your bandwidth (my ADSL is not really fast, but I cannot hope for much better in my location, as I mentioned before ~70KB/s continuously for the first spinning wait screen).

    Reply

  13. Riyad Kalla Says:

    Jean-Francois,

    Thank you for the clarification. That’s a pretty damning experience — I mean if you go over to YouTube I imagine the basic user experience is much better? Maybe that initial load has a slight delay, but that point forward it’s just popping up no problem?

    The experience to me just feels like Applet 1.0 with JDK 1.5 with a primed plugin (meaning I visit a page, suffer that long delay, and then immediately visit another page) — there doesn’t seem to any improvement over that versus just that first pause, but beyond that it’s still the same.

    NOTE: I don’t know how much of this poor behavior can be blamed on the mediaplayer.jar impl and how much can be blamed on JavaFX, but my gut tells me that given there has never been a good video player done in Java — let alone codecs — this is sort of a perfect-storm of all the things Java has never been known for all in a Single JAR (media player, decoding, video playback, applet loading, new UI library).

    As someone on Dzone said, in 2 years, when this finally gets competitive, that will just be 2 more years that Adobe has to refine Flash and Microsoft has to refine Silverlight… so JavaFX will again be “400% faster than 1.0!” but again, that would be the wrong benchmark to have it seems.

    It’s almost like I’m trying to sell you a car and telling you that it’s 770% more reliable than the Ford Model-T, and you stare at me, with your Honda or Toyota and shrug your shoulders and say “Well that’s still 1/2 as reliable as my “.

    I understand that Sun’s monetization strategy for JavaFX is the same as J2ME — create an appealing deployment platform and get vendors to pay you for it. Given how compelling Android is and the massive sign-on to it from the Open Handset Alliance, I just don’t see how Sun can turn around their game with such an uncompetitive/uncompelling attempt.

    Why would I pay to deploy my apps to this platform when I could target Android for free? Why would I develop my web experience using this technology when I could use more performant alternatives (some for free, some for cost)

    I think I agree with other’s sentiment, that Sun has either intentionally or unintentionally done an excellent job on the server front, and trying to get their foot back in the Desktop door 11 years after we have been screaming for it might be a lost effort — or at best a mostly ignored one.

    Reply

  14. Andy Says:

    msft does have silverlight plugin for firefox… I wish SUN would do a good competitive analysis and improve javafx… hoping this is just the begining

    Reply

  15. Riyad Kalla Says:

    Andy,

    Does Silverlight run on other platforms or just Windows only?

    Reply

  16. Casper Bang Says:

    Silverlight runs on Windows and Mac. Silverlight for Linux is currrently in beta.

    Reply

  17. Ivan Says:

    Well said. Sun needs to re-focus on load times etc. I’ve also said that Sun needs to envision the browser plugin as an entity that could replace Flash on Youtube. We’re definitely still not there, but we have more features!

    Features were never the problem like you noted. We need the user experience.

    Reply

  18. Riyad Kalla Says:

    Casper,

    Is Silverlight on Linux an official Microsoft effort or a community effort a la the Mono guys?

    Reply

  19. Casper Bang Says:

    It’s the Mono team that does the Linux (and possible BSD etc. ports) but Microsoft is contributing test suites and media codecs. People on Linux and using Firefox can simply install it using Forefox’s normal one-click plugin infrastructure: http://www.go-mono.com/moonlight/

    Reply

  20. Boy Blunder Says:

    I can’t tell you how disappointed I am with the performance of those samples. Having dug a little bit deeper, from what I can see a massive chunk of the wait seems to be just bad deployment practises (to put it mildly).

    Clear your browser *and* Java cache and then just watch the sorry story unfold using Charles HTTP proxy (or whatever you use). Here in the UK on a 2mb broadband connection it took 42s to launch the app. Java was warm – I just cleared my caches. To view the Simple Video example, 2.24mb of jar files were downloaded and Charles reckons this accounted for 30 seconds of elapsed time.

    The really sad bit is that Pack200, despite the fact that you no longer need to have a special component to serve it, was NOT used. Hell, it took 1.2 seconds just to download the 32k deployJava.js file. Overall, the sample appeared to take something like 30 file downloads (container page assets not included in this figure!).

    After seeing this mess, the only considered professional opinion I can form is: WTF?! No wonder it’s perceived to be slow.

    Sort it out guys – it’s downright shoddy, embarrassing and threatens to undermine all the hard work from JavaFX and SE u10 teams have done. There are vast performance improvements sitting right there on the u10 waiting to be leveraged – just freakin’ use them.

    And one more thing – why on earth did they make the animated loading image for the samples look like a worse version of actual applet version?!!! One of the biggest criticisms of the applet logo is that that simply we do not want the user to be sitting there knowing that they’re waiting for Java. It just beggars belief.

    Reply

  21. Riyad Kalla Says:

    Boy,

    Excellent feedback. I’m on a 7mbit connection and even I found the waiting a pain in the ass, for anyone on a 1-4mbit connection (like yourself) it’s apparent that what is there now is just not gonna work.

    It’s almost like Sun is stuck in the JDK mindset from 10 years ago, where the base platform provides all core functionality, and you let your app suck down whatever extra JARs it needs — in theory it works great and leads to a clean design — in practice it leads to a really shitty user experience and was one of the exact reasons Applets never panned out well and I think effects Java Web Start being a total deployment failure (how many of the Java apps you use are Web Started? exactly…)

    The JavaFX SDK *should ship* basic components for rich experiences, like video players, for most all applications that are advanced and “good enough” for 80% of the cases… this should all come with a base JRE installation. It seems that isn’t even happening, as to view any of the samples or the video on the Learn More page of the JavaFX website, you still have to suck down megabyte after megabyte of additional JARs just to experience anything.

    I also wonder how much of this is due to JAR-bloat, for example, if you just want to use a single class from commons-codec, but you also pull down the rest of the entire API and commons-logging and log4j with it? Who knows… I know I’ve been an offender in the past with only needing 1 class from a JAR, but because of the inter-dependencies, needing to at like 5MB of JARs to my classpath just to get my app to run.

    Reply

Leave a Reply