Why Apple did what they did: to hurt Adobe, to hurt Android.
Why they're not concerned about the collateral damage: because they really don't care whether small developers have access to the platform or not, they're more interested in having more AAA titles.
I'm pretty sure everyone who thinks it was arrogant, hostile, and stupid of them to do such a thing understands why Apple did it. Everyone also understood why Microsoft spent a great deal of time forcing OEMs to offer only their software.
Using translators it would be possible to create a sort of meta-platform that could compile to both iPhoneOS and Android. A clever developer could make an SDK that abstracted the differences in the platforms and made it easier for developers to support both platforms by using the same codebase for the same apps on either. By making it more difficult to support both at the same time, Apple may be hoping to keep more developers on only their platform and retain the edge that they have over Android.
That's what quite a few programming platforms already do (I know it's the case with Appcelerator and suspect MonoTouch doesn't do it any differently); but these are actively outlawed by the new paragraph 3.3.1: (emphasis added)
Applications must be originally written in Objective-C, C, C++, or JavaScript.
Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.
Makes it harder for people to port apps to Android if they are written in Object C. Apple figures that the iPhone is priority #1 for everyone developing a mobile version, so they can use their TOS to raise the cost of supporting priority #2.
Comments
Why Apple did what they did: to hurt Adobe, to hurt Android.
Why they're not concerned about the collateral damage: because they really don't care whether small developers have access to the platform or not, they're more interested in having more AAA titles.
I'm pretty sure everyone who thinks it was arrogant, hostile, and stupid of them to do such a thing understands why Apple did it. Everyone also understood why Microsoft spent a great deal of time forcing OEMs to offer only their software.
I get the point about Adobe, but Android?
Flash could have made it easy to target iPhone and Android with very similar code bases.
Now, developing for one, doesn't making porting to the other so simple.
It forces small developers to ask: bigger market or open market?
I really hope the open market (Android) wins this. I'm not looking forward to Steve Job's (similar to Bill Gates') vision of the marketplace.
Using translators it would be possible to create a sort of meta-platform that could compile to both iPhoneOS and Android. A clever developer could make an SDK that abstracted the differences in the platforms and made it easier for developers to support both platforms by using the same codebase for the same apps on either. By making it more difficult to support both at the same time, Apple may be hoping to keep more developers on only their platform and retain the edge that they have over Android.
That's what quite a few programming platforms already do (I know it's the case with Appcelerator and suspect MonoTouch doesn't do it any differently); but these are actively outlawed by the new paragraph 3.3.1: (emphasis added)
Applications must be originally written in Objective-C, C, C++, or JavaScript.
Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.
Makes it harder for people to port apps to Android if they are written in Object C. Apple figures that the iPhone is priority #1 for everyone developing a mobile version, so they can use their TOS to raise the cost of supporting priority #2.