Quentin’s note from yesterday has been linked quite a bit, with plenty of discussion in the comments. I’d like to follow up on a few things.
First off, I want to correct the idea that we believe web applications are somehow trivial compared to desktop applications. This is not the case at all, and if any comments implied this I apologize. There’s a place for both types of applications right now, and we use both web and desktop apps daily.
What we’re talking about here is the difference between web apps – applications that run on a remote web server and require an internet connection, and desktop apps – applications that run locally, with access to the local disk and hardware.
Apple is attempting to say (to a room filled largely with Cocoa developers) “Hey, you’ve got all you need to get on the iPhone. Just make a web app!”. If this is a perfect solution, there’d be no reason to have custom-built apps on the iPhone at all. For that matter, no one would need to care about Leopard or any new OS, as we could just build everything for Safari, and we’d be on the Mac, Windows, and iPhone. But in reality, desktop apps aren’t going anywhere any time soon.
Creating web apps to run on the iPhone will be a great solution for many tasks, but it is not a new solution, nor Apple hasn’t done anything new for developers. This is what we had from the get-go, when Apple announced there’d be a full-fledged browser on the phone. Web apps on the iPhone will also be stuck with something of a second-class status compared to local apps, as they can’t be accessed from the main menu, they can’t be used offline, they can’t access the local disk, and more.
Is there anything we can’t do with web apps? As our own Mike Ash pointed out in discussing this, all computer systems are Turing-complete. The issue is time and cost to gain equivalent functionality. We have hundreds of thousands of lines of code written in Cocoa along with years of experience, and we’d like to be able to reuse it. After all, the iPhone is running OS X.
We didn’t demand nor even expect an SDK before the iPhone’s release. This is a 1.0, and as Michael Tsai correctly states, “it’s in everyone’s interest for them to take their time and get it right”. However, we would like a bit of forthrightness from Apple, instead of continued misdirection.
From FUD about bringing down networks and other security concerns to an already-obvious “SDK”, Apple has bungled the developer relations for the iPhone. Nothing more, and nothing less. As a consumer, I’m still intrigued by the device. As a developer, I’m not terribly pleased with how things have gone.