I’ve recently had a silly discussion with a classmate, on the merits of Java. That didn’t go too in-depth, as his main argument against absolutely everything else appeared to be “Java is a real programming language”. Huh? C++ was admitted to that group, but little else. So what does that make just about every other programming language in existence? Wikipedia lists over 500 programming languages, so how many of those are any less deserving of the “programming language” title than Java or C++ or another mainstream language?
We could probably start out with an assumption that besides Java, C is also as “real” of a language as one is going to get. Why? Simply because that was repeated over and again for a long time:
For 20 years almost, people are still saying nothing serious is made with “not C ” language.
The other extreme will be HTML, but that’s not even a programming language at all. It’s here because a lot of kids are very confused. This leaves us with a very wide range for everything else.
There’s one easy target up for elimination – pseudo-code. As the name implies, it means false code, and some make a distinction that it is in fact, not real:
I find writing in a real programming language, rather than using wordy pseudo-code, to be easier.
Others have similarly tried to distinguish some languages from others, based on the linguistic cues. A popular one is casting off
anything that is a “scripting” language:
a “compiled” language gave it the distinction of being a “real programming” language instead of a “scripting” language
Foobar2000’s blog promotes scripting with Scheme into the realm of “real”:
- - It is a real programming language with things like conditionals and loops.
- - Because it is a real programming language, I can add ways to script foobar2000 actions.
Look, a “real” programming language is scheme, not something trivial to understand like (the basics of) python. Scheme is hard to understand and takes a long time to get used to, so its perfect as a learning tool–to make the professors look smarter.
Weiqi Gao humorously suggests that a language is not “real” until a bunch of generically sounding books have been published. Though that doesn’t really seem applicable, if the entire language was designed for the sole purpose of a parody.
We could look at individual languages, such as LOLCODE, and determine that it was not designed for the purpose of solving problems or perform computational work – and in such a sense it will be deemed “not real” as a programming language, even if the language itself is Turing Complete.
Though any generalization seems futile. We have the languages that we do, because they are used to instruct computers to solve problems. Who is to say that the problem of slow shadows in a video game is any more real than the problem of generating web pages with dynamic content, or any more important than the problem of accurately solving complicated math equations? Each of the three is perhaps best approached by a programming language of a completely different paradigm, and yet they all remain equally real in the sense that there is a specific problem that could be solved with a properly instructed computer. Any programming language that is used to solve a real problem is, itself, very much real.