So.
Everybody is having a collective orgasm over the iPad. Not sure why, really.
And then they announce iPhone OS 4.0. This is cool because it finally gives people multitasking, which other phones (Palm, Android) have had for a while now. And why did it take so long to implement? It didn't. Its just that now they are going to allow it for all apps, and not just their own (Apple) apps. This is under the guise that multitasking might have made the iPhone seem unresponsive or somehow muddy the experience of the iPhone before, and only now is it good enough to be allowed (we all presume this means an even faster iteration of iPhones to be released with it, and blocking usage of multitasking on older devices).
Now, think about the above. There was no technical reason for multitasking not to be there -- because their own apps used it. They simply disabled it for third party apps. Why? Essentialy because they didn't trust developers to use it well. OK, I get that not every developer is that great, and a bad app would make the iPhone look bad because people can't separate the experience. But apple reviews all the apps before allowing them on the store, right? So couldn't they just reject the ones that don't multitask well?
So anyway, reading the new apple license agreement you get the part about how you can't use any other framework or language on top of what apple provides. And people complain. And some people defend the action. And Steve responds. And supposedly the reason is the same as for the multitasking; that such alternate frameworks would result in bad quality software. OK, granted, such frameworks and languages probably aren't as efficient at run time as coding directly in objective-c using the Apple APIs (though that could probably be debated), and for the users of those frameworks they would possibly be limited in using any new Apple APIs until their framework supported it. But again, why is this a problem? If the apps are all reviewed before being released to the app store, why the draconian limitation? If the app sucks, they can just reject it. If the app doesn't use a new iPhone feature but another one does, competition will ensue.
So that doesn't leave a lot of logical reasons for the limitation. Except the obvious one. Apple doesn't want competition, period. The real thing these frameworks enable that Apple doesn't like is cross platform development. They don't want people making an app for the iPhone, no matter how good it is, and then pushing a button and having an Android version too. No sir, that wouldn't make the iPhone look good (well, it wouldn't make it look *better*).
I'm sure they've put up with these frameworks for as long as they cared to, and are now just figuring they are big enough to be able to tell them all to go fuck themselves because they don't need the help anymore. Mostly, it seems like they want to give a big huge middle finger to Adobe, and all the little guys are going down with them.
Come on Apple. Are you really scared? Is this really necessary? Seriously?