Hacker News new | past | comments | ask | show | jobs | submit login
Hello, Lua. (Apple opens door to interpreters on iOS devices) (appleoutsider.com)
170 points by bbb on June 10, 2010 | hide | past | favorite | 49 comments



The title and blurb is misleading.

You need permission from Apple on an application by application basis. Interpreted code is to be used in a "minor way" for "minor features". Thus, writing an entire iOS app in an interpreted language (such as Lua) does not seem likely to be allowed.

I'm not a lawyer though. Of course, Apple is fickle and contradicts itself often. Indeed, I would not be surprised to find Titanium gets free reign and Corona does not, or vice versa.


Why go to all the work to embed an interpreter when it only has "minor" uses? I can't see any reason to embed something as large as Lua in a mobile app if you aren't going to make good use of it - I would think this would include only something like parsing/interpreting algebraic expressions, e.g. for a calculator. I guess since it's on a case by case basis though, it could mean anything, and they could decide it means something different than it originally did at a later date.


Well, consider a "Core Wars" game. The players program their entities using an interpreted language but the game overall is in Javascript, Objective C, or C++. That's the kind of thing they're talking about. It's minor in the sense of interactions with the API, but it may seem major in another sense that programming entities is the purpose of the game.


> Thus, writing an entire iOS app in an interpreted language (such as Lua) does not seem likely to be allowed.

Indeed, this is pretty much specifically tailored towards games (which are scripted using e.g. Lua but not entirely written in it) or things like emulators.

Apparently, Apple has decided to go over Jobs's dislike for games and let them grow further on the platform.


games are selling a lot of iPod touches.


Yes, but that doesn't mean Jobs likes games on his beautiful slab of glass. His initial reaction to them, back in the early days of the SDK (pre-release and right after release) was basically one of disgust.


The BBC Micro Men docu-drama touches on this aspect of the Spectrum vs BBC Micro competition in eighties Britain.

Sinclair is disgusted that his amazing machine is popular because of pointless games and Chris Curry is depressed because his machine has so few games and so becomes more niche.

Funny how history repeats itself

http://www.bbc.co.uk/programmes/b00n5b92


Exactly. And the blog's explanation of beign used for game scripting as a minor feature falls short: can anyone imagine what Half Life would be like without scripted events?


Imagine Half Life without 3d graphics. Now you see why scripting is a 'minor' feature.


Minor? Those scripted events are easily just as important as the 3d graphics. Without them it's just a fancy screensaver.


    Imagine Half Life without 3d graphics
It'd probably a fair bit like this: http://doom.chaosforge.org/

Ascii Dreams Roguelike of the Year 2009


I have altered the deal. Pray I don't alter it any further.


If we don't like parts of the deal as it stands and they altered one of those parts for the better, do we really want to pray that they don't alter it further? Witty quote and all, but it seems out of place here.


A bad deal that you can count on is better than a bad deal that keeps changing under your feet.


I find your lack of a basic sense of humor disturbing.


Perhaps you think the parent post is abusing HN guidelines unfairly? It would be a shame if I had to leave in a garrison of redditors here.


What? I didn't mean "out of place" as in it shouldn't be allowed to be posted here. Just that it didn't seem applicable to the situation.


Something like "you should explain a joke, it's like dissecting a frog. It's messy and the frog doesn't survive the process" went a quote whose original source or exact wording I can't find now.

For what it's worth I meant it in the sense that euccastro pointed out. Not that this particular change made things worse, but that entering into a deal which one of the parties can arbitrarily change doesn't make for the stablest of work environments.


Interesting. I'm surprised this change hasn't been covered at all by the tech press.

So does this 100% clear the way to use tools like Unity or Appcelerator? I'm particularly interested in Appcelerator (starting a droid/iPhone app in a few weeks) and there isn't a clear statement on their website about this change.

Update: I've emailed appcelarator about this change and requested clarification; I'll update again when I hear back.

Update 2: still no word from Appcelerator. I've spent some time digging through their forums and I think they just don't know what's going on either. It seems like they are just waiting to see what happens today when people start to submit iOS 4 Apps. I guess we'll know the answer becaus of this either way, hopefully soon.


No, absolutely not. It says in the article that this is not for platforms that completely "take over" the app. This change is for Objective-C applications that want/need to use Lua or other include languages for minor features, like how Tap Tap Revenge uses Lua for its immersive themes.


It's really just making their current policy explicit.


Apple will fight a losing battle if they specify mode of execution to limit frameworks. Sure it will slow others down, but what happens when someone creates a foo to objective-c compiler - for eg flash to objective-c or mono to objective-c.


> but what happens when someone creates a foo to objective-c compiler - for eg flash to objective-c or mono to objective-c.

They already exist and are specifically forbidden by the license (or were last time I checked): the previous update added the requirements that applications be originally written in a supported language, forbidding the usage of a cross-compiler.

Now I'm guessing if it's your own for your own stuff (think GOAL) it's going to fly unnoticed, but the minute a cross compiler gets enough traction, you can bet its binaries are going to be fingerprinted and banned on sight.


Stuff like this makes me very unhappy. Everyone programming in the same language and using the same frameworks. Sounds right out of a pink floyd video or an apple commercial from the 80s. To repeat a popular meme - the more I grow up, the more I realise that maybe the Sith were upto something ...


It's nice to see that Apple is starting to warm up to the idea of giving "express written consent" to apps doing things that might be considered to run afoul.

If that got implemented on a larger scale, the concerns of developers who say "I don't want to develop an app, then get it rejected with no warning" could be alleviated.

A step in a more moderate direction benefits everyone.


This might sound like big news but nothing has changed really. Apple has always accepted for example games that use Python or Lua invisbly as part of their engine.


Will Unity be allowed to include mono's .NET runtime as their scripting host then? There's little practical difference between that and a game scripted with Lua.


IMHO this doesn't help at all. The core issue is that I can't make an app that runs on multiple platforms. I know that cross platform is against Apple's best interest, but I just don't care. I won't be writing Apple applications.


I'd go so far as to argue that platform lock-in is only in a vendor's best interest in a narrow and relatively short-term way. In the long run, platform lock-in actually undermines the incentive to innovate and compete on merit. Eventually they became ripe targets for disruption and the cycle begins again. I think a rational actor with a 10-year investment horizon would want open competition to keep themselves honest.

Either way I applaud your decision.


C++ doesn't run on multiple platforms? How about Javascript? The core issue is that you choose not to make an app run on multiple platforms using the toolset that APple feels is in their best interests.

That's not a slight against either of you. Your point to Apple is that their platform will live without your app. Their point to you is that the other developers will divvy up the billion dollar cheque they're already written.


So nowhere explicitly is lua enumerated in the quote from apple. Is there any particular reason why the posted write up references lua as opposed to i dont know perl or erlang? Are there historical reasons for its preference, as the wiki on lua lists in its use in games?


You just answered your own question.


Hmm, so Gambit/Chicken Scheme are now fine again if you use them as interpreters, but beware of compiling the Scheme code down to C. This is bizzarro land - the interpreter will use more CPU time and therefore more battery power, one of the reasons Flash isn't included.


Correct me if I'm wrong. But this refers only to unsupported interpreted code right? Ruby for example, is OK according to this section?


Does this mean that I can finally fulfill my dream of porting my WOW add-ons to the iPhone?


[deleted]


Was there ever any doubt? If Apple has shown us anything, it's that they will kill your app for any reason they damn well please, and maybe they'll eventually deem you worthy of being given some sort of explanation.


Question: How do you go about getting "written permission from Apple"? What's the standard way of doing this (is there one)?


Talk to your ADC rep. She can probably escalate it if necessary.


Written permission probably means / is part of submitting it to the app store and getting it approved. No overhead.


Email sjobs@mac.com.


That one didn't work for me, but I got an answer on sjobs@apple.com, for what it's worth.


What'd he say?


Well it was about the announcement of WebM, his reply was basically the one he'd given about Theora (http://hugoroy.eu/jobs-os.php) but shorter and less involved: that WebM is likely subject to existing patents, just like h.264, and that the talk about free-as-in-beer (on top of free-as-in-freedom) is likely a wish. I asked a followup question (on whether Apple would consider the idea, and if Apple's existing patent protection re h.264 wouldn't cover most of the threat landscape in WebOS) but didn't get any further reply.

YMMV


I must have missed this, when did Apple demote him to support rep? Was it because of the network issues?


This is crap, the changed condition is still unacceptable. These conditions are a deal-breaker for me. I would have considered buying an iPhone and developing on it, but because of this stupid other-language-prohibition, I will never buy an Apple product. I bought a Nokia N900 (Maemo / Debian / GNU / Linux phone). I'm very happy being able to run anything on it without having to jail-break or break license terms. Also it runs at up to 1.15Ghz, which is faster than the iPad and newest iPhone.


You will hurt their market share incredibly doing so. They will also care.


I wish I had enough karma points to downvote you.


I have enough, I'll do it for you. Just because you can't fight the man and win all by yourself doesn't mean you shouldn't fight him.


Well, RJDJ/Trippy is an app that I've had on my iPhone for years (2?) now, and it includes the Puredata language interpreter, so I don't see how this is new news .. surely there have been exceptions to the Interpreter rule, just that people may not have noticed them ..




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: