'

Computing's un-natural language

An enduring theme in computer programming is the uncertain role of natural language. On one side, some claim it's bad to have to learn the intricacies of any particular computer language before you can make machines do what you want.

An enduring theme in computer programming is the uncertain role of natural language. On one side, some claim it's bad to have to learn the intricacies of any particular computer language before you can make machines do what you want. Isn't it the computer's job to understand us? Others argue that without the rigour of having to express your intentions formally, you'll never think about those intentions closely enough to be sure you know what they are.

I can see both sides, I lean to the latter. There's a lot of truth in the saying that all a computer programmed in plain English will show is that programmers can't speak English. Given the level of logical analysis shown in most online forums, that's just the start of it.

Computing just doesn't map well onto human language. Take a recent posting on Language Log, the world's most consistently interesting linguistic digest for the intrigued layman. In it, founder Mark Liberman mused on the peculiar business that software can live in or on a system, with no particular reason for either. Does Java run in or on a DVD player, for example? I live and work in London, but would never say on (although I do work on, not in, GMT) - and people run in marathons but on the road. He never mentioned that sometimes, software can run under, with, even outside things too.

I suspect that the choice of preposition depends on the background of the speaker - if you've got a good mental image of how software is structured in layers, or how it actually works in practice, then the choice becomes easier. A program is stored on a disk, but runs in RAM - rarely vice-versa - despite both disk and RAM being forms of memory. It'll be interesting to see what happens when universal memory turns up that does both jobs equally well.

But things may be changing. I asked Google how many times certain phrases occured..,

"Running on DOS": 879 "Running in DOS": 9530 "Running under DOS": 25600 "Running with DOS":5290

"Running on Windows":472000 "Running in Windows":289000 "Running under Windows":263000 "Running with Windows":27300

"Running on Vista":82200 "Running in Vista":11500 "Running under Vista":20300 "Running with Vista":33100

"Running on Linux":329000 "Running in Linux":122000 "Running under Linux":77100 "Running with Linux":916

So, 'on' has become firm favourite after a very slow start, 'under' is far more popular with Vista than Linux (which reflects an interesting point about the philosophies of the two platforms), yet 'with' seems to almost unknown with the open source OS - perhaps reflecting the fact that 'with' doesn't reflect any architectural aspect of the relationship between software and its host OS and thus is distrusted by the more technical.

Lots more work to be done!