I'm a developer. I've written code that runs on a number of different platforms. Over the past 15 years, I've specialized on the Microsoft, and specifically .NET, platform. I've watched the iPhone grow up over the past three years, and I've watched in envy as people seemed to really like the platform. However, given the amount of time, and time is money, invested in Microsoft's .NET platform, I've felt that the barrier to entry on the iPhone was too high. Learning ObjectiveC just was not/is not an option for me. Last spring, I heard about PhoneGap, and got interested in it. Then, last summer, my prayers were answered when Novell announced and then shipped, MonoTouch. MonoTouch allows .NET/C# developers to write code that runs on the iPhone platform. Awesome! Rock! And the danged thing actually works, which is even better!
I was so looking forward to hearing about the new iPhone OS Version 4. After all of the announcements, an issue has come up regarding the licensing of the new iPhone OS. Specifically, this clause says:
"Applications may only use Documented APIs in the manner prescribed by Apple and
must not use or call any private APIs. Applications must be originally written
in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit
engine, and only code written in C, C++, and Objective-C may compile and
directly link against the Documented APIs (e.g., Applications that link to
Documented APIs through an intermediary translation or compatibility layer or
tool are prohibited)."
The speculation about why this is here points to your ongoing issues with Adobe Flash. Now, I have no love for Flash. I find the video player to be a major CPU hog as you have stated. The problem is that in taking such a broad stroke in your licensing requirements, you have hit a number of other frameworks, including PhoneGap, Appcelerator's Titanium, Novell's MonoTouch, and other frameworks that allow developers to easily applications on the iPhone much easier than using ObjectiveC.
Now, I get why you want to restrict third party applications to only using documented APIs. I really do. However, this broad stroke is just too much. I'm not going to move to ObjectiveC. Why you want to ban apps because they were not written using your tools, I will never know. Good programmers can write good applications, using bad tools. Bad programmers, well, they just write bad applications.
I like your ideas to have a good platform and I like your commitment to end users and their experience. At the same time, Why do you keep giving me the big middle finger?