

Scheme hits the App Store again - jlongster
http://jlongster.com/blog/2010/04/05/farmageddon-available/

======
mark_l_watson
I love it. Gambit-C Scheme is my favorite also (although MzScheme has lots of
great libraries). I have an Android phone - any chance of an Android version?
I've seen some links of compiling to Java byte code, and there is a native
SDK.

~~~
jlongster
I don't have access to any of the Android platform yet, so not any time soon.
There should be no problem targeting it though. This was highly an experiment,
and I already had enough on my plate.

In the next year or two I hope to move away from the iPhone in favor of
Android.

------
asimjalis
Neat. Could you talk more about Scheme. In retrospect how did it work out? If
you could do it over again would you use Scheme or just jump into Objective-C?
What were the pros and cons of using Scheme.

~~~
jlongster
Sure! I plan to write a good post-mortem on my blog soon, so I will go into
all of that in detail then.

In general, I'm really glad I used Scheme. Gambit Scheme worked great, and let
me develop the game much much faster using incremental develop commonly found
in the Lisp family of languages. View this video of mine to see what I mean:

<http://www.youtube.com/watch?v=p6k7fjOjqZw>

There were some downsides. The main one being that people didn't understand
what I was doing, and I couldn't have hired another programmer if I wanted to.
I also developed it from scratch because I didn't want to bother with writing
bindings (but that was also to learn more about graphics). Also, I feared that
the GC would make it too slow, and in the end, it was hard to control what the
GC was doing. It worked out pretty well, but although it runs decently fast,
the GC still incurs a pretty hard performance hit.

All said, I would do it again in a heartbeat, but I would probably make
bindings to an existing framework and use it more as a lightweight scripting
language. That way, the GC isn't run as often, and a lot of developers would
be familiar at least with the API.

