Rainer Deyke wrote:
I want to throw these words back at you, because my first impression of D was "the bastard child of C++ and Java, with a random assortment of new features thrown in without rhyme or reason". D is many things, but a simple and elegant language it is not. (This is not a major problem to me, really. I can live with messy languages. I can live with C++. But to think that D is a massive improvement in this area requires a special sort of perspective.)
One measure of messy language semantics is the messiness of the compiler code needed to deal with it. D is a pretty clean language in comparison. <g>
Another way is measuring the change in source code size. I get about a 30% reduction when translating C++ code more or less directly to D.
Yes, I think it is a massive improvement over C++ in simplicity and elegance. But if you try to write C++ code in D, you won't see as much of that as you would after being more used to the D way of doing things. For example, my early C code looked an awful lot like Fortran! It took a while before I used the language in a style that was natural for C. My first years of C++ code also looked a lot like just plain old C (in fact, it arguably still does).
The reason I have stuck with C++ despite its (massive, obvious) flaws is that it has a couple of really nice and useful features that very few other languages have even attempted to match. D is the only language I know that even tries, although it still falls short in many areas.
Fair enough. What are those two features?