I like comparisons. They usually help in making a judgement or decision. For example which product to buy or use. Almost every review of several items usually sports a table of “short summaries” with some sort of numerical representation of the measured qualities. This gives the comparison a touch of credibility and scientific methodology. But comparisons and reviews only work, if one takes the qualities of the items as products of some/the same sort. It’s pretty pointless to measure how good something is created by the reviewed products. For example, it’s clear nonsense to measure the quality of texts produced by a text editor typed by two different persons! Therefore one must pay extreme attention what to consider in such a comparison. So I was shocked to find a reference to The Computer Language Shootout Benchmarks. Clearly, programming languages are no products (not even their implementations) which can possibly be compared. A programming language is merely a tool to create instructions for the processor. So every shootout (I use the word shootout here as shortcut for a comparison in speed) boils down to how many instructions it takes to accomplish the task. But this can only be compared for the same language since only this means that the source code doesn’t have to be changed. Any other shootout is completely pointless for exactly this reason: the underlying source isn’t the same (I’ve read another shootout where they implemented a simple for-loop to compare the speed between Fortran, Java, C/C++, and C# – they came out pretty equal). Nevertheless I recommend the shootout page, first for the FAQ and the “Flawed Benchmarks” page which give a clear summary about the intentions behind this and second because it also has some pretty interesting results which are counterintuitive at first but where the answer to how this result can be correct lead to deep insights about how such shootouts work.