At parties, stereotypical programmers tend to be the quiet kind. There is one topic, however, that is sure to produce not only their rapt attention, but also plenty of verbal contribution: programming languages! Everyone has lots of factual knowledge of several languages, accompanied by plenty of opinion regarding which one is best and why. Any evidence, too? Yes, seasoned programmers will also have a number of war stories to tell where something went particularly well or not well because of the language used: “I estimated this to be a ten- or fifteen-hour job, but then I decided to use language X instead and had it all up and running after just three hours—and mighty readable, too!”
The problem with such evidence is that it usually doesn’t involve any direct comparison of languages, and if it does, you are lucky if that comparison is apples-to-oranges; more likely it is apples-to-orangutans.
One would think that scientists would have jumped at this opportunity to make an immensely popular and hugely relevant contribution to the field of computer programming and would have produced a long series of wonderful, clean studies comparing the pros and cons of various programming languages. Candidate topics for research projects abound: such topics as execution speed, memory consumption, defect rates, defect types, reliability, robustness, readability, modifiability, programming productivity, and many more.
But for reasons ...