Amidst all the wonderfully amusing half-truths and haughty hypocrisies dripping from his open letter on Adobe Flash, Steve Jobs has at least made one thing quite clear: his biggest beef with Flash is that it lets you create applications that run on all sorts of devices that weren't built by him.
And his biggest beef is also his biggest hypocrisy.
In his 1,700-word Thoughts on Flash missive, Jobs says his "most important reason" for banning Flash on the iPhone, iPod touch, and iPad is not that Flash sucks at online video and other web-based stuff. It's that Adobe wants developers to use Flash as a means of building native applications for his holy devices. This is such a problem, Jobs says, because Flash is a cross-platform development tool.
"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 writes. "This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms.
"Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms."
He takes a while to get there, but eventually he puts the notion into a nutshell. "Flash is a cross platform development tool," he says. "It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps." For all Jobs' talk of Flash being "closed and proprietary", plagued by security and performance problems, and, um, ill-suited to multi-touch, it all comes down to the fact that Adobe is interesting in helping developers write apps that run everywhere.
His letter would seem to indicate that when Apple banned code translation on the upcoming iPhone OS 4.0, its primary motivation was to prevent Adobe from translating Flash script for use on the device. Which is hardly a surprise. Before the letter, others had guessed as much.
The ban arrived just days before Adobe introduced a new iPhone packager with its Flash Professional CS5 development kit. With a few lines tucked into the iPhone 4.0 OS SDK license agreement, Apple barred developers from accessing its APIs with anything other than the language he approves of. "Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)," the change read.
Yes, we're still left to wonder whether this new language also buries development kits along the lines of Appcelerator's Titanium and Unity3D. These tools also translate codes written in other languages, but unlike Adobe's iPhone packager - which compiles directly into machine code - they make use of Apple's XCode development kit, compiling code into Jobs' beloved Objective C. Provided these kits are briskly updated when Apple introduces new APIs, they may satisfy the man.
These can be viewed as translation layers. And in his letter - echoing a private email he allegedly sent a few weeks back - Jobs makes it clear that he doesn't want a third party sitting between developers and his APIs. "If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers," he writes.
But the letter is aimed at Adobe. And only Adobe. In arguing that third-party development kits slow the adoption of Apple's APIs, Jobs calls out Adobe for taking so long to adopt Cocoa, Apple's latest set of APIs for the Mac. "Adobe has been painfully slow to adopt enhancements to Apple’s platforms," he writes. "Although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third-party developer to fully adopt Mac OS X."
Actually, Microsoft hasn't moved Office to Cocoa. And we would argue that Redmond is a major third-party developer. But as OSNews points out, the larger point to make is that Apple itself has taken its sweet time adopting Cocoa. The Mac's centerpiece application, Finder, didn't adopt Cocoa until Snow Leopard, nearly a decade after the API's debut. And Apple iTunes still doesn't use Cocoa. Neither does Final Cut Pro.
In short, with today's letter, Jobs has achieved the sort of haughty hypocrisy typically reserved for the likes of Eric Schmidt. Yes, there the irony that Jobs is accusing Flash of being "closed and proprietary." But the irony goes much further, rending his cross-platform argument in two.
Yes, Flash has its security and performance problems. And, yes, we'd much prefer a webworld that relies open standards. But with today's letter, Steve Jobs has shown that those are merely side issues. The primary issue is that Jobs wants to exert as much control as he possibly can over his devices - and over, well, developers. Notice that he calls them "our developers."
Well, that's part of the primary issue. The other - perhaps larger - part is that the man has some sort of personal vendetta against Adobe Flash. In so many ways, the letter is nonsense. But on this point, it's completely clear.
Post a Comment