Once in a while, a thread pops up in the newsgroups pitting D
against some other language. More often than not, these
comparisons are flawed, non-encompassing, and uninformative. Most
recently with the article comparing D with Go and Rust, the
community pointed out a few flaws involving a late addition of
one of the D compilers, build configurations (-noboundscheck?),
and the random number generator used.
Then when I think about how web browsers are compared, there are
conventional measures and standard benchmarking tools (e.g.
sunspider). They measure performance for javascript, rendering,
HTML5, etc. They also measure startup times (hot/cold boot),
memory usage, etc. Finally, there are feature comparisons, such
as what HTML5 features each browser supports.
These are the type of comparisons I'd like to see with
programming languages. For starters, there should be standard
"challenges" (algorithms and such) implemented in each language
designed to measure various aspects of the language, such as
sorting, number crunching, and string processing. However, rather
than leave it to a single individual to implement the algorithm
in several different languages, it should be left to the
community to collaborate and produce an "ideal" implementation of
the algorithm in their language. We could analyze factors other
than performance, such as the ease of implementation (how many
lines? does it use safe/unsafe features? Was it optimized using
unsafe / difficult features?).
What can we do about it? I propose we come together as a
community, design challenges that are actually relevant and
informative, and release the first implementations in D. Then we
let the battle commence and invite other communities to
contribute their own implementations in other languages. I think
we should give it a try; start off small with just a few moderate
challenges (not too simple or complex) and see where it goes from
there.
- A proper language comparison... Xinok
-