Monday, May 03, 2010

iJinx - Apple vs Adobe

As recently as six months ago some technology experts thought Flash was would dominate Web multimedia. Now some are saying the technology is doomed.
- NPR.org, All Things Considered, "What's Behind Apple's Clash With Flash?"

Ah, yes, the wonderful world of overly reductive thinking. Flash will dominate the Web! No, Flash is doomed! Wait, what's all the hi-jinx about?

NPR is, as is its wont, getting in late on a story that most of the tech press has already covered to death: the disagreement between Apple and Adobe about the need (or lack of same) for Adobe's web video and animation software, Flash, to run on the various Apple iDevices, particularly the recently released iPad. I'm not blaming NPR for this, particularly -- they're not tech press, and in coming to the story late, they have at least a chance of catching the story after much of the hype has given way and can get at the actual issues involved.

But if you listen to the audio of the story, as it played on NPR's weekend 'All Things Considered', you might think that NPR is reporting on a personal grudge between Apple CEO Steve Jobs and, well, anything he doesn't like. Sadly, the NPR folks really dropped the ball on this one, missing a chance to cover a really interesting development in consumer technology and instead treating it as tabloid pablum, yet another 'celebrity man in charge pouts to try and get his way' story.

Apple's unwillingness to let Flash run on its mobile devices, the iPhone, iPod Touch, and now iPad, has been known for some time. For years, when Apple engineers or PR people have been asked about Flash on the iPhone, the response has been pretty consistently that Apple has no plans to implement Flash there, and that policy has formally been extended to the iPad. Two things, though, really made the tech press blow up about this over the past few weeks:

1) In early April, just before the announcement of the iPhone 4.0 operating system and the subsequent release of the iPhone Software Development Kit (SDK) version 3.2 which would allow non-privileged developers the chance to start developing apps for the recently released iPad, Apple announced a change to their Developer Agreement -- the licensing agreement that developers have to agree to before they can download or use the SDK.

The change greatly expanded the definition of 'using Documented APIs in the manner prescribed by Apple' to specifically forbid not just private Application Programming Interfaces (or APIs) (as was already specified in the prior version of the agreement), but also any compiled code executing against Apple's Documented APIs in anything but a handful of core computer languages.

Mac tech press writer John Gruber (in the article noted above) suggested that the move wasn't made to specifically target any given cross-compiler. Other writers, however, noting that the timing of Apple's announcement was only one day prior to the planned release of Creative Suite 5 by Adobe, in which one of the key selling points would be the ability to compile applications written in Flash as native iPhone and iPad apps, becan writing of how Apple was 'targetting' Adobe and Flash, and that this change was nothing less than the initial salvo in a 'war' between Apple and Adobe in which Apple's intention was nothing less than the death of Flash as a web platform.

Kinda silly, sure, but hey -- maybe it was just a slow news day. Regardless, it got the usual suspects' dander all up about freedom and choice and apple pie (although, ironically, the specific BoingBoing post I linked to above is actually remarkably level-headed about the whole thing).

However, fuel was thrown onto the fire when...

2) Last Thursday, Steve Jobs himself (or at least an uncredited ghost writer) published an essay on Apple's public web site explaining the decision not to allow Flash on Apple's mobile devices.

Right off the bad, Jobs takes time to address those who've seen fit to criticize Apple's decision (which has largely been reported not so much as Apple's decision, but as Jobs's own), and in a way that points out how ludicrous it is to consider Apple and Adobe 'at war' over anything -- Jobs reminds people who might not be old enough to remember that Apple was Adobe's first major customer, and that combining Adobe's PostScript technology with Apple's LaserWriter printers created the desktop publishing industry. If anything, Jobs's first paragraph sounds more like the admissions of a lovelorn former beau disappointed that his sweetheart has left him for a perceived faster lifestyle in the 'big city'.

Jobs then proceeds to list six specific points attempting to refute the idea that Apple's decision not to allow Flash on Apple's mobile devices is a 'business decision':

1) Though Apple's own iPhone OS is closed (i.e. 'proprietary'), the technologies Apple uses to allow its iPhone OS products (specifically the iPhone and iPad) to connect to and render the Internet are open standards. Flash, meanwhile, is a closed, proprietary Internet standard.

2) When Adobe says that 75% of video is encoded in Flash and that devices that don't support Flash cannot therefore access the 'full web', Adobe is being disingenuous; much of the video encoded in Flash is also available as open H.264-encoded video, which the iDevices can play just fine.

3) Enabling Flash on Apple's iDevices would expose them to security issues, as well as cause performance and reliability issues that users would blame on the devices, not on Flash.

4) Enabling Flash would reduce battery life on Apple's iDevices.

5) Flash isn't designed as a multi-touch interface language.

6) Adobe wants to convince developers to use Flash as an intermediary language to enable programs originally written in Flash to run on Apple's iDevices.

Point 6, as you probably can tell, speaks directly to the change in Apple's developer agreements (see 1 above), and Jobs spends a few paragraphs unpacking just what that means.

Adobe's immediate response came via its own CEO, Shantanu Narayen, who put together a hasty and probably ill-advised attempt to rebut Jobs's claims in an interview with the Wall Street Journal. Though Mr. Narayen's comments don't come down to a point-by-point refutation of Mr. Jobs's own article, the Adobe CEO basically argues that Apple's decision is more about control, both of the platform and the developer community that serves the platform, and that it's Adobe, not Apple, that is thinking in terms of openness and 'cross-platform' capability.

That's pretty much a load of hogwash, unfortunately.

My own feeling is that each of Mr. Jobs's points is accurate, though some are more relevant to the argument than others. For instance, the 'openness' argument doesn't really hold a lot of water with me, even if Jobs's characterization of the difference between Adobe's and Apple's approach to web standards is basically accurate. Nevertheless, it's clear that Adobe wants this 'fight' characterized as 'big bad Apple versus humble Adobe', which, sadly, also won't wash for people who know the backstory.

For instance, when Jobs says this:

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform.

...he's talking right to Adobe and Adobe's Mac user base. From intransigence over PostScript to a long delay in implementing changes required by MacOS X into their Mac professional applications, Adobe has long been exactly that third-party holding back needed advancement in the Mac platform for their own business purposes. If Apple was trying to 'kill' Adobe, or just 'kill' Flash, the notoriously vindictive Jobs would have more than enough justification in doing so right there.

But a curious thing happened on the same day that Jobs's and Narayen's comments hit the web like a couple of tons of bricks: the blog of one of Adobe's Flash player engineers announced that Adobe was releasing a beta version of Flash Player for MacOS X that uses Apple's MacOS X video acceleration APIs that allow the OS to pass video decoding to a dedicated Graphics Processing Unit (GPU) rather than being done in software as it currently the case. The change was done with Apple's assistance, and works for most Apple hardware shipped in the past year running the current version of MacOS X Snow Leopard.

If Apple was trying to kill Adobe, or even to kill Flash on the desktop, then why bother helping Adobe implement this feature? Interestingly enough, this feature in MacOS X is precisely one of the things that, if also implemented in iPhone OS, would make one of Mr. Jobs's points about Flash all but disappear -- hardware decoding would virtually eliminate the battery life penalty Mr. Jobs says Flash would impose on Apple's iDevices.

What Steve Jobs (or Apple's engineers, whichever was truly responsible for the decision) is trying to do is make sure that the user experience on iPhone and particularly iPad when interacting with the web is as 'magical' as Apple's marketing materials say it is. As an iPhone owner for nearly two years, and a recent purchaser of an iPad 3G, I appreciate this attention to my experience, and if not being able to access Dungeons & Dragons Tiny Adventures on my iPad is the price I pay for owning the most intuitive web device I've ever owned, then I pay that price willingly.

No comments: