There's an incredible SDK (that's system development kit) article at Ars Technica, one of my favorite tech sites, about the new user interface metaphors, the work involved in making sure a new user interface is robust and polished to ensure that the use of this SDK provides high-quality applications. It's by John Siracusa and it's titled The Frontier.
The article even goes into detail concerning Jobs' worry that an application could bring down a network, which has been pooh-poohed by various technical people:
I happen to know of one actual incident in which a bug in a certain first-party smart-phone application caused, essentially, a denial-of-service attack on an important data service—one that happened the same time every day for weeks before it was tracked down.
If you're tweaked out about the iPhone SDK issue, go read it. Some programming knowledge might help.
The iPhone is not just a new platform, it's an entirely new set of rules for interface design. That is what struck me the most once the actual iPhone demos started. There are no windows, no close/minimize/zoom widgets, no checkboxes, no radio buttons, no scroll bars, no nothing.
Seriously, I could quote this article all day. I wish it went into why an SDK is so important, but it doesn't, so I'll follow up where it left off.
There's never been any question in my mind that Apple would have an SDK for the device. Sooner or later, I wouldn't know when, if it would be at launch, or what have you. Apple doesn't want to have to write all of the applications for it themselves; they'd rather let other people do some of the work, so they can catch some of the fringe uses of the device.
Let's look at games on the iPod, as an example. Steve Jobs has never been focused on games, but he needs them on the iPod platform, so he outsources that development. So, game developers like EA or Gameloft probably grab some Pixo SDK from Apple, and port their game code over using that SDK -- it affords the developers use of the scroll wheel, the center button, etc. Without that SDK, there's no simple access to the iPod click / scroll wheel interface.
But if this SDK is so much trouble to do right, why release one at all? That's really the golden question: it's important because of the money.
You have to ensure that there's a rich ecosystem for developers, as the developers are the people that ensure that a platform (platform meaning smartphones, computers, video game consoles, etc) has applications available on it. Applications are the lifeblood of any platform, and Apple knows it. Think of how important Microsoft Office or Adobe Photoshop has historically been to Mac OSX. Think of how important computer games have historically been to Microsoft Windows. Think of how important Grand Theft Auto III or Final Fantasy was to the PS2. Think of how important Oracle was to UNIX vendors.
Developers have to be able to write software for a platform to ensure its survival, to keep it alongside (or ahead of) its competitors in the marketplace. So that's part of the money.
The other part of the money is this: Steve Jobs has the perfect avenue to sell 3rd party applications in the iTunes store, a potential gold mine. Rumor has it that the iPhone will only run signed applications -- that is, applications without Apple's signature of approval won't run. It would not be too hard for Apple to sign apps; they sign AAC files every time someone purchases music or iPod games or whatever from the iTunes store.
So, Apple can use their huge content delivery system to store applications, sign them to individual users, and ensure that developers get paid when someone buys an application. Apple can take a cut for housing the applications, just like they do for the record labels. The astute will note that this method ensures that developers get paid for their software products (if they like, I'm sure there will be some free or possibly open apps on the platform), which is of course a major concern for independent developers.
The only niggle I see is if Apple decides they want to test the applications for security, malware, and the like before they certify them. To that, I have no idea; they may just be selective about who they release the SDK to.
p> But rest assured that they'll release an SDK, because it's about the money, and Apple likes to make money: it's their singular purpose as a corporation.