Let me give my appreciation for C++, which I think differs a little bit in flavor.
I like C++ because you write the least amount of code in C++. Programs are simply shorter in C++.
That statement is exactly opposite to what people would usually cite as an advantage of a high level languages (it was meant as a shocking statement). Let's look at my case.
I was writing my mathematical software originally in Visual Basic for Excel. Now, I need all kinds of polynomials - polynomials with
int
coefficients, polynomials with rational coefficients, polynomials with coefficients in cyclotomic extensions of the rational numbers (in other words, rational numbers with addition of the complex roots of unity
http://en.wikipedia.org/wiki/Root_of_unity ).
And then again all of these on the condition that the coefficients exceed the usual size of the
int
. My polynomials are in more than one variable, and get huge pretty fast (the current expression I am working on is about 150MB large with the C++ realization), so for the whole thing to function, I must represent everything with hash tables.
I found myself copying and pasting code for weeks in Visual Basic for excel, just changing the function "AddRational" to "AddLargeRational", and the function "HashWhatever" to "HashWhatever". Now one could say, I could make some wrapper class for all my algebraic structures, make a variable indicating with which algebraic structure exactly I work, eventually slowing my program by a significant factor, and in practice dynamically emulate template classes
Or I could switch to C++. There everything was already done for me: template classes, polymorphism, name it. Someone would say: "Hey, but you lost all the input/output flexibility and all the infrastructure that Excel offers" (Excel is very handy for quickly modifying integer valued matrices, for example). To that I answer: it took me a couple of weeks to write for myself some basic programming infrastructure, and maybe I even rediscovered the wheel a couple of times. The time I lost was 1/2 of the time I lost copying/pasting code in Visual Basic for Excel.
The time to (re)write some basic routines anew is negligible when you have a tough task to handle. You can redo all the fancy stuff that other languages offer in weeks. And then the time invested pays back quadruple!
Oh, and one more minor detail: actually speed of execution sometimes matters when computations take several hours on an average example (such as my current one). And there are *large* examples, you know.