There's a huge debate online about who's "right" between Apple and Adobe in the dispute over allowing Flash on the iPhone. Both companies portray their actions as protection of users and developers, but in reality what they're both protecting is their profits. There's nothing wrong with doing that -- it's what companies are supposed to do. But the only truly innocent victims in this dispute are the people trapped between Adobe and Apple.
Why Apple really doesn't want Flash on iPhone
Steve Jobs outlined his case against Flash in a recent open letter. His arguments boiled down to this:
Flash is proprietary.
H.264 video is better than Flash video.
There are lots of games on iPhone, so you won't miss the Flash ones.
Flash is insecure.
Flash makes Macs crash.
Flash is slow and reduces battery life.
Flash doesn't work well with touchscreen technology.
As an independent development layer, Flash reduces Apple's ability to innovate.
I'm not going to evaluate each of those claims; others have done a good job of that already. But none of Jobs' points except the last one explains all of Apple's actions. Apple has consistently banned not just Flash but almost all independent platforms, including Java, QT, and Palm OS emulators. One of the most poignant examples I've run across recently is Runtime Revolution, which is basically Hypercard brought into the modern era. It's a nifty tool for making prototypes and interactive media products, and its creator had been heavily committed to iPhone as a development target, encouraged by Steve Jobs' public statement that a third party developer could create a Hypercard-like product for iPhone. But Runtime Revolution's CEO killed the iPhone project last week because Apple won't allow the product to run; his story is posted here (link).
The bottom line: Apple just doesn't like other platforms.
I think Apple is sincere when it says it views these platforms as a potential barrier to innovation. But I don't think that's the whole story. Independent platforms also make it easy for a successful developer to port its software to other platforms, like Android or Symbian. This cross-platform porting is something that Apple fears because it's what allowed Windows to catch up with Macintosh.
Here's a list of some major PC software products. Do you know what they all have in common?
The answer: They were first successful on Apple systems, and only later took off in the PC world.
I was working at Apple when this process happened, and I can tell you that it was searing. Apple had invested countless hours and dollars marketing those products as prominent reasons to buy Macs, and then we saw that investment turned against us when the apps were made available on Windows.
Do you think Steve Jobs has forgotten that experience? Look how he started the open letter on Flash:
"Apple has a long relationship with Adobe. In fact, we met Adobe's founders when they were in their proverbial garage. Apple was their first big customer, adopting their Postscript language for our new Laserwriter printer. Apple invested in Adobe and owned around 20% of the company for many years. The two companies worked closely together to pioneer desktop publishing and there were many good times. Since that golden era, the companies have grown apart."
Can you hear the resentment? It reminds me of Bill Cosby quoting his dad: "I brought you into this world, and I can take you out." I think some of the key folks at Apple remember being "betrayed" by "their" developers, and they are determined never to leave themselves vulnerable to that again. I believe it's Apple's policy to keep iPhone and iPad developers as closely tied to the platform as possible, and to make it as hard as possible for them to move their products elsewhere. I think that's the core reason why Apple won't permit Flash, or any other third party platform, to run on iPhone.
If I were still working at Apple, I would probably do the same thing. That's not to say I like the policy, because it restricts customer choice and developer flexibility. But I understand the business logic behind it, and the depth of feeling Apple folks have on this issue. To Apple this isn't just about innovation, it's about business survival.
I just wish Apple had been more specific about what was allowed and not allowed on its platform. At times the rules seem very arbitrary. For example, Runtime Revolution is banned from iPhone, but a game creation environment called Game Salad says it is allowed (link). The company claims Apple privately promised that it could continue to run, but won't say what it did to get Apple's permission. Runtime Revolution thought it was following the rules too. A platform vendor is responsible for articulating exactly what developers will and will not be permitted to do, before they invest time and money. Apple was at best sloppy about delivering that information, and at worst it changed the rules in the middle of the game.
Adobe's Flash agenda
So we have Apple trying to keep developers on the farm, barefoot and pregnant. Does that make Adobe the liberator, throwing open the gates and setting developers free? Maybe, but only to the extent that it serves Adobe's own interests.
If you want to understand Adobe's agenda for Flash, you have to look back to 2006, when Adobe bought Macromedia. Just after the acquisition, Adobe CEO Bruce Chizen gave a very interesting interview in which he discussed Adobe's plans for Flash and related technologies (link):
Buying Flash "enables us to create an 'engagement platform.' Think of it as a layer or a vehicle in which anybody can present information that could be engaged with in an interactive, compelling, reliable, relatively secure way -- across all kinds of devices, all kinds of operating systems....If we execute appropriately we will be the engagement platform, or the layer, on top of anything that has an LCD display, any computing device -- everything from a refrigerator to an automobile to a video game to a computer to a mobile phone."
In other words, Flash becomes the developer platform, and the underlying OS is transformed into commodity plumbing. Adobe's focus at the time was on competing with Microsoft (the article mentions Apple only in passing and Google not at all), but when you declare war on one OS, you declare war on them all.
I don't think you can blame Apple for feeling threatened by this. (Or Google, for that matter, which has been running its own behind the scenes war against Flash by promoting HTML 5.)
I thought it was a brilliant strategy when Adobe announced it. Unfortunately, Adobe's execution hasn't matched its rhetoric. Four years ago, Chizen said Adobe would quickly merge Flash and Acrobat into a runtime environment that would own the next generation of applications. If Adobe had moved quickly, it might have made its platform into a contender, and the software market might look a lot different today. But the new platform, called Adobe Air, was very slow to come to market, and was focused on PCs rather than mobile devices. Today it has very little developer momentum.
Adobe spun its wheels in the mobile market in particular. It insisted on charging for the mobile Flash runtime for a long time, even though it knew that free runtimes are the key to adoption. And then much of the Adobe mobile team was fired in a series of layoffs starting at the end of 2008. Adobe had hired a lot of mobile industry veterans, and by firing them Adobe created the impression in the mobile industry that it was not serious about mobile. There's a very good discussion of some of Adobe's other mobile challenges here.
Fast forward a year and a half from those firings, and Apple has completely seized the initiative with mobile developers. Now Adobe is fighting a defensive battle just to keep Flash relevant.
There's an old quote attributed to Napoleon, "If you start to take Vienna, take Vienna." Adobe failed to take Vienna. Note to other tech companies: Don't declare your intention to take over the world; do it first and explain later. (By the way, this explains both Apple's strategy and Chinese foreign policy, but I digress.)
Because of this history, I find it hard to feel a lot of sympathy for the troubles that Flash is having. I also find it a bit disingenuous when Adobe says that it's fighting for a "multiplatform" world (link), when the company has said previously that it really wants a single platform, led by Adobe, that runs on top of multiple operating systems.
I'm also amused by Adobe's statements that it has always been a proponent of open standards. Adobe cofounders John Warnock and Chuck Geschke wrote:
"That, certainly, was what we learned as we launched PostScript® and PDF, two early and powerful software solutions that work across platforms. We openly published the specifications for both, thus inviting both use and competition. In the early days, PostScript attracted 72 clone makers, but we held onto our market leadership by out-innovating the pack."
Actually, Adobe held onto its leadership in part by building secret, proprietary extensions to PostScript and tying its paid products to them. In an example I saw personally, Adobe's secret APIs in PostScript enabled it to create higher-quality fonts that looked better and ran more efficiently than competitors. As a PostScript developer you were welcome to work with Adobe's low-quality font technology, but Adobe refused to allow any developer to access its proprietary high-quality APIs.
Sounds like something Apple would do, doesn't it?
The real battle
So the real situation around Flash is that Apple won't permit most other platforms on iPhone (no matter how innocuous they are) because it thinks they threaten its survival, while Adobe wants its platform on iPhone so it can set a de facto standard and make money from it. Neither company is really focused on protecting developers or users as its main goal; they are fighting over who gets to use developers to make money.
Unfortunately for developers, this situation makes it more and more likely that the mobile world will continue to be split into incompatible platforms, forcing them to rewrite their programs multiple times in order to reach the broadest group of customers. Theoretically, the mobile browser could become the grand unifier of mobile development, and as I have said before I wish it would (venture capitalist Eric Ver Ploeg makes the case for it here). Unfortunately, the development of those standards has been incredibly slow and political, and after watching that process for years, it's becoming harder and harder to convince myself that it'll ever speed up. I hope it does, but I suspect that one reason Apple's willing to support web standards is because it believes it can dramatically out-innovate them.
In the meantime, Apple and Adobe will continue to duke it out. If Adobe could get customers and developers to boycott Apple products, I guess Apple might be forced to back down. Or Adobe might convince the government to charge Apple with noncompetitive behavior. But I think neither of those is likely to happen. The most likely outcome is that Apple will hold the line against Flash, Adobe will try to run Flash on every other mobile platform, we'll get a lot more posturing from both companies -- and a lot of websites will get rich running Adobe's anti-Apple ads.