RIP Lua Programming on iPhone

It’s over. Steve killed you. We had a good run, but it came to an end sooner than I expected. I was always worried that something like this might happen, but it was still a surprise.

We knew each other only for a couple of months. Those months were the best time of my life. I will always remember the fun we had. I can still remember asking you to create a complete table including the data model with just one line of Lua code. You did all the hard work for me. I never knew what was happening behind the scenes. I bet your autopsy will reveal thousands of lines of ugly Objective-C code, but I don’t care. I will always remember you and your clean and nice Lua interface.

I remember when we did the multi-player code. You just said that I should give you the function that will be called on the other iPhone. It worked beautifully. I could just run code over the network as I did locally. I suspected that you did something against the rules, but I was ignorant and trusted you. The autopsy will probably show me the nasty details how you implemented this.

We also had fun, when we tried to hide you from Steve. We obfuscated the Lua scripts and put them inside the binary. Now, even that wouldn’t do the trick anymore, because running strings command on the binary, reveals that Lua library is inside the binary. I don’t know, if Steve’s minions would actually do this, but I am not going to risk it.

You showed me your true powers with closures and metatables. I was amazed, how you could do so many amazing things, when you seemed so simple. I felt that I was cheating, because programming with you was too easy. Most people think that programming for mobile devices is supposed to be hard, but you proved them wrong in your short visit on this planet.

We had our problems also. Remember, when I tried to use timers that were released. I would use pointers after you thought no one was using them, and cause you a lot problems. We talked about fixing this problem in your next version, but we didn’t even get to start working on that; your end was so sudden.

I hear there’s a new kid in town called Android. From what I understood, he doesn’t kill stuff like Steve. I hope I can resurrect you with Android. It might be dangerous, but I have to try it. I grew so fond of you that I cannot see myself coding in Objective-C or Java. They are just too verbose. You were so simple and elegant, but I guess Steve didn’t like the competition advantage you provided for people like me.

I will always remember you and keep a copy of you in my version control close to my heart. I will leave everything the way it is now. If I try to resurrect you with a new device, I promise I will use Git this time. I will let you have your peace in SVN.

  • Share/Bookmark

18 Comments

  1. I have to say that I feel bad for you and everyone else involved. This is also the reason why I’ve never trusted Apple and why I’ve never bought anything from that company. There are many wonderful things that I have had to do w/o because of my approach to this, but I don’t want to support a company that acts in this way. If we, as consumers, are supposed to direct markets w/our choices, this is one of the choices that I have chosen not to make. Never Apple.

  2. ponzao says:

    Even though I have no personal interest in iPhone as a platform, I am really sad to see this project die because hard work going (at least somewhat) to waste and also because I really like Lua.

    I don’t know if you know this but Android has some support for Lua in the form of android-scripting http://code.google.com/p/android-scripting/.

  3. Thanks for your sympathy. I am aware of android-scripting and will take a closer look at it, if I decide to do something for the Android.

  4. Nathan says:

    They can. See decades of antivirus experience, where they do a very similar thing: finding patterns in binary code. Even if your tool produces Objective-C code in the end, it’s still possible to discover distinctive patterns.

  5. Wade Mealing says:

    I’d like to be able to do a lot more with ASE, at the moment it is somewhat limited, you can’t really write full programs in the ASE, although I hope that it would be possible to expose more of the java API, I just dont know how to take advantage of it.

  6. millenomi says:

    Not to be a spoilsport, but the Agreement always had a ban on interpreted languages; it was poorly worded, but the Agreement that came out just before this one had already fixed that loophole. So it’s a little late to cry re: spoilt milk now. It was not kosher long before last week.

  7. @millenomi I was aware of the Agreement before, but I never heard of an Application that was rejected, because it uses Lua, and there are a lot of applications in the App Store that use Lua.

  8. I just don’t understand it. Firstly objc is not ugly at all. Secondly it is addressed in TOC that you cannot use any script in your app, and you agreed it. So what is the big deal? If objc is that hard for you, go for Android.

  9. Buster says:

    Apple sucks balls.

  10. Ryan says:

    @superarts.org, don’t kid yourself. ObjC is an awful piece of shit that just happens to be entrenched in the Apple ecosystem. No one would choose that junk if they had a choice today. Not even Apple themselves. It’s a dusguting language.

Trackbacks / Pingbacks

  1. Posts about Programming from google blogs as of April 9, 2010 « tryfly.com
  2. Do you know the “TRIP NA TRIP”, the Philippine travel tv show?
  3. Living Cosmos » Blog Archive » the iPhone – overpriced, draconian, non-cohesive; the Android – rocks
  4. Living Cosmos » Blog Archive » the iPhone – overpriced, draconian, non-cohesive; the Android – rocks
  5. Apple doesn't care about your app. Probably. | Hacker Boss
  6. Apple stifles PL innovation « Handwaving
  7. Lua on iPhone | Miscellaneous musings in beta

Leave a Reply