Somewhat on the topic of languages, I'll toss in a bit of my
experience. As a warning, I don't have much of a point here, but
hopefully this will provide some meaning to someone reading.
About a year ago I was working on controlling our Whirlwind with an
Arduino's I/O ports wired in place of the CPU chip. So the Arduino
would parse a very simple command language ("c01!" == pulse coil 1)
and send back a stream of switch updates ("s23+" == switch 23 closed),
basically acting as a serial-based translation interface to the CPU
board's address lines. This part worked well. I needed to do more
with debouncing but otherwise it worked.
I wanted to use Ruby for my game logic, and had worked up a nice
pseudo-language with Ruby's anonymous blocks (similar to how Rakefiles
work). Running Ruby 1.9 on my Powerbook G4 at the time was just too
slow to do things like operate the pop bumpers. I ended up having to
hack in special cases for those into the Arduino code I'd written to
fire the pop bumpers on switch contact.
Just did some checking on the Sanguino (and the Arduino Mega!) — woah.
Those boards would be a *lot* better suited to what I was trying to
do at the time. I was really scrounging for I/O pins before... 13 vs
32 and 54, respectively. Wish they'd bump the speed a bit, too... if
memory serves there wasn't too much extra time between running the
switch and lamp matrixes and sending out the serial updates.
Adam