This article originally appeared in TidBITS on 2010-04-09 at 7:17 a.m.
The permanent URL for this article is: http://tidbits.com/article/11177
Include images: Off

iPhone Developer Agreement Change Bans Flash-to-iPhone Compiler

by Adam C. Engst

Along with this week's release of the iPhone OS 4 SDK, Apple made a change to Section 3.3.1 of the iPhone Developer Program License Agreement. Previously, that section read:

"Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs."

After Apple's addition, it reads as follows:

"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)."

That additional verbiage appears designed to block the use of certain cross-platform compilers such as Novell's MonoTouch [1], which compiles C# and .NET apps for the iPhone, and Adobe's forthcoming Flash-to-iPhone compiler [2] (there are actually four or five of these cross-compilers, not all of which will be affected). John Gruber explains the situation [3] well at Daring Fireball, and his followup article "Why Apple Changed Section 3.3.1 [4]" makes some good points about how cross-platform compilers have seldom resulted in top-notch Macintosh applications. Read his analysis for details, and be sure to check out Steve Jobs's related comments [5] in email to Tao Effect CEO Greg Slepak.

One aspect of the situation that John doesn't touch on is the legal firestorm that this change may engender. MonoTouch comes from Novell and Adobe has undoubtedly spent a huge amount of money on developing its Flash-to-iPhone compiler. Both companies have strong legal departments, and given that this change was made to a legal agreement, it seems entirely likely that we'll see these companies filing lawsuits against Apple for anti-competitive behavior.

However, it's important to remember that Apple isn't acting irrationally, as John notes:

"So from Apple's perspective, changing the iPhone Developer Program License Agreement to prohibit the use of things like Flash CS5 and MonoTouch to create iPhone apps makes complete sense. I'm not saying you have to like this. I'm not arguing that it's anything other than ruthless competitiveness. I'm not arguing (up to this point) that it benefits anyone other than Apple itself. I'm just arguing that it makes sense from Apple's perspective - and it was Apple's decision to make."

He's right. It would be nice to see Apple competing entirely on the basis of having the best products, but as Mac users know, the best product doesn't always win. Having been on the wrong side of that battle for 25 years, Apple isn't going give up any potential advantage in the brave new iPhone OS world.

[1]: http://monotouch.net/
[2]: http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/
[3]: http://daringfireball.net/2010/04/iphone_agreement_bans_flash_compiler
[4]: http://daringfireball.net/2010/04/why_apple_changed_section_331
[5]: http://www.taoeffect.com/blog/2010/04/steve-jobs-response-on-section-3-3-1/