Ole Begemann

iOS Development

Apple bans cross-compilers for iPhone development

John Gruber was the first to notice that Apple has apparently updated a crucial section of the iPhone Developer Agreement that practically crushes Adobe’s and other companies’ plans to offer cross-compilers that would enable apps developed on platforms like Flash or .NET to run as native iPhone apps. Thinking further about this, Gruber concludes that this is generally a good thing, not only for Apple but also for iPhone developers and users:

I can see two arguments here. On the one side, this rule should be good for quality. Cross-platform software toolkits have never — ever — produced top-notch native apps for Apple platforms. Not for the classic Mac OS, not for Mac OS X, and not for iPhone OS. Such apps generally have been downright crummy. On the other hand, perhaps iPhone users will be missing out on good apps that would have been released if not for this rule, but won’t now. I don’t think iPhone OS users are going to miss the sort of apps these cross-platform toolkits produce, though.

My opinion is that iPhone users will be well-served by this rule. The App Store is not lacking for quantity of titles.

Consider, for one example, Amazon’s Kindle clients for iPhone OS and Mac OS X. The iPhone OS Kindle app is excellent, a worthy rival in terms of experience to Apple’s own iBooks. The Mac Kindle app is a turd that doesn’t look, feel, or behave like a real Mac app. The iPhone OS Kindle app is a native iPhone app, written in Cocoa Touch. The Mac Kindle app was produced using the cross-platform Qt toolkit.

I disagree. And not because I think that a Flash-to-iPhone cross-compiler or MonoTouch is great to have (I really couldn’t care less), but because of other languages and environments the iPhone platform could profit from in the future. For example, I’d love to use Ruby both for iPhone development and even more as a dynamic language on the iPhone. To say it with David Heinemeier Hansson:

Being an asshole just because you can is not a sign of strength but of weakness. (re: Apple's new restriction on programming languages)