Crossing swords over cross-platform: Apple vs. Adobe Flash, C#, and Mono

It should come as no surprise to anyone that Apple is not a cross-platform tools company, nor a supporter of cross-platform technologies that would threaten to nullify Apple's baked-in advantages -- only during the years Steve Jobs was not in charge had the company even considered opening up its platforms. So the strategy behind the company's reinforcement of its iPhone OS 4.0 licensing terms, first discovered by Daring Fireball blogger John Gruber last Thursday, is both obvious and unchanged: to direct the course of iPhone/iPod Touch/iPad development traffic directly, exclusively, and entirely through Apple's channel.

States the newly added paragraph: "3.3.1 -- 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)."

There are several shockers to this paragraph, assuming they are all to be read very literally (which, in the case of Apple, has never not been the case). The clincher, however, is the notion that anything you make to run on iPhone OS must be developed for iPhone OS, including Web apps. If you develop a Web app, it must be made for execution by iPhone's WebKit, even though WebKit is an open source rendering engine. If you develop a stand-alone app, even though it may use a standard language such as C or C++, it must link to nothing else but iPhone's APIs.

So you may use some standard tools, just in a different, prescribed way. For developers, that's like saying you can't use standard tools.
"The key is where they say, 'Applications must be originally written in Objective-C, C, C++.' Take a pause and think about what that 'originally' really means," wrote music media developer Hank Williams (no relation) on Thursday. "Developers are not free to use any tools to help them. If there is some tool that converts some Pascal or, Ruby, or Java into Objective-C it is out of bounds, because then the code is not 'originally' written in C. This is akin to telling people what kind of desk people sit at when they write software for the iPhone. Or perhaps what kind of music they listen to. Or what kind of clothes they should be wearing. This is insane."

The iPhone development channel is Apple's to direct as it will. Nevertheless, there's considerable outrage over how the company's efforts may counteract those of legitimate supporters who had been working to steer mainstream phone app and Web app development Apple's direction.

The keynote was sounded Friday, when Adobe Platform Evangelist Lee Brimelow, in a blog post that simultaneously made clear he was speaking for himself and bore the official Flash logo, flipped Apple the bird: "What they [Apple] are saying is that they won't allow applications onto their marketplace solely because of what language was originally used to create them. This is a frightening move that has no rational defense other than wanting tyrannical control over developers and more importantly, wanting to use developers as pawns in their crusade against Adobe. This does not just affect Adobe but also other technologies like Unity3D...Speaking purely for myself, I would look to make it clear what is going through my mind at the moment. Go screw yourself Apple."

For his part, Gruber commented Thursday that he understands the reasoning behind the company's move, and in a well-reasoned analysis, concluded that iPhone users may end up winning in the end: "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."

Adobe Flash engineer Adrian Ludwig demonstrates a Flash app appearing in Apple's iPhone App Store for the first time.

In October 2009, an Adobe developer shows a Flash application appearing in Apple's App Store -- a provision which Apple will no longer continue to make.


Someone who knows from personal experience how Steve Jobs thinks on the matter is former Apple products division President (later founder of Be, Inc.) Jean-Louis Gassée. In a blog post Sunday evening that employed one of his trademark metaphors (you just have to read it for yourself), Gassée also made clear he understood exactly where Jobs was coming from, and that he doesn't look so insane: "Steve Jobs has seen enough in his 34 years in the computer business to know, deeply, that he doesn't want to be at the mercy of cross-platform tools that could erase Apple's competitive advantage...Does anyone mind that Jobs won't sacrifice the truly strategic differentiation of the iPhone platform on the altar of cross-platform compatibility? Customers and critics don't. They love the end-result."

But if there's anyone who absolutely knows 100% of the time where Steve Jobs is coming from and where he's going, it's Steve Jobs. Usually uncommunicative with the press, Jobs did take the time to respond by e-mail to Greg Slepak, whose company Tao Effect makes utility software for Mac. In an exchange that began with Jobs' signaling his appreciation of John Gruber's post, Slepak wrote to Jobs, "From a developer's point of view, you're limiting creativity itself. Gruber is wrong, there are plenty of [applications] written using cross-platform frameworks that are amazing, that he himself has praised. Mozilla's Firefox just being one of them. I don't think Apple has much to gain with 3.3.1, quite the opposite actually."

To which Jobs responded: "We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform."

One of the developers whose key product falls under the category to which Jobs referred, and was thus the target of his criticism, is Miguel de Icaza, whose Mono platform from Novell extends a .NET Framework-like runtime, and the ability to write in C#, to both Linux and Macintosh. The MonoTouch package extends some of that capability to the iPhone platform. De Icaza provided some comments to Betanews late this morning, which we'll present shortly.

© 1998-2014 BetaNews, Inc. All Rights Reserved. Privacy Policy.