3 ms·
Although I am amongst the first to disagree, maybe not necessarily with Apple's goal, but certainly with the language they are resorting to to achieve that goal
by lurch_mojoff 17y ago
Although I am amongst the first to disagree, maybe not necessarily with Apple's goal, but certainly with the language they are resorting to to achieve that goal, I have to object to the following statement:
What I believe programmers are truly angry about is that Apple broke their long standing promise of supporting multiple languages when they originally attracted them to the platform. They're really saying:
"You told me if I bought a mac, and an iPhone, and an iPad, that you would create LLVM and MacRuby and Python bindings so I can code in my favorite language. You lied!"
Nobody is really saying that because neither Apple nor any of their employees have ever told anyone such a thing. On one hand the ban of interpreted code, except for Javascript, has been there since day one, so no sane programmer has had the illusion that they can use Ruby, or Python, or whatever to write iPhone apps. And on the other hand there is absolutely nothing preventing Apple from amending that clause in the license agreement once the technical limitations, e.g. garbage collected Objective-C runtime, behind toll-free, ahead of time compiled wrappers like MacRuby disappear. Especially since MacRuby in particular is an Apple run project.
- anonjon 17y agoNo, I think the problem is that until now it was a kind of a tacit assumption by developers that no company is really interested in restricting something as arbitrary as the way that you code. I see this as a sort of bizarre breach of social norms on apple's part. I thought that the rule against interpreted code was a little weird from the start. I understand the reasoning behind it (you can't very well allow someone full use of what you sold them, it would be anarchy). But now, you also can't use other non-interpteted languages. From the perspective of anyone who knows anything about computing, compilers, programming etc. It seems completely nuts. The only real difference is that in a better language I have an easier time writing the damn code.
- glhaynes 17y agoThe ban that was there since the beginning wasn't against all interpreted code, was it? It was against being able to run interpreted code that wasn't originally shipped with the app. So I don't think (before the recent 3.3.1 changes) that Ruby or Python would have been against the rules. Please correct me if I'm wrong.
- glhaynes 17y agoCommodore 64 app is still on the App Store. It was taken off briefly when it was found to be able to run interpreted code that wasn't originally shipped with the app (specifically, code the user typed into the emulated C64's BASIC interpreter). So it's hard for me to see why an app that was written in Ruby or Python would have been disallowed before the recent changes. And it seems the C64 app (the one that's up now, that can't run arbitrary code) will be disallowed after these changes go into effect.
- steve19 17y agoLots of other games are ports using VMs. Escape from Monkey Island is one notable example. Another is the Frotz (interactive fiction) port for the iPhone.
- glhaynes 17y agoYeah. It's going to have to be reworded ... or, at the very least, a statement issued clarifying what's meant to be included vs. what isn't (a Steve Jobs "executive signing statement"). I'd sure like to hear ideas of how that could be worded. I strongly doubt they'll back down and allow the Flash compiler at this point. But they obviously want to keep Monkey Island, and perhaps even Unity 3D. How could they possibly word a new version of the clause to make this distinction clear? Can a formal distinction be made?
- lurch_mojoff 17y agoActually you are right, the ban (i.e. clause 3.3.2) that was there since the beginning was not against all interpreted code. Originally it said: "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. 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 built- in interpreter(s)."(emphasis mine) However it was changed, with OS 3.0 SDK I believe, certainly before the OS 4.0 SDK changes, to its current wording: "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. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built- in interpreter(s)."(emphasis mine) I still maintain my position that for quite some time now developers should have had no expectations to be able to write applications for the iPhone in Ruby or Python, or some other interpreted language or at least to be able to distribute them through Apple's app store. Although in reality there seem to be plenty of applications in there that have some scripting component or another.