Moving to C++ (47)

33 Name: dmpk2k!hinhT6kz2E : 2007-08-11 05:26 ID:Heaven

D's concept of constness is more nuanced. It's also harder to remember, in large part to a poor choice of keywords. No matter how many times I read the difference between const/final/invariant, I seem to have forgotten by the next week. This contrasts starkly to Walter Bright's normal philosophy of making it easy to do the right thing and more difficult to do the wrong.

Not to bash D too harshly. It's written by a master at C++ compilers (Walter Bright), played with with by a C++ guru (Andrei Alexandrescu), and used by a community of experienced C++ developers. And it shows. I feel that D really is in most ways a better C++ than C++ as a language (which ignores the critical issues of libraries, community support, and richness of toolset, which C++ obviously wins).

Of course, a better C++ that C++ isn't all that great in my opinion. Alexandrescu has argued that supporting library developers is critical, and catering to library developers with all the metaprogramming goodies does appear to be paying dividends for D. D has drawn a largely C++ crowd, so cater to them.

However, I'll argue that any language that has template metaprogramming is fundamentally flawed. It doesn't matter how similar the syntax is, you've essentially chopped the language into two very different languages. C++ has an excuse: the accidental discovery of functional programming with templates allowed the almost-frozen and very limited C++ to be extended beyond its original capabilities.

D doesn't have that excuse. So unless something changes dramatically, I don't think it'll reach much beyond an enthusiast community inhabited by a core group of former C++ developers.

This thread has been closed. You cannot post in this thread any longer.