Although I too would love to develop for the iPhone (despite them not coming over here to the UK until the end of 2007), I can see Apple's reticence to allowing 3rd party developers free reign of the device:
[1] If you install software that wrecks your mac (eg. dodgy kernel drivers... most applications should only wreck their sandbox, not the entire mac (even more so when they're not actually launched)), then there are plenty of things you, the user, can do to repair your mac (boot off alternative disks, run diagnostic tools, dip down to the command line etc.) - this may not be true of the iPhone - it isn't too easy to perform your own iPod repairs aside from reset / reboot / diagnostic menu (if my memory serves), and there aren't an awful lot of holes on the iPhone for diagnostic work (eg. booting off a USB / FW disk / CD). Bearing in mind most 'users' for iPhone will not be IT savvy (as is the case with most iPod users), they will not necessarily realise that what wrecked their iPhone was that dodgy bit of software they just installed on it. And Cingular / European distributors / Asian distributors will be the ones having to support these kamikaze users.
[2] To the argument that 'at least Apple could enable widget development even if not full app development', I don't think that's so safe either: a Mac OS X widget doesn't just have to involve HTML / CSS / Javascript, it can use Objective-C objects. These can call C code, the BSD libraries (on Mac OS X at least, not sure about 'iPhone OS X' of course), and there's even the NSTask Objective-C class to do some of your UNIX bidding for you. So to allow cross-platform widget development (for macs & iPhones, using the same widget) would be no more secure (from stopping the phone from crashing) than to allow full API access. Of course Apple could insist iPhone widgets can _only_ do HTML/CSS/JavaScript, so that there's no risk of Obj-C / C / BSD stuff going on, but then they break any notion of a cross platform widget (if that were even on the table).
So as I say, much as I'd love to be developing for the iPhone, I can see why Apple isn't yet saying you will be able to make widgets for it.
by The boy Ken — Jan 14
[1] If you install software that wrecks your mac (eg. dodgy kernel drivers... most applications should only wreck their sandbox, not the entire mac (even more so when they're not actually launched)), then there are plenty of things you, the user, can do to repair your mac (boot off alternative disks, run diagnostic tools, dip down to the command line etc.) - this may not be true of the iPhone - it isn't too easy to perform your own iPod repairs aside from reset / reboot / diagnostic menu (if my memory serves), and there aren't an awful lot of holes on the iPhone for diagnostic work (eg. booting off a USB / FW disk / CD). Bearing in mind most 'users' for iPhone will not be IT savvy (as is the case with most iPod users), they will not necessarily realise that what wrecked their iPhone was that dodgy bit of software they just installed on it. And Cingular / European distributors / Asian distributors will be the ones having to support these kamikaze users.
[2] To the argument that 'at least Apple could enable widget development even if not full app development', I don't think that's so safe either: a Mac OS X widget doesn't just have to involve HTML / CSS / Javascript, it can use Objective-C objects. These can call C code, the BSD libraries (on Mac OS X at least, not sure about 'iPhone OS X' of course), and there's even the NSTask Objective-C class to do some of your UNIX bidding for you. So to allow cross-platform widget development (for macs & iPhones, using the same widget) would be no more secure (from stopping the phone from crashing) than to allow full API access. Of course Apple could insist iPhone widgets can _only_ do HTML/CSS/JavaScript, so that there's no risk of Obj-C / C / BSD stuff going on, but then they break any notion of a cross platform widget (if that were even on the table).
So as I say, much as I'd love to be developing for the iPhone, I can see why Apple isn't yet saying you will be able to make widgets for it.