I started this post as a comment to a thread on Digg, titled “iPhone Development – Not So Sweet“. Some of the discussion was around the assumption that “the iPhone runs Mac OS X, so why can’t existing apps work?” I don’t know if I’m ranting at Apple or defending them here, but these are my thoughts on the matter, 11 days before launch.
The “but it runs OS X!” statement gets at what I think is a HUGE misconception by people about exactly what OS runs on the iPhone. I can guarantee you it’s not Mac OS X as you know it – the same version that runs on your Mac. Not even deep down at the lower levels of the kernel, etc. They may be distant cousins, or just related in name. No one knows the details yet but Apple.
If you recall carefully, or go back to the original iPhone announcement, Steve Jobs said it runs Mac OS, NOT Mac OS X. Someone correct me on this if I’m wrong, but I bet you can’t find a reliable citation that says otherwise. We know that the iPhone has an ARM processor, made by Samsung. Same as most Windows Mobile or Palm OS phones. It can’t run Mac OS X, which is compiled for either Intel x86 processors or the older PowerPC processors.
Steve was being disingenuous by saying it runs Mac OS, and it will NEVER run Mac apps as we know them natively, because it has the wrong kind of CPU. Just like you can’t run a Windows app on a Windows Mobile phone. And if you think processor-level emulation, where the ARM CPU could pretend to be an x86 is a possibility, good luck. There’s no way anyone is getting a ~500MHz ARM processor to emulate current 2GHz+ Intel x86 CPUs.
In short, there would have had to be an SDK released LONG AGO if anyone was going to run ARM apps at launch on whatever flavor of “Mac OS” the iPhone has. This is a whole new OS and architecture – it’s obviously NOT something trivial they can just throw out there. A simple port job won’t cut it. Besides redesigning for the smaller screen and touch interface, you’d have to recompile for the ARM CPU. And how are you going to test your app if they don’t seed developer kits (iPhone hardware) to the developers, like they do with Mac OS X releases? Members of the Apple Developer program could buy an Intel-based development kit MONTHS before the first Intel Mac was available at retail. As soon as the switch to Intel was announced, in fact. Why did Apple make those available so early? So apps would be ready. Why have beta versions of Leopard been available for so long to developers? Same reason.
They didn’t do any such thing with the iPhone. And because of that, I think developers feel like Apple gave them the finger instead. At least, the ones I’ve talked to (and I talk to developers for a living). The whole “use the web to make your apps!” thing was just insult on top of injury. It’s a major change from how Apple (and any other major hardware/software company for that matter) operated in the past with regard to their developer community.
Apple thinks they can be successful with the iPhone without any developer ecosystem – they’re going it alone. They’ll be plenty successful, if you count success in units sold and ARPU (average revenue per user). But they have sacrificed a LOT of good will and relationships with their developer community by not releasing an iPhone SDK. And in the long run, I really don’t think that was a very smart move. There’s still time to fix it, so I’m not pronouncing doom on Apple or the iPhone, but it still seems like a pretty crappy thing to do to all those developers that give so much love, loyalty, and creativity to Cupertino.
And THAT’s why I think so many people are mad, ranting, and complaining at the lack of access to this amazing, beautiful, revolutionary platform. Wouldn’t you be?