A proper language comparison...

Xinok xinok at live.com
Thu Jul 25 11:23:18 PDT 2013


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.


More information about the Digitalmars-d mailing list