The Joy of Interpretation

Without interpreters, we wouldn’t have software, but yet interpreters are also software.  This is why we talk about `bootstrapping’, where software pulls itself from the floor by its bootstraps, a paradox settled by the existence of hardware microcode.

Any piece of software exists as a combination of two parts, some instructions in a computer language and an interpreter of that language.  Alone they do nothing, put them together and they can notionally do anything.  Often there are intermediary steps, commonly interpretation into another language called `bytecode’ to produce `binaries’, but these are just translations into another language, which still needs interpreting for the magic to happen.

Interpreters are fantastic, they allow us to try out ideas beyond our imaginations, adding some instructions, interpreting them to get output rendered as sound or light to our senses, perceiving otherwise impossible worlds, and returning to the source code to twist the encoded structures into new contortions inspired by the results so far.  We humans expand the realms of perception through computation, not creating things but writing about things in order to magic them into existence.  We’re only scratching the surface of what’s possible, artistic and otherwise, from marrying high speed computation with embodied human experience.

It’s a shame then that the freedom of thought that interpreters give us happen to threaten business models of large companies, who are accordingly searching for the power to make free access to them them illegal.  `Console’ computers (a misnomer if I ever saw one) are those where the end user is not allowed access to an interpreter, without paying for a restrictive license and/or expensive hardware.  You are not allowed to modify code, certainly not allowed to modify the interpreter, and so must be satisfied with using whatever programs the manufacturer allows you to.

What is frightening is that these business models are spreading — from computer games, to handheld computers and now to tablets.  The iPhone (and now iPad) was a particular shock as a device from a company producing hardware traditionally marketed at the creative.  You certainly can be creative with an iPad, but only using a surface level interface; you can touch the screen to make a mark, but you can’t write a program about touch, or about marks.  iScratch, a project that allowed children to interpret their programs on the iPhone, has been rejected from the apple store.  Such interpreters have been banned from the iPhone from the start (apart from the concession of a javascript web browser VM without access to, for example, sound synthesis), but a big media stir has only been made since interpretation was locked down on the development side too, having impacts on some crappy tools by a large company.

This creep towards centralised control over interpretation is deeply worrying, and arguments that end-users get confused or threatened by higher order thought are frankly sinister.  Can we have our languages back, please?

UPDATE: If you needed convincing on the point of interpreters allowing higher order creativity, check out Dave’s latest work:


  1. We need to figure out ways to communicate these issues to normal users. I see this “no user serviceable parts” attitude a dangerous one from car engines to the iphone. I understand the business models that make them attractive, but they are not for the interests of anything other than those business models, and have a feeling they will get us into serious trouble one day.

    One example is a project in Brazil called MetaReciclagem which teaches children how to build and program computers using free software and recycled desktop parts. How will this be possible if everyone uses laptops or even worse, locked down devices? Is this sort of project out of date, should we leave knowledge of these devices to those who are “fully qualified”?

    I guess it’s not a huge problem as not many people really use computers to run anything important on (like *their entire lives*) these days…

  2. The FSF has software freedoms and they demonstrate what people need in order to properly share.

    The removal of scratch from the app store mattered.

    Sadly people just don’t see why they need software freedom.

    If we had software freedom on apple’s devices we wouldn’t be debating this.

  3. I am concerned about how it is ok to discriminate against creating software, but not against creating text, pictures, movies, playing games, painting, sculpting, solving puzzles in math games, doing some math.

    Why is programming being discriminated against here?

  4. > Why is programming being discriminated against here?

    Because the control of programming means the control of the computer, and, ultimately, control over the life of the “owner” of the computer. (Yes, I take the iPhone and the iPad for computers, in the full sense of the word). Basically what Treacherous Computing is all about.

  5. There’s a rumor some similar restrictions could be built in (at kernel level) to Mac OS 10.7. It’s certainly a worthy cause to fight to protect your freedom to program your own computer. A rule of thumb: if you can’t hack it, don’t buy it.

  6. thanks for the thread alex. this lame apple policy sickens and angers me daily, and i say that as a big fan of apple products and a shareholder even!! allow me to rant.

    A. dave, i agree with you — how do we get non-programmers to care? turn everyone into programmers? it seems that only programmers are aware of the serious limitations on freedom being perpetrated here, because non-programmers didn’t have the freedom to program the device in the first place due to lack of knowledge. kinda hard to get mad about not being able to do something you don’t care about doing.

    B. i’m hopeful that competitive devices from google will be more hacker friendly, although i haven’t looked into this yet.

    C. note that apple is selectively enforcing the interpretation/execution restriction. for example, the C64 emulator was initially banned for including the BASIC interpreter (i mean, c’mon what could more clearly illustrate the inanity of the policy?), but was accepted after the BASIC interpreter was removed, despite the fact that the sole purpose of the remainder of the application is obviously to execute interpreted code. see also the recently released intellivision app. which makes it seem that what They oppose is not really interpreters at all but End User Programmability, which is simply disgusting.

    D. when i first heard of this policy, i thought it was so lame and retrograde that it must be coming from AT&T as part of letting the devices onto their network. it is looking less and less likely that that is the case. sigh.

Leave a Reply

Your email address will not be published. Required fields are marked *