LWN.net Logo

LCA: Lessons from 30 years of Sendmail

LCA: Lessons from 30 years of Sendmail

Posted Feb 5, 2011 3:17 UTC (Sat) by chad.netzer (guest, #4257)
In reply to: LCA: Lessons from 30 years of Sendmail by daglwn
Parent article: LCA: Lessons from 30 years of Sendmail

> I answered the question you asked which, frankly, is a poor question.

Because it was a tongue-in-cheek response to a statement that was, frankly, pretentious.

C++ can be amazingly elegant. I actually like it. And yet, we still live in an age where major C++ projects refuse to use the C++ standard library. That's an embarrassment. And it's just one of several very telling reason as to why C++ has not replaced C after nearly 30 years. For the C++ professionals out there who like the language (like me!), how many C++ books are on your shelf? I only ever needed two C books (K&R, Harbison/Steele).

Btw, it's amusing you call out void * pointers as an unsafe C construct, when it's quite straightforward to employ void * safely. And yet, can tell me why new[] and delete[] haven't been deprecated from the C++ language as the ghastly abominations that they are? You *need* to use boost::array precisely because C++ got this so monumentally wrong, and once you start using boost, you no longer are writing "C-style" C++. The complications of function overloading alone are enough to accidentally trip up the minimalist C-style programmer, if they are not careful.

Anyway, I'll let you have the last say, if you wish. Language war threads are probably better waged on other sites.


(Log in to post comments)

LCA: Lessons from 30 years of Sendmail

Posted Feb 5, 2011 5:53 UTC (Sat) by daglwn (subscriber, #65432) [Link]

> Because it was a tongue-in-cheek response to a statement that was,
> frankly, pretentious.

No, not pretentious. Factual.

> And yet, we still live in an age where major C++ projects refuse to use
> the C++ standard library. That's an embarrassment.

An embarrassment for those projects, yes. I'm not claiming C++ is perfect. It's far from it. I'm claiming it's more useful than C, which is true. There are parts of the C standard library people don't touch.

> For the C++ professionals out there who like the language (like me!),
> how many C++ books are on your shelf?

This isn't a valid way to measure the productivity aspects of a language, but to answer your question, I have one that I have referenced over the last two years: Josuttis' Standard Library book.

> when it's quite straightforward to employ void * safely.

Sure, one can employ void * safely. Just not as easily as one can in C++. One can't get the performance out of void * that one can get out of templates.

> And yet, can tell me why new[] and delete[] haven't been deprecated from
> the C++ language as the ghastly abominations that they are?

That's a bit strong, wouldn't you say? What's wrong with them, exactly?

> You *need* to use boost::array

No, actually I've never used it.

> once you start using boost, you no longer are writing "C-style" C++

You're mixing design styles. No one who uses Boost extensively *wants* to write "C-style." But I certainly would consider boost::array to be "C-style."

> The complications of function overloading alone are enough to
> accidentally trip up the minimalist C-style programmer, if they are not
> careful.

What's difficult about function overloading? The member hiding rules are surprising for the newcomer but so are pointers and recursion.

> Language war threads are probably better waged on other sites.

I don't consider this a war. I consider it education.

LCA: Lessons from 30 years of Sendmail

Posted Feb 5, 2011 6:44 UTC (Sat) by chad.netzer (guest, #4257) [Link]

I don't want to get into it with you. I'm reading your other responses, and I just can't see how a discussion with you could provide any value to this site, or me. I don't disagree with the gist of your opinion, just the strident tenacity with which you state it. Furthermore, I'm annoyed that you* mentioned and promoted boost::array in the thread, and then when I responded to about it, you claim not to have used it and discount it's relevance. I consider that a bait-and-switch tactic, and an annoyance.

In any case, everything that has ever needed to be said or not said about "C vs. C++" has been said elsewhere, and since LWN doesn't allow thread promotion/demotion by voting, I think I'd like to stop. I certainly think good C++ code is often a positive improvement over good C code, but I disagree with you only in the (implied?) claim that C++ should completely supplant C. It hasn't, because C++ still has problematic issues. The fact that there has been an explosion of languages since 1991 (when I learned C++), and that *many* of them interface easily with C, but almost *none* of them interface easily with C++, perfectly illustrates the issue. History will show that C++ tried hard, but failed, to be a "better C" in *all* cases (as you seem to claim).

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds