Apr 15, 2010
Archive

Observations on Lua and the iPhone Developer Agreement

Some observations on the use of Lua in iPhone games, and sections 3.3.1 and 3.3.2 of the iPhone Developer Agreement:

  1. The use of (non cross-compiled) Lua has not been allowed by the terms of section 3.3.2 of the Developer Agreement since March last year. Developers have continued to use it regardless, probably not even noticing the change.

  2. Apple doesn’t come close to enforcing the terms of the agreement consistently. If you use Lua or other scripting languages, this is good, as you don’t need to worry too much about it. And it’s bad, because that gives them ample reason to pull all your apps with zero notice should you do something that offends Apple—or if your use of it was merely overlooked.

  3. Lua has been used for more than a decade for game scripting: Grim Fandango, released in 1998, was one of the first commercial games to use it.

  4. Games have been using interpreted scripting languages for game logic for more than a decade before that. Maniac Mansion was released in 1987, and used the SCUMM language developed in-house at Lucasarts for most game logic.

  5. My first-generation iPhone is immensely more powerful than any computer available in 1987. It’s also significantly more powerful than the computer I had in 1998, save in screen size. Scripting languages can work well on very low-performance devices.

  6. One popular argument in support of the new section 3.3.1 is that it provides a minimum barrier to entry that will uphold the quality of apps in the App Store.

  7. There are lots—tens to hundreds of thousands—of shit quality apps in the App Store, written solely with C, C++, and Objective-C. The use of these languages in no way promotes quality. (I would argue the opposite: that a less-experienced developer is more likely to write a poorly engineered app in one of these than in a higher-level language).

  8. The counterpoint to 3.3.1 (and indeed 3.3.2) which has not—as far as I’m aware—been widely stated is this: if enforced, it will increase the cost of development for iPhone OS. C, C++, and Objective-C are much more expensive to develop with for complex applications (games particularly). Most paid iPhone apps sell for 99c. I think you can draw your own conclusions as to likely knock-on effects.

Edit: nevali points out that the game Zork was also largely written in a scripting language—and in 1979.

Blog comments powered by Disqus

About
@adurdin is thinking aloud Subscribe via RSS.