"Michiel Helvensteijn" <m.helvensteijn.rem...@gmail.com> wrote in message news:h47v8p$131...@digitalmars.com... > > D just doesn't offer enough improvements over C++ to make it worthwhile > switching over. >
Even as a former die-hard C/C++ user, I've never really understood this argument. But, I'm not in the "you have to try it / sum of it's parts" camp either... Better is just plain better. If you've got two things available, and one is better, it just doesn't make any sense to stick with the worse one if the only reason to do so is inertia. That would be plain laziness. All of the following *individually* (ie, not just as a lump sum) are things for which I've always considered well worth leaving C/C++ in the history books where it belongs: - No separate header/implementation files. (IMO, the king of all language anachronisms.) - Non-null-terminated, slicable strings. - Strong typing (Unless things have changed since I last looked, I refuse to accept C/C++ as *truly* strong-typed. Hell, most modern dynamic languages have more right to be called strongly-typed than C/C++.) - True delegates and function literals. - A sensible foreach instead of that horrid stl iterator mess. (And this opinion of mine was formed long before Andrei's ranges.) - Metaprogramming that isn't a kludge (I'm looking at both the C preprocessor and the use of C++'s templates for anything beyond mere generics). - The availability of build tools that make manual dependency-tracking (not to mention those god-awful "*make" programs) obsolete. - "finally" (Or does C++ have this now too?) which fixes a fatal flaw in old-style exception handling (not to mention scope guards which even make "finally" look primitive, at least where applicable). If you have any of these available, why *not* use them? Sure, D has it's well-known issues, but they're nothing compared to any of the above problems with C/C++. Hell, the last few times I used C/C++, the *only* reason was because it was the only viable systems language I was aware of.