views:

424

answers:

6

According to this post on Daring Fireball a new iPhone SDK Agreement release in conjunction with the iPhone OS 4.0 announcement today specifically bans any iPhone application not implemented in C, C++ Objective-C or JavaScript. The clear impact here is to the wide array of programs written in languages other than those.

Is that your reading of the clause in the new agreement as well?

Update: Here is the clause as printed on Daring Fireball:

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

A: 

Sadly, yes. That is my reading as well.

SamB
A: 

Yep it sure looks that way to me too. My guess is that it was written to stop the whole Adobe CS5 Flash to iPhone app export thing. Kinda sucks for Adobe if that is true since Adobe is releasing CS5 in a few days.

jamone
Yeah, I think it's about monotouch and CS5.
DenNukem
+1  A: 

Apple has had a ban on interpreted languages on the iPhone for a while now, but yes, I suppose this makes the ban more clear and more precise. I imagine that yes, Apple is saying that if you use a language other than C, C++, Objective-C, or JavaScript, you run the risk of having your app rejected from the App Store on those grounds.

mipadi
Is Javascript not an interpreted language? :)
Billy ONeal
@Billy: Javascript when not interpreted by WebKit, apparently, yes.
fbrereto
Ha! Touché. What I mean to say is "interpreted languages that require the interpreter/runtime to be packaged by the developer". :) Or perhaps, "interpreted languages outside of the browser", since I don't think you could build a non-browser app in JavaScript for the iPhone (but I could be wrong).
mipadi
A: 

There is also the option of C# with MonoTouch. I believe that it allows you to use any language that emits valid CLI bytecode, but don't quote me on that.

http://monotouch.net/

Graham Gimbert
Well, did you read the linked page? It looks like Apple is forbidding the use of such alternatives for some reason...
SamB
+3  A: 

This has been causing friction between apple and developers since they first opened up cocoa touch.

There was the Commodore 64 issue: http://gizmodo.com/5354422/commodore-64-iphone-app-approved-removed

The c-64 emulator allowed access to the basic CLI and was removed by apple.

There was also a lot of discussion on the Lua list: http://lua-users.org/lists/lua-l/2009-10/msg00015.html

Lua can be built on the iPhone arm processor from the c source so is this considered c or Lua?

Some applications using Lua have been accepted: http://tuomaspelkonen.com/2010/03/why-lua-truly-rocks/

Unity uses scripting languages as a part of its API and many Unity games have been accepted: http://unity3d.com/gallery/game-list/

...including Zombieville which "was recognized in Apple's iTunes Rewind 2009 as one of the top-selling games of the year".

I can't see them removing all of these games at this point.

What people have been most frustrated with is that there does not seem to be a single standard for what is accepted and what is not. Do big players like Adobe and Unity get special privilages to use scripting which smaller groups do not?

Nick
The previous agreement forbade apps that allowed the user to script them or for the user to download executable code. Although Unity3d contains a Javascript interpreter, it was OK because it was only running code that was shipped with the original app. For the same reason, Flash CS5 would have been allowed. The new agreement is a very blunt way of stopping Flash CS5, that just happens to take out a lot of other technologies. I actually wouldn't be surprised to find out that Apple hadn't even considered the implications of this.
U62
Opened up cocoa touch? This is the least "open" use of the word "open" in tech history. Oh wait. No it isn't. Remember the "Open Group". :-)
Warren P
A: 

It seems so. Apple just lost a fanboy.

Tuomas Pelkonen