Apple iPhone SDK Agreement: “No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and builtin interpreter(s)… An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise.”
There’s a fund, though. Wait, not that one. This one.
Update: Greetings Wired readers. I too am disappointed that Apple is too chicken to comment.
March 6th, 2008 at 9:49 pm
Your title is a bitch of a stretch, don’t you think? The words “apple bans” are particularly unnecessarily incendiary.
March 6th, 2008 at 9:49 pm
OpenMoko FTW.
March 6th, 2008 at 10:02 pm
What a shame.
I dont intent to code for any apple stuff anyway, but it shows that Apple is just the same copy-cat as Microsoft is (i.e. for example with their XNA), and the only reason to outright forbid other languages is because Apple does not want to cannibalize on their efforts.
March 6th, 2008 at 10:08 pm
@Chris,
I’m not sure what you mean. All of the software I listed is disallowed by the terms of the iPhone SDK agreement. I’m having trouble thinking of interesting software that is allowed!
March 6th, 2008 at 10:46 pm
i’m impressed at how you added more sensation to the title.
before: Apple Bans Firefox, SpiderMonkey, Lisp, Lua, Ruby, Python, Rhino, Java, Opera, .NET, Squeak, Quake, Second Life, GCC, GNOME, KDE
after: Apple Bans Firefox, SpiderMonkey, Lisp, Lua, Ruby, Python, Rhino, Java, Opera, .NET, Squeak, Quake, Unreal, Second Life, GCC, GDB, GNOME, KDE, Photoshop, Word, Excel, Flash, Freetype and Zork
not bad. sensationalism ftw!
did you ever really believe apple would “allow” some of those? gnome, kde? really? … really? i wish my openmoko device would “allow” me to run os x or windows…
and did you believe that adding more overhead to the os (lisp, lua, ruby, python, java, etc) would be something apple would do? .net? come on.
some of those apps can be stripped down and will run just fine on the iphone. photoshop, word, excel, etc. you wouldn’t want to put the entire apps as they exist in their desktop forms on the iphone anyway.
just because you don’t like closed systems (a perfectly fine thing) doesn’t mean you need to get all sensationalist on apple’s ass.
March 6th, 2008 at 11:26 pm
“sensationalism”, I’m pretty sure that the point Rob is trying to make is that many, many, many apps depend on some form of framework, or ship their own scripting or plugin interface (as evidenced by the title of this blogpost). None of these are allowed per the iPhone SDK agreement, and it thus presents a rather giant barrier to porting or rewriting any kind of similar app for the iPhone. And as Rob points out in the comments, that means there are very few exciting apps left that you could possibly run on the iPhone.
March 6th, 2008 at 11:30 pm
@markus,
um. you’re wrong about microsoft. they have pluggable apis for scripting. See IActiveScript.
http://msdn2.microsoft.com/en-us/library/ky29ffxd(VS.85).aspx
i’ve accidentally found haskell support, but i know of ruby, perl, python, and even D(”dmdscript) in addition to their base of VBScript, JScript
March 6th, 2008 at 11:38 pm
You are in an open field west of a big white house
with a boarded front door.
> wait
Your iPhone has begun to glow very brightly.
> wait
A strange little man in a long cloak appears suddenly in the room. He is wearing a mock turtleneck shirt embroidered with astrological signs.
The Wizard draws forth his wand and waves it in your direction. It begins to glow with a faint blue glow. The Wizard seems about to say something, but thinks better of it, and peers at you from under his bushy eyebrows.
> tell wizard “firefox”
The Wizard retreats, waving his wand and chanting. He says, “Fear!” Nothing happens! With a terrified glance at the lizard, the Wizard runs past you and
out of the room.
March 6th, 2008 at 11:42 pm
I’d say, let US decide on what things WE want to run on OUR machines. If we can get them to work, why not? Apple should not forbid any person to run/use/execute any API/software/code the person wants. Who gets to decide on what’s inefficient or not? Apple? I don’t think so. I’d say, experimentation and experience should decide that. And I should really want to EXPERIENCE the machines myself.
The actual truth is that, technical difficulties should not get in the way of freedom. People should have the freedom for the machines they use. And not be bounded by the artificial restrictions that manufacturers impose through the machines. We should own technology and not the other way around…
March 6th, 2008 at 11:44 pm
I think you missed the key word “downloaded” in that phrase. The way I read that is that they are banning downloaded scripts and plugins (which is not great in and of itself), rather than banning the use of interpreted languages for apps.
March 7th, 2008 at 12:27 am
You’re an idiot. They’re not allowing your code to download and execute other code. They don’t want you writing something that can be used as back-door installer for unsupported applications.
March 7th, 2008 at 12:58 am
Doesn’t this ‘ban’ any application having a web view downloading javascript?
March 7th, 2008 at 1:12 am
@Gijs
“there are very few exciting apps left that you could possibly run on the iPhone”
The OP said:
“I’m having trouble thinking of interesting software that is allowed!”
The OP may be right… he can’t think of interesting apps that don’t require scripting languages or plugins. You, on the other hand, are not. There are zillions of interesting and awesome apps that can be written without either. I could easily rattle off 10 apps I’d buy for my iPhone.
All the bove rules say is completely reasonable and prevent bloat and malicious software.
March 7th, 2008 at 1:22 am
I don’t like that wording, but honestly the last thing I want to do is run most of those on my phone. Battery life isn’t THAT great..
That being said, some of those are sort of available with jailbroken phones now (e.g. ruby, tcl).
March 7th, 2008 at 2:06 am
[...] applications such as Firefox appear to be banned by Apple’s iPhone SDK license agreement: No interpreted code may be downloaded and used in an Application except for code that is interpreted… An Application may write data on a device only to the Application’s designated container [...]
March 7th, 2008 at 2:10 am
@Daerd,
“I’d say, let **US** decide on what things WE want to run on OUR machines.” (Emphasis mine)
US is right, considering us Canadians can’t develop for the iPhone at all, per legal restrictions.
March 7th, 2008 at 2:12 am
Exactly. They don’t want you to make a Circumventer.app that acts as a replacement App Store, downloads arbitrary executables off some pikey bit of the web, then runs them on its own certificate. While perhaps annoying, it’s not surprising. It doesn’t ban most of those applications listed, as long as the bytecode they run ships with (and thus is vetted for being malicious, pr0n etc at the same time as) the application itself.
It does mean that if you shipped Unreal (as if…) you couldn’t download user mods without shipping a seperate package through the App Store. But it doesn’t stop you shipping it in the first place.
And, frankly, if you were shipping Unreal, you could probably negotiate an exception to the deal with Apple. They do have people there, you know, that you can talk to.
March 7th, 2008 at 3:02 am
Maybe you should ask Apple about thoses Apps, “interpreted” is vague for me. I imagine Adobe or Microsoft or Mozilla can make pressure on Apple.
… “Apple Bans Firefox, Flash, .Net, Photoshop, GNOME, KDE, Second Life” … and nothing of value was lost.
March 7th, 2008 at 3:11 am
who cares – it’s apple. if you want to develop stuff for them, go for it, otherwise choose another (free) platform
March 7th, 2008 at 3:37 am
[...] e quelle in grado di eseguire codice interpretato. Quest’ultima scelta ha già provocato alcune critiche in quanto esclude la possibilità di sviluppare alcuni generi di applicazioni per iPhone [...]
March 7th, 2008 at 3:49 am
“it shows that Apple is just the same copy-cat as Microsoft”
Microsoft would never put a ban like this in place.
March 7th, 2008 at 4:10 am
OpenMoko _does_ allow you to run OS X or Windows, if you’re able to get it to build; there aren’t any “how you do it” barriers put in place, just good old technical feasibility. And we know that scripting languages are technically feasible on the iPhone, since there’s already at least one there. Nobody is saying that Apple needs to ship Python out of the box[*], but saying “you’re not allowed to run code X, because it’s extensible, but single-function code Y is fine” is just protectionism. Certainly that section is a complete injunction against any other browser coming to the platform, let alone one that offers massive extensibility. You know, in case people wanted one.
[*] Though…Apple is sure to advertise that the iPhone is a full OS X (http://macdailynews.com/index.php/weblog/comments/13800/) and that OS X has great support for dynamic languages (http://www.apple.com/macosx/technology/unix.html), but nobody else is allowed to bring those OS X technologies to the iPhone, let alone having them there to begin with.
March 7th, 2008 at 4:19 am
the apps on this list are not banned. One could port Photoshop and Firefox to the iPhone If they used Objective-C.
March 7th, 2008 at 5:36 am
@Jo: Firefox and Photoshop have plugins and extensibility.
@Rob: you forget to mention that Apple has explicitely banned from the future AppStore all VoIP software…
March 7th, 2008 at 5:40 am
“Your title is a bitch of a stretch, don’t you think? The words “apple bans” are particularly unnecessarily incendiary.”
It’s cute, the way people react to criticism of Apple the way fundamentalists do to criticisms of their religion. A simple statement of unflattering facts is called inflammatory because it makes the zealot uncomfortable. It is only incendiary to those experiencing cognitive dissonance.
March 7th, 2008 at 5:53 am
They are allowing C/ObjC/C++ applications. This is self evident if you watch the keynote. Python, Ruby, Lua etc. are all just C applications.
I have to agree that this is nothing but sensationalist garbage.
March 7th, 2008 at 6:09 am
I am sure you might have a little bit of a problem trying to run photoshop on your iPhone?
March 7th, 2008 at 7:00 am
@Mark Smith: When you understand very little about something, it’s best not to say anything.
They are locking out anything that could perform an end-run around their iTunes distribution monopoly.
A program that executes in a runtime is mere data to everything else. The iTunes loader will block unsigned executables, but if a signed runtime environment, say, for example, Java, Flash, Android, .NET, Ruby, etc. ever got on the device, there is nothing to stop people from downloading programs to the device over the network. Because as far as the operating system is concerned, you installed one program – the runtime executable and its libraries – and that program is manipulating its own data.
It’s actually a pretty good idea. Apple should enforce the same restrictions on all their computers. The greater complexity of writing native code ensures less diversity in the market to compete against and higher salaries for programmers.
March 7th, 2008 at 7:26 am
They are also C applications that allow you to download and dynamically execute all sorts of code.
One thing should be clear to all of you here, and that’s that Apple is not allowing open development here. This is not going to be like Android where anything you can stuff on your phone is OK with Google.
Some of these would be able to get through on a technicality, like Excel and Photoshop, but don’t anyone kid themselves that Apple is going to allow people to write their own language bindings for this environment.
March 7th, 2008 at 7:37 am
eff apple
they could have been where PCs are now, but instead wanted to be greedy
March 7th, 2008 at 8:01 am
This is pretty disappointing. I used to enjoy coding with LispMe, a Scheme interpreter for the Palm Pilot. You could write up a little program, download it as a memo, and run it. I thought it would be cool to have something similar on the iPhone, but it seems explicitly disallowed now.
March 7th, 2008 at 8:09 am
I can see why they are doing it and the average joe iPhone owner won’t ever be aware. Those that do care will have android handsets to hack very soon.
However is this not lining Apple up for a Microsoft/IE type EU shakedown at some point in the future if the phone takes over the world as they plan?.
March 7th, 2008 at 9:28 am
I am not so sure that Apple should be the one dictating what is acceptable on ‘your’ phone. But again, this is classic Apple Inc. tactics, it’s just one that I am not forgiving of.
If the company thinks for a moment that this will stop the jailbraking, I do believe that they have another thing coming. The community at large will continue to come up with more inventive apps due to having no barriers to work under. If anything, Apple just made things worse.
March 7th, 2008 at 11:20 am
It’s funny listening to apple fanfags bitch about sensationalism.
DIDNT YOU HEAR THAT OS X IS THE MOST ADVANCED OPERATING SYSTEM IN THE WORLD?
March 7th, 2008 at 12:36 pm
Please correct me if I’m reading the agreement incorrectly*, but it seems that several scenarios of running foreign code are permissible. For example an application might use the Apple provided Javascript interpreter or LLVM to run code selected by the user -including from external sources- so long as that code is cached and run within the thread of control of the application.
Note: “install” and “launch” have specific meanings in Apple’s lexicon which doesn’t seem to contravene Black’s law dictionary.
March 7th, 2008 at 3:28 pm
[...] Forget it.Looks Apple’s powermonger surprised everything this [...]
March 7th, 2008 at 3:32 pm
The phone is yours to do whatever you want, but the code it runs under still belongs to Apple to restrict as they wish.
This is like complaining that an Xbox or PS3 doesn’t work with competing game formats.
March 7th, 2008 at 3:37 pm
I know I’m just repeating the crowd, but WTF is with the sensationalist title? How about “Apple disallows interpreted code on the iPhone”.
(insert long string of embarassingly immature but none-the-less necessary explicatives here)
March 7th, 2008 at 7:56 pm
Eric said, “I could easily rattle off 10 apps I’d buy for my iPhone.”
I notice, however, that no list was rattled off. I’d love to see it.
And, hey, since HE can still find apps he’d buy for his phone, he’s totally okay with everyone else being denied the ability to run the apps they want to. I mean, why should he care? That is, until they start shutting down his apps.
March 7th, 2008 at 8:39 pm
[...] applications such as Firefox appear to be banned by Apple’s iPhone SDK license agreement: No interpreted code may be downloaded and used in an Application except for code that is interpreted… An Application may write data on a device only to the Application’s designated container [...]
March 7th, 2008 at 10:10 pm
Wait, no ScummVM then?
No DOSBox?
No FreeSCI?
I see Photoshop, but what about the GIMP?
Apple knows best, you run what they let you run. As some apologists here believe, its the best choice.
Apple’s OS might be made with Free Software and Open Source, but the end result certainly is not.
March 7th, 2008 at 10:15 pm
J Cripes:
“The phone is yours to do whatever you want, but the code it runs under still belongs to Apple to restrict as they wish.
This is like complaining that an Xbox or PS3 doesn’t work with competing game formats.”
Ugh… Not at all. The machine is capable of using this software. It would be the case if the XBox and PS3 had identical hardware, and the xbox has some DRM that says
only play Xbox games, and the PS3 same deal. You know, like that one OS that only installs on intel boxes when it has EFI? What’s it called again? From Apple I think.
As for your initial statement, that’s double speak. Sure you can use the phone as a paper weight, or sit on it. But run software it CAN run, but WON’t. Isn’t any sort of free.
March 8th, 2008 at 3:14 am
@Anonymous:
I didn’t mean “US” as in US of A. I meant “US” as in “us”. You know, the pronoun; the objective case of “we”.
March 8th, 2008 at 10:54 am
Thats funny, Shun the technology that is the core of your whole operating systems. Pffft. Sounds…”Poli-tech-cal”
March 8th, 2008 at 2:16 pm
Has anyone considered the possibility that there are actually some valid security considerations behind this?
March 8th, 2008 at 5:28 pm
The implications of this very depending on how you interpret Apple’s statement. Taken literally, I think it’s only saying your program can’t download and install other programs.
The person who said Apple has banned VoIP is incorrect. In fact Apple said VoIP will be allowed, but probably only over the 802.11 connection, not the cell network. http://www.tuaw.com/2008/03/08/apple-to-allow-voip-on-iphone/
March 10th, 2008 at 12:39 pm
[...] a member of the Firefox development team has already noted, this is a big [...]
March 11th, 2008 at 6:56 am
[...] Update: Madness from Apple [...]
March 11th, 2008 at 9:40 am
Taking into consideration that the iPhone is both cellphone and a mobile computer, the only major security consideration I can think of revolves around an application dialing out on its own. In any given scenario, a perfectly legitimate-looking application could be run which then decides to dial “911″ or other “900″ numbers in the background or while you’re not paying attention. I doubt this is or ever even was an actual problem. But if it is possible, it would prove itself as a potentially serious security issue.
March 12th, 2008 at 2:49 am
[...] This limitation does not only affect Java ME but a wide range of software like for example Firefox browser. If it has caused quite a bit of frustration-venting, like this one from Mozilla’s Rob Sayre: Apple Bans Firefox, SpiderMonkey, Lisp, Lua, Ruby, Python, Rhino, Java, Opera, .NET, Squeak, Quake, Unreal, Second Life, GCC, GDB, GNOME, KDE, Photoshop, Word, Excel, Flash, Freetype and Zork (read) [...]
March 13th, 2008 at 5:58 pm
[...] that unless an app is using webkit, it may not be able to run. Mozilla developer Rob Sayre wrote a blog post about how Apple is banning Firefox, SpiderMonkey, Lisp, Lua, Ruby, Python, Rhino, Java, Opera, .NET [...]