Apple's taking a fair amount of heat from developers and some customers for its decision not to open the iPhone to third party applications. So far Apple's explanations for why it made that decision are pretty lame.
Newsweek quotes Steve Jobs:
"You don’t want your phone to be an open platform....You need it to work when you need it to work. Cingular doesn't want to see their West Coast network go down because some application messed up."
That spawned the following sarcastic response on the Palm Entpreneurs Forum mailing list (a forum for mobile software companies):
"So is there an API for taking down the network? I realize it's probably not void TakeDownNetwork() but something like void KeepNetworkUp(int nSeconds) and it's up to every app to not call that function with nSeconds <= 0. Seems like disabling that function might be the first place to start. And if it doesn't exist then not worrying about it would be a good course of action."
You may not get that joke if you're not a programmer, but the point is that millions of Palm Treos and Windows Mobile smartphones have been sold with the ability to add third party applications and Cingular hasn't batted an eye (and its network hasn't gone down either).
So Steve is making up an excuse. The question is, what's his real motivation? Two leading theories are:
--Apple wants to ensure a perfect user experience, and doesn't trust developers not to mess it up.
--There are weaknesses or missing pieces in the iPhone's operating system that would be vulnerable to damage by third party apps.
The catch is that both of those could easily be fixed if Apple really wanted to. If it wants a perfect experience, it could allow third party apps with certification. Or it could allow apps but not publicize them, which means the average user would never see them but would allow those who want apps to use them. As for the stability of the phone's OS, Apple has been developing the iPhone for two and a half years, and the software is based on Mac OS X. I really doubt the iPhone OS is a fragile hack.
I want to propose an alternate explanation. I'm not at all sure it's true, but it fits the evidence, and it makes sense given Apple's history.
I think this is not about controlling the iPhone's user experience. I think it's about controlling the iPhone's users.
To explain what I mean, I have to give a brief history of the Macintosh computer, from Steve Jobs' point of view:
1. Apple pioneers the Lisa and then Macintosh with a revolutionary interface that Xerox had been too stupid to commercialize.
2. Apple works like a dog to evangelize and co-promote thousands of insanely great Macintosh apps.
3. Microsoft uses its Apple II products to extort from Apple the right to clone the Mac OS.
4. Microsoft produces Windows.
5. All those software developers, whose products Apple helped to promote, port their applications to Windows.
6. Macintosh market share ends up south of 5%.
So here Steve is 23 years later, with another breakthrough computing platform that has a revolutionary user interface. He said very prominently at the iPhone announcement that the new device is heavily patented and no one is going to clone this one. Why did he go out of his way to say that? What does that tell you about his state of mind? Why else would he raise the issue of cloning, unless he was remembering the history of Macintosh and Windows?
And if he's remembering the Macintosh, what other vulnerabilities does he want to fix?
I think Steve doesn't want any of his differentiation being copied anywhere, and that includes the third party apps. If I'm right, the iPhone will eventually be opened to selected third party applications, but developers will be prohibited (either via technical means or via contract) from porting the resulting applications to any other smartphone. The iPhone economy will look like the developer base for one of the gaming platforms, heavily controlled by the platform owner.