Apple forbids Python on the iPhone/iPad

They give you features a,b,c,d and then remove all except a.
I don’t own or am interested in developing for that device, but ‘bashing’ in this case I can perfectly understand. If microsoft or sony did something similar, we would think the same way, what makes you think the opposite?

The Windows 7 EULA reads,

“Thou shalt not have any browser before Internet Explorer.”

OK, there I was looking more informed than I am. I am not familar with the technical issues. What I am aiming at was 1) on a homebrew PSP, jailbroken iPhone or whatever platform thing might work, but that’s a hobby, not a market; 2) thanks to approval processes, fees and dev kits and all that developers on all kind of platforms are restricted to certain paths.

I am very sure that Apple is aware they’re hitting the wrong people and that they’re working on a new wording. Couldn’t the people behind Panda, Unity or Torque - who are at least affected by the ambiguity created - write a letter to Apple about this? Apple cares about games on the platforms (ok, this argument also goes for Flash development) and also about education. With Carnegie Mellon ETC on that letter you got both.

I am not sure if I understand you correctly. But I would say Apple gets special treatment for this kind of behavior.

  1. People still can’t stand that Apple - similar to Google - is “evil”, that is, behaving capitalist in a capitalist world. It was Apple’s marketing that pretended otherwise. Sure Apple’s history is different, sure some people at Apple honestly care, but as a corporation in a once in a lifetime early market? No chance. 1997 is forgiven, but not forgotten.

  2. For other companies you would not get that kind of backlash since people are used to Sony and Microsoft being “evil”. I don’t see a 360 or PS3 as an open platform, even though services like XBLA provide a low end way of deployment. And the most extreme example, people praise Nintendo for their restrictive handling of third parties, because they “understand the market”, refering to their learning from the video games industry crash. I guess Nintendo is perceived the least “evil”.

And I guess that the “evil” argument is besides the point in the current Apple case. In the end they didn’t do it to lock Adobe out but because “user experience” is their holy grail and they feared apps coming from Flash would be sub-par. Now they’re also saying it has something to do with Apples multitasking technology, so maybe in the end it’s all for technical reasons.

  1. I would also speculate that there’s a deeper underlying hatred against anything Apple. I am a Mac user for a while now, and whenever Apple has released whatever product, it has been ridiculed to death by the (it seems) hard core Windows crowd. I could run down history about this to no end. More recently, when the iPhone was originally announced it was laughed upon for not allowing real app development, just web-based apps. When the SDK came some made the argument, that developers would not learn Objective-C to program on a over-priced, small user numbers platform. I would argue that Apple customers do not show that kind of aggression. When Vista came out the harshest criticism it had came from XP users. I mean Apples own “Get A Mac” comparison marketing was relatively friendly, same for anti-Zune reactions.

I am not so happy that Apple has decided that python is not acceptable to program with, but I can always learn yet another language and use it. I am concerned about what it says about having to have it originally created on one of the pre-approved languages.

If I am reading this right this means that I can’t port anything I made in python to one of the pre-approved languages, or am I wrong?

Is any one looking into seeing if panda with C++ can be used? I would really like to do some iphone dev using a game engine I already know.

David, if you aren’t already on it, could Disney somehow get confirmation from Apple on Panda/C++'s legality? I don’t think it would be hard considering the relationship, though it may take time for Apple to make their mind on this. (I’m pretty sure they didn’t have 3d engines in mind when making this policy, these don’t have standard GUI elements and the “usability” justification doesn’t apply.)

In the meantime, I’m pretty sure that it’s allowed:

This is the controversial clause:

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

Panda/C++ is not:

  • An “intermediary translation layer”, since there’s only one compilation step to produce the final output. “Compilation” here including any form of lexical or semantic analysis of instructions in order to translate them to another form of code.
  • A “compatibility layer”. A panda app has no practical use other than being a Panda app, so there’s no compatibility goal to achieve, like say: getting a pre-existing standalone flash app to run on the iPhone. The difference is subtle, so to clarify: in the flash case you would be making an app that used to run on browsers compatible with the iPhone application environment. On the other hand Panda intrinsically supports any ARM platform by its own nature.
  • A “tool”. Again, everything is built once, so no tools involved, in the traditional sense of “tool”.

But those are exempli gratia so let’s look at the broad requirements:

  • “Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine.” A Panda/C++ app fulfills “written in C++”, so check.

  • “Only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs.” Both Panda and the application code are written in C++, so check.

So personally, I’m positive Panda/C++ is in the clear. However, I would like very much to have official confirmation like others.

I don’t see it :confused: