OS4.0 and the Clause of Doom

There much rhetoric on the 'net at the moment regarding clause 3.3.1 from the OS4.0 license agreement which appears that, by demanding that all iPhone apps are written using Objective-C, C, C++ or Javascript, it prohibits the use of MonoTouch, Unity3D, Flash CS5, and several other tools.

There's an interesting blog post by John Gruber that goes some way to explain, in his opinion, why Apple changed that clause. All sound reasoning with one exception, John argues that part of Apple's reasoning for this is to ensure that iPhone apps are locked into the platform. Apart from the fact that apps written with MonoTouch can't be loaded on any other platform without serious work, i.e. rewriting, Apple are effectively shooting themselves in the foot.

By forcing developers to either develop for iPhone or not they are going prevent a lot of great apps coming to the iPhone, or at least make sure that other platforms are well ahead of the iPhone when said apps do make it. I was very excited about MonoTouch, I'm primarily a .Net developer and particularly a developer without the time to invest in learning Objective-C. MonoTouch offers me a way to join the iPhone platform without such a huge learning curve, yes, I still have to learn CocoaTouch (as MonoTouch does so much layer over it but interface with it) but it's less than a rather abstract paradigm of a C implementation with objects. The C programmer buried within me wants to spit on the floor at that concept (yes, I know that's what C++ is in essence but the constructs seem more intuitive to me).

Without being able to see Flash CS5 and how it implements iPhone application generation, is it just Actionscript on iPhone or is it a Flash projector for iPhone, it's hard to properly judge the target of Apple's machinations. We've all got a good idea on this but if this is the case then it seems rather anti-competitive and blatantly so, in that, good luck Apple, I hear the sound of a tidal wave of legal paperwork crashing your way.

The good news is that this is the Beta of OS 4.0, Apple still have time and opportunity to relax that clause; to return it to it's original form and make everyone happy. I'll be honest, even as a Flash developer (a large part of my income of the past few years), I've no plans to make use of CS5 for iPhone development so there I'm indifferent; however, C# is important to me and it should be important to Apple. Mono and MonoTouch have the potential to allow us to develop apps for Windows, Linux, OS X, iPhone, iPad, etc. albeit without full cross-platform libraries, but with a common paradigm for the underlying language which has got to increase the potential for iPhone/iPad/iPod apps many fold.

Come on Apple, be the adult here and re-open this market to broader innovation.