The iPad, the Flash kerfluffle, Applets and JavaFX

 Last week Apple released their latest product destined to change the world (the iPad).  At least that's what they want us to believe.  Perhaps the biggest controversy over the thing is the lack of Flash capability.  However this being java.net I have to wonder out loud, where is Java capability, and more importantly why isn't as much controversy being raised over Java being missing? But I think we all can enumerate some reasons for both being missing.  And it's worth it for the Java community to ponder this issue.
A couple weeks ago I attended a meeting of the Silicon Valley Web JUG (yes: Java User Group).  (The Future of the Web According to Dion Almaer and Ben Galbraith)  A very interesting meeting with a great overview of advances in HTML5 with an eye on the great possibilities it holds.
The interesting thing is they began the evening with a question:  How many of you are interested in JavaFX?  A meeting of 100+ geeks in Silicon Valley who are associated with a Java User Group, you'd think a few of them would be interested in JavaFX.  One person raised their hand.  I think that says a LOT.
Their presentation said a LOT about why Java and Flash both are missing from the iPad and iPod, and why we shouldn't care about that functionality gap, and indeed should feel liberated at their absence.
The key is web components built using standardized web technologies (a.k.a. The Open Web).  That's HTML, XML, HTTP, JavaScript and that ilk.  Flash, not being standardized by anybody, is not part of the Open Web.  Despite Java having a standards body behind it and being treated/delivered by Sun as an Open Standard, it was never accepted by the tech/web community as part of the Open Web.  And.. uh.. JavaFX.. sheesh, that's nowhere near being treated/delivered by Sun as any kind of Open Standard, instead it's being treated as a proprietary product where Sun is the big gorilla.  Oh, wait, that's Oracle now.  Sigh.  In any case the Open Web should most certainly ignore JavaFX just like it calls for Flash to be eschewed.
By being based on Open Standards the Open Web has tooling available from many organizations and a rich ecosystem of experience and adoption.  
An issue traditionally with HTML+JavaScript was speed.  Javascript has historically been an interpreted only language and anybody who tried Java 1.0 knows how glacial that can be.  Lately some Javascript implementations have been developing JIT and bytecode interpretation capabilities that eerily echo the development of Java virtual machines.  According to Ben Galbraith some of those teams are staffed with former Java VM developers.  In any case it means faster HTML+JavaScript execution with more capability to provide a rich GUI experience using just HTML+JavaScript.  (FWIW I'm typing this in Google's Chrome browser)
This ain't the HTML+JavaScript of yesteryear.  This is a brave new world.  It seems in retrospect the promise of Flash and Java was speedier UI experience than the HTML+JavaScript of yesteryear, and that if the HTML+JavaScript of the future is good enough, then both Flash and Java will be rendered irrelevant.  Yes, sure, of course both Adobe and Sun have over a decade of virtual machine implementation experience.  But neither can achieve the tight browser integration that JavaScript can.
HTML vs. Flash: Can a turf war be avoided? That's an interesting article covering the current stance where Adobe is saying "HEY WAIT A MINNIT" about the lack of Flash in the iPad.  e.g. "We are now on the verge of delivering Flash Player 10.1 for smartphones with all but one of the top manufacturers," Lynch said, specifically mentioning the Nexus One as one such device and adding that the software also works on tablets, Netbooks, and Net-enabled TVs. "Flash in the browser provides a competitive advantage to these devices because it will enable their customers to browse the whole Web...We are ready to enable Flash in the browser on these devices if and when Apple chooses to allow that for its users, but to date we have not had the required cooperation from Apple to make this happen."  I happen to know for certain that Sun could say the very same thing about Java on iPhone/iPod/iPad.  
Where is the truth between these possible states:-

  • The Web only has components standardized by standards bodies
  • All the tools and components are completely open source under OSI approved licenses
  • There is a mix of open standardized components, semi-open proprietary components and completely closed components (todays situation) 
  • Every web site has its own incompatible standard (the fate we fortunately avoided several years ago)

??
 

 
(tangential digression
Open Source != Open Standard.  For a long time the hue and cry was for Sun to Open Source Java, and that would ensue a brave new era of wonderful harmony across the planet or some such.  In practice Sun didn't quite open source Java, instead it created an Open Source project on a specific implementation of Java (OpenJDK) but "Java" (in my mind) was explicitly not open sourced.  As a result while the resulting situation was much better than before the wonderful era of harmony did not ensue.
In any case an Open Standard can be delivered by closed source software so long as it obeys the standard.  An Open Standard still allows wide use of the software and a huge amount of freedom in lots of practical forms of freedom.  But Open Standards don't allow things like forking that Open Source explicitly allows.