Skip to main content

The iPad, the Flash kerfluffle, Applets and JavaFX

Posted by robogeek on February 3, 2010 at 1:10 PM PST

 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 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.  


<p>Hey loved the discussions in here......very ...

Hey loved the discussions in here......very informative....
Can anyone choice me between a Zune HD and ipod.....

I am seeking for some good help.

Open source JDK

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.

IIRC, those who wanted Java open sourced didn't really care if Sun kept a closed-source version, as it would soon become irrelevent, or so they thought.

As a result while the resulting situation was much better than before the wonderful era of harmony did not ensue.

But for the most part, we still are in a wonderful era of harmony! Almost everyone continues to use JDK, not OpenJDK.

Apple strategy is Cocoa Apps, not HTML5

It's the Cocoa App Store vs. Flash vs. Silverlight for rich apps and gaming.

In order of least open to

In order of least open to most open in terms of availability to run across devices:
  • Palm Pre SDK = Palm phones only
  • Cocoa = Apple phones and tablets only
  • Silverlight = all Microsoft-licensed devices
  • Android = all Android devices
  • Flash = ALL devices but Apple

While we are talking of open

While we are talking of open standards, can somebody tell me when he presumes that IExplorer is ready for HTML 5? Sure, blame Microsoft for the delay, in the meantime IExplorer might be declining, but it's going to stay as a relevant part in the market. So, as a developer, I'll be forced to duplicate efforts to keep compatibility. It's crazy that people have cursed for years the fragmentation of JME, and now that we're facing an hyper-fragmented word, people are welcoming "open standards" (which aren't so standard, if they are not pervasive).

Devil's Advocate -- why do we need open standards?

What's so special about open standards anyway?

There are, broadly speaking, two ways of controlling things online: (1) benevolent dictatorships, or (2) Darwinian selection.

Old fashioned Britannia-style encyclopedias use the former, with "the truth" being controlled by a select band of the great & good, while newfangled Wikipedia-style encyclopedias use the latter, with "the truth" bubbling up from the masses in a kind of intellectual survival of the fittest fashion.

Likewise for web standards you either impose a standard created by a small number of interested parties (aka "open standards"), or you allow a de facto standard to arise by encouraging competition and allowing the environment to pick the fittest candidate. Flash got where it is today because it fitted all the necessary requirements of the overwhelming majority of developers and end users. If Flash stopped being the fittest candidate, something else would rise up and take its place. Basic Evolution/Memetics.

Really, is there such a need for benevolent dictatorships? Particularly on a medium like the web where users are so very powerful (isn't that the point of the whole Web 2.0/collaborative/crowdsourcing thing?)

Are you saying you're in

Are you saying you're in favor of:  Every web site has its own incompatible standard (the fate we fortunately avoided several years ago) ?? 

My idea of why we need what you're calling benevolent dictatorships is so that a user of any browser can go to any web site and be able to display that web site.  That didn't used to be the case (cough cough Internet Exploiter).  


Not quite.

I'm not against standards, but I am against one standard being considered more virtuous than any other.  By all means let HTML, Flash, Java, and all the rest each have their own specifications, but do not allow any committee of the so-called "great & the good" to bless one as being THE technology, above all others -- that decision belongs to all of us.  All that is required is an environment in which they can compete without favouritism or bias.


This has got to be one of the biggest about-face manœuvers I have seen, and so soon after the acquisition. (what a surprise)

So now, Java is no good for the client side? Bah! Speak for yourself. (you certainly don't speak for me)

Apple is blocking flash and Java on the iToys for one simple reason: to ensure revenue, and most importantly; absolute control, via the app store.

Try to remember: web != internet; web = indexed & linked documents, pictures, video, music, i.e. data.

This has got to be one of the

This has got to be one of the biggest about-face manœuvers I have seen, and so soon after the acquisition. (what a surprise)

Huh?  Maybe you're mistaking me for a Sun-now-Oracle employee when that is the furthest from the truth.  My opinions are with the perspective of not having worked there for over a year.  A time period during which I attended several tech-geek-web-developer meetings at which almost zero (other than JavaONE) mentioned anything about Java.

Oh and I do agree with your point about other reasons Apple has in terms of maintaining control.

So I should think that Apple,

So I should think that Apple, the corporate with the *closest* attitude around, doesn't support some technologies because they are not *open* enough?

Isn't much easier to think that in a moment in which you have new, unexploited territories such as the newest generation smartphones, tablets and so on, every player is just trying to impose his own standards (where they could be open or not, with "his own" I mean that they give a specific competitive advantage to him)?

For HTML 5, I'd like to see how things evolve, especially after Google used it to circumvent Apple's sandbox with Google Voice.


"So I should think that Apple, the corporate with the *closest* attitude around" Um, are we talking about the same Apple that bases their OS on an open-sourced core, uses an open-source toolchain, open-sourced one of the most standards-compliant browser engines in existence, submitted and open-sourced several standards such as bonjour, and uses almost exclusively standards-based protocols in all their server and desktop tools? Yes, they locked down app distribution on the iPhone. Get over it. Generally, they are one of the *openest* companies around, IMHO.


Apple adopted open source projects, down to OSX's kernel, in the areas that:

(a) Are not critical to their business (with the possible exception of nerds/developers, nobody buys OSX or iPhones due to its kernel or toolchain).

(b) Apple has historically been incompetent to compete. Below its gorgeous UI, the MacOSX is a poor OS compared to Windows7, Solaris or even Linux. The kernel, filesystems and other basics are all 10 years behind state-of-the-art; OSX is a joke for servers, could go on and on. The Objective-C language and its NeXT-based frameworks were good in the late 80's, for current standards they are stuff to vomit over (I have tried it; have the vomit stains in the keyboard to prove). Suffices to say that I'm not exactly known as a .NET advocate, but I will gladly recommend MonoTouch as the single sane SDK for the iPhone/iPad, considering that Java is not yet an option. Kudos to Miguel de Icaza and its crew at Novell for pulling that; more people should do what they did - work around Apple's restrictions and "contaminate" the platform with the choices developers really want. Both Adobe and SunOracle should just have the balls to deliver Flash and Java for the iPhone/iPod/iPad by whatever means necessary - static compilers, or even packages that need jailbreaking.

Java IS now an option :)

Actually it is now also possible to develop Java applications for the iPhone/iPod/iPad platform thanks to iSpectrum (by FlexyCore, ). It a complete solution to develop (in Eclipse), debug and deploy Java applications on Apple's devices. And it free for open source project :)... So as you say : Kudos to them ;)!

Let's clear up a few misconceptions, shall we?

a) What's your point? Every company uses open source to a certain extent, even Microsoft.

b) There's so much wrong with your assertion, it's not funny:

1) Apple competes just fine. They compete in PCs with Sony, HP, and Dell, and in operating systems with Microsoft, and to a certain extent, Linux. In none of these markets does Apple hold a majority market share
2) The kernel is XNU, which is a hybrid Mach-BSD kernel with a modular object-oriented driver architecture. The kernel doesn't perform well for servers, but then again, it isn't designed to. As a consumer-grade operating system, it does the job just fine.
3) I'll give you the filesystem, since HFS+ is a fairly ancient filesystem. To be fair to Apple, they were about to adopt ZFS with an ZFS to OS X project when Oracle/Sun pulled the rug out from under them by demanding onerous licensing terms. Apple has hired filesystem engineers and is developing a next-generation filesystem optimized for sold-state drives, which even ZFS doesn't run all that well on.
4) "Other basics" ? Please be specific. OS X has system services/APIs for functionality such as Undo/Redo, CoreText, CoreAnimation, AddressBook, Calendar, SpellChecking/Grammar Checking that Windows either doesn't have or very recently implemented. On the other hand, the Win32 API is a terrible mess.
5) Objective-C is a thin wrapper for C, which allows Apple to use rock-solid C libraries. It has advanced object oriented features such as garbage collection, properties, threading, exception handling, unit testing, and most of the features that Java has. Since Snow Leopard, it (and C) supports Closures, which the Java language doesn't. Grand Central Dispatch is a multithreading framework that's superior to even the Executor framework.
6) Cocoa is the best GUI development environment I've seen, bar none. The GUI Builder kicks the crap out of Matisse, SWT, and Flex.
7) OS X's security is far superior to Windows, which still has its users logged into the internet as root by default. What's more, Windows can't distinguish easily between windows and applications, whereas OS X does this with ease (Command-Q vs. Command-W).

Apple doesn't need Java or Flash on the iPhone, since it wants to control the user experience and preserve the credibility of the platform. Java and Flex developers are far less competent in developing good, solid, user friendly UIs than Cocoa/Objective-C developers are.

Apple could increase developer adoption by adding a new advanced language to wrap around Objective-C, but since the iPhone/iPad is the mobile development platform with the most appeal, they don't have to.

Let's not play with the

Let's not play with the semantics, please. Every corporate in the world adopts or produces some piece of open software, and Apple is at the bottom of the list. In any case, I'm not talking of open software: I'm talking precisely of the iPhone, iPod, iPad and clearly this is a tendency they'd like to grow. Even Microsoft tried ever something like this. Of course, if you want to ignore the parts of Apple's attitude that are closed, the rest is not closed...