Nick Sabalausky wrote:
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.

It does take time and effort to learn a new tool, and that effort needs to be less than the expected gain.

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).

My experience with C++ people sticking with it is they are so used to the problems they no longer see them. To me it's like the mess in one's house. One doesn't notice it until going on a vacation (i.e. learning a another language), having one's hotel room cleaned every day, then coming home and suddenly seeing how untidy it is <g>.


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.

The bizarre arguments I've seen are along the lines of "I don't want to use D because although it has X and Y which I love, it doesn't have Z and I really need Z", so they use C++ (or Java or C# or Python) which doesn't have X, Y, or Z.

Reply via email to