Apple’s announcement of the iPhone OS 4.0 and the release of the iPhone OS 4.0 SDK gives a lot of new things developers should be excited about but falls short in the big picture. One such nugget of information pointed out by John Gruber in the iPhone Developer Agreement:
In the new version of the iPhone Developer Program License Agreement released by Apple today (and which developers must agree to before downloading the 4.0 SDK beta), section 3.3.1 now reads:
In the case of .NET developers who mainly use C# to create applications, they cannot use MonoTouch to target the iPhone.
Apple is leaving a lot on the table here, in my opinion. This includes the entire pool of .NET developers who are proficient in C# and may not want to learn Objective-C but leverage the language they know using tools such as MonoTouch. This does not include all of the developers deep into Adobe Flash or other technologies which will not be able to port their applications to the iPhone.
This is clearly anti-competitive behavior by Apple. If developers don’t take a stand here then there are many applications that will not make it to the iPhone that should. I remember when Microsoft was in the spotlight for this type of action and they have been called out on it over the years and are always suspected even today.
I have been on and off of the iPhone development bandwagon and with the iPad coming along I see much opportunity for business applications but being forced to use a language such as Objective-C, no thanks.
Miguel de Icaza, creator of Mono and the lead on Monotouch is clearly anticipating Apple will let developers use Monotouch and therefore C# to create iPhone and iPad apps as seen in a recent tweet on Twitter.
We should be critical of Apple here and nip this now, before iPhone OS 4.0 comes out and we are forced to change programming languages to what Apple requires or be out of the game.