8-Bit Scheme: A Revisionist History
Programming in the 21st Century - James Hague - August 04, 2011In The Nostalgia Trap I wrote, “I was in contact with a hundred or more designers of 8-bit computer games, and I learned their stories.” Those stories were fantastically interesting, but most of them were only incidentally about programming. The programming side usually went like this:
Early home computers were magic, and upon seeing one there was a strong desire to learn how to control it and create experiences from moving graphics and sound. At power-up there was the prompt from a BASIC interpreter, and there was a BASIC reference manual in the box, so that was the place to start.
Later there was serendipitous exposure to some fast and impressive game that was far beyond the animated character graphics or slow line-drawing of BASIC, and that led to the discovery of assembly language and the freedom to exploit the hardware that came with it. It was suitably clunky to be writing a seven instruction sequence to do 16-bit addition and remembering that “branch on carry set” could be thought of as “branch on unsigned greater or equal to.” The people with prior programming experience, the ones who already knew C or Algol or Scheme, they may have been dismayed at the primitive nature of it all, but really it came down to “you do what you have to do.” The goal was never to describe algorithms in a concise and expressive manner, but to get something interactive and wonderful up on the screen.
Now imagine if an Atari 800 or Commodore 64 shipped with a CPU designed to natively run a high-level language like Scheme. That’s not completely outrageous; Scheme chips were being developed at MIT in the late 1970s.
My suspicion is that Scheme would have been learned by budding game designers without a second thought. Which language it was didn’t matter nearly so much as having a language that was clearly the right choice for the system. All the quirks and techniques of Scheme would have been absorbed and worked around as necessary.
It’s not so simple today with an abundance of options. Haskell is beautiful, but the free-for-all memory usage of pervasive laziness can make it a frustrating choice. Erlang has unappealing syntax. Python is inconsistently object-oriented. Lisp is too bulky—Scheme too minimalist. None of these languages runs neatly on the iPhone. That last one is hard to argue with, but the rest smack of superficiality. Yet those criticisms are preventing the deep dive needed to get in there and find out how a language holds up for a real project.
What if you had to use Scheme? Or Haskell? Or Erlang? You might slog it out and gain a new appreciation for the mundane, predictable nature of C. Or you might find out that once you’ve worked through a handful of tricky bits, there are great advantages in working with a language that’s more pleasant and reliable. Either way, you will have learned something.
(If you liked this, you might enjoy Five Memorable Books About Programming.)
Categories: Blogs Programming in the 21st Century
Comments
No comments so far, you could be the first.Add comment
Erlang on Twitter
» dessyrosalia (♡pesek mancung♥ ): Erlang ke rumahku donk kangen nih
» si_erlang (Erlangga Adhitya): 75% dalane jahanam
» GeekDani (Dani Kim): @charsyam 그렇군용. :-) 여긴 서늘한데. 크크. Erlang Meetup 준비는 잘 하시나요. ㅋㅋ
» syahlafatimahA (LalaTik(ʃ⌣ƪ) ): Waaa?! Si erlang suka cherrybelle(?) wkwkwkwk ngakak aih xD
» yosukehara (Yosuke Hara): I’ll be a simple test for benchmarking JSX and Jiffy together. #erlang
» Debbyvheumen (Debby van Heumen): @elisaaa15 @kleingeld_ haha okee succes :) blijven jullie erlang
» ovatsus (Gustavo Guerra): RT @martintrojer: Just *blogged “Distributed Actors in Clojure” on http://t.co/WcKBpNBR #Clojure #Akka #Erlang #in
» larshesel (Lars Hesel): ...or rather: 4 days of Erlang hacking coming up!
» hongye_erlang (紅葉): とりあえずチャイナ。
» Erlang_ABNIC (Erlangga .A): RODOK !!! Dtakok"I genah” jawabane malah ngelantur! (N)
Statistics
Number of aggregated posts: 10498
Number of comments: 2115
Most recent article: May 15, 2012
Latest comments
» cheap soccer jerseys on Memory Models in Erlang vs Java: Nice discussion here,you are doing a great job. i was looking for this information. i found it on your page…
» mandesejohn on Couchbase Meetup at new HQ: Thanks for sharing experience. It should be really a great post. It should be knowledgeable and informative. Keep it up. flower delivery columbus ohio
» vermaseo on Scale means Skills: I’m surprised people are still commenting about this. George has been moved on to bigger and better things with the president for awhile now.ledikanten