It really is our own fault, we have come to expect too much of Sun. They are like that lovable Uncle we have. They have the best stories at the dinner table, but if you look around at the other adults, they are all rolling their eyes and laughing politely. They always promise they are going to show up at your major event, but if they do arrive, it's generally very late and with the most in appropriate gift.
In this particular instance we are talking about the much hyped and under delivered JavaFX; their answer to crack the Flash and emerging Silverlight dominance. Now we should have seen the warning signs there, as soon as Sun announces something as the "second coming" then we are can be pretty much assured it won't be. Yet, like Apple followers blindingly marching behind Steve Jobs, we too are easily seduced.
Java's biggest problem is Java - and it is one problem no one wants to talk about at Sun.
You see the JRE, the actual runtime, is horrendously bloated, ill managed, a pain to install and even more of a pain to integrate with all the different browsers on your desktop. It also has this wonderful feature of pausing your whole machine while it starts up. Booting up a platform that is over 40MB in size, does take a wee while, and to ensure the user doesn't completely panic, most times it will throw up the most god awful visual gray window letting you know it wasn't a virus that caused your browser to stutter, it was just Java!
Flash has pretty much won the browser war in terms of rich media plugins. They cracked the biggest nut and cracked it well; streaming video both in and out. Can you imagine YouTube being as successfully if everyone had to watch a video via a Java applet? Can you imagine the amount of dialogs, security warnings, configuration hacking that would be required by your user to ask permission to use their local webcam? It just was never on the cards.
The underlying JRE was never designed for this level of interaction with stuff outside of its sandbox. In its present form, the JRE will never be a nimble tool that the user won't even notice its existence. After all, when was the last time you noticed flash booting up?
So Sun has neglected to address this problem with their Flash killer JavaFX. We had hoped JavaFX would be a new runtime; maybe a J2ME engine for the browser, geared towards multimedia and graphics instead of mobile. Ironically the technology does exist within the Java space to enable such faster loading very small runtimes, thats what makes it so frustrating.
But no, JavaFX, is yet another scripting language, that sits on top of the existing JRE and merely gives non Java developers quick access to its powerful features. Can some one please tell Sun, someone has already invented the wheel, and so far, the original design of it being round, is working out pretty well. This hexagonal thing, just isn't going to fly!
On Monday of this week, I had the pleasure of sitting in on a Java Champion conference call with a Sun exec who was going to tell us all about the wonders of JavaFX. We were all promised to cross-our-hearts-and-hope-to-die and not tell anyone of what was going to be discussed. Except, cold feet ensued and we got no information. The thought was maybe it was going to be such a big announcement of earth shattering magnitude that he didn't want to risk letting the cat out of the bag early. Now we realize the poor guy was embarrassed. He twigged that JavaFX was a turkey.
Interesting enough, within that conference call, I made the point about JRE installation and size, and many others also contributed to the fact the versioning was a mess and it was a nightmare for users to manage. No one was actually arguing the point and the Sun exec even told us a story of his daughter telling him that Java was thing that stopped her browser.
So if his own daughter can't convince him that Java on the browser is a seriously flawed and bad idea, then what hope do the rest of us have?
If Sun really want to kill off Flash and take a swing at Microsoft's Silverlight alternative, then they have to sit down and look at why they are popular and not try and shoe horn Java as it stands into that space.
postscript - Sun appear to be addressing the JRE issue after all with something they are referring to as the "Consumer JRE". Details are still sketchy in terms of what it actually entails; will it be a repackaging, or a complete ground up redesign. Either way, it is expected to hit our desktops mid 2008! Yes, a complete year away from now - Adobe and Microsoft must be shaking in their cubicles! Can someone ask Adobe and Microsoft if they could take a 12 month sabbatical while Java catches up? Thanks.