Re: Why C++ is vastly superior to C
Krice <paulkp@mbnet.fi> wrote:
On 16 touko, 18:08, Lynn McGuire <l...@winsim.com> wrote:
"In conclusion, the reason why C is so vastly inferior to C++ as
described in this article can be summarized with one single sentence:
C has no support for RAII nor templates, while C++ does. That's two
of the most important features
You can live without templates, it's the least important feature
of C++ and people constantly over/misuse it. Most important feature
is class programming: instances, encapsulation and inheritance,
the OOP basics.
I disagree.
Encapsulation and instantiation are extremely important, yes, but you
can achieve that to a certain degree in C as well. Access rights might
not be enforced by the language (except on the compilation unit level),
but you can achieve this to a certain degree by agreement (iow. "don't
touch anything inside this struct"). Yes, this is not perfect, but it's
not catastrophical either. This is not the main reason why C is inferior
to C++.
Inheritance is useful in some situations, but it's far less useful than
was thought at the height of the OOP craze in the 90's. It definitely has
its uses, but it has its shortcomings as well. It is an important feature,
but I would certainly not rank it higher than RAII and templates.
As for templates, I fully disagree: A C++ without templates would be
almost as horrible as C is. (RAII would still make it by far superior,
but the lack of templates would be a huge setback nevertheless.)
If you can live without templates, how would you implement the last
challenge in the article (iow. making the example Matrix class generic,
to support any numerical type, including those which do not behave like
basic types)?
On the same note, how would you make generic data containers and
algorithms which are as efficient as possible? (Note their prominent
absence in standard C; there's a reason for that.) Other programming
languages manage by other means, but they often suffer from poorer
efficiency (especially in the memory consumption department, sometimes
also in the speed one).