Posted 2003-05-07 11:23:10 by
There seems to be a common meme floating about, that designing a programming language so that it looks like English makes it easier to learn. In this essay, the author intends to demonstrate that this idea is fallacious.
There are plenty of lousy-yet-popular languages out there that are similar to English. This kind of language can be considered a subset of the English language -- that sounds pretty good, doesn't it? You already know it all, right?
Well, not really. You can approach such a language this from one of two directions: you can build up, from zero assumed knowledge, or you can cut down, from assumed knowledge of the natural language.
How feasible do you think the latter approach would be? There are dozens of grammatically correct ways to express the conditional statement “if x is equal to y then do z.” Only one will work in Subset-Of-English. And that's just at the syntax level -- before you even got to the details, you have to learn that you can't just ask the computer to “make the ball bounce.”
No, the only feasible approach to learning such a language is the build-up approach. In which case, what's the advantage of Subset-Of-English over a language with syntax that's designed from the ground up, specifically for programming?
There is one: it's easier for non-programmers to read and understand. This has probably led a lot of non-programmers to choose a language like this. But if you're going into programming, you're probably going to be a programmer a lot longer than you're a non-programmer. Wouldn't it be wiser to choose a language that's optimized to make life easier for programmers?
In conclusion, the author has demonstrated that it is fallacious to design a programming language to be similar to English in order to make it easier to learn.
By the way, on a syntax level, “making life easier” for programmers generally means making the code more concise. This is becauese concise code takes less time to type and less mental effort to parse.