Linked by Thom Holwerda on Thu 8th Apr 2010 22:38 UTC
Apple John Gruber has found out that cross-compilers are no longer allowed in iPhone OS 4.0. "My reading of this new language is that cross-compilers, such as the Flash-to-iPhone compiler in Adobe's upcoming Flash Professional CS5 release, are prohibited. This also bans apps compiled using MonoTouch - a tool that compiles C# and .NET apps to the iPhone. It's unclear what this means for tools like Titanium and PhoneGap, which let developers write JavaScript code that runs in WebKit inside a native iPhone app wrapper. They might be OK."
Thread beginning with comment 418017
To read all comments associated with this story, please click here.
Monopolistic practice
by siki_miki on Fri 9th Apr 2010 12:45 UTC
siki_miki
Member since:
2006-01-17

This move shows that Apple is very afraid of Android, WinMo7 and Blackberry app markets. It's a full blown platform war for world dominance (also a disaster for Adobe). But the move (revoking some memories of evil Microsoft) can be dealt with.

First, you need to write applications in C/C++ or even Obj-C.

Keep all platform interfaces encased with ifdefs. By using a text preprocessor, you can strip suspecting ifdefs before submitting to Apple.

Of course, one also needs something to translate to language (or VM bytecode) used by other platforms. This is the hard part as iPhone's apps use native language, so it won't work with some features of C/C++/Obj-C. I wouldn't be surprised if Google is already working on something like this. Yes, it requires extra work to do your app this way instead of using cross-platform libs, but it's worth it if you manage to support iPhone+ other platforms while competition can't.

If in any scenario Apple starts to loose the mobile platform war, this will loose them many developers and they will have to revert the decision.

Reply Score: 3

RE: Monopolistic practice
by mutantsushi on Fri 9th Apr 2010 17:44 in reply to "Monopolistic practice"
mutantsushi Member since:
2006-08-18

This is the totally absurd part, because as you point out the language restriction really does almost nothing to prevent cross-platform programming, it is just penalizing LANGUAGES which may be easier to program with, even for SOLELY Cocoa-focused apps (e.g. using MacRuby, Haskell, etc).

I think what Apple wants is for people to be targetting it's libraries, rather than using 'converters' like Adobe is promoting which just reconstruct designs to fit Apple's libraries rather than target them from the get-go, but they're really taking a shot-gun approach here by banning people using alternative langauges who may very well be directly designing with Cocoa in mind. (Not to downplay the fascism of restricting non-Apple libraries in the first place)

Not to mention that nobody can seriously expect them to consistently implement this, given OpenGL game engines and their own MacRuby project(!).

Seriously, the platform I see with the most promise at this point besides OSXTouch is MeeGo using... C++ and QTScript (Javascript). So this move is effectively going to help MeeGo by making MeeGo the only platform with language compatability with Apple's licence...

Reply Parent Score: 2