Software development nowadays is all about correct and efficient practices which makes the life of programmer easier for him to code as well as to maintain the code. Todays software development is more about effiecient Object Oriented Practices and following the UML standards to deliver quality and bug free software.

C was originally intended for developing Operating systems and its main asset was its speed considering the amout of memory old computers had. Today seeing the fast drop in dollar / MB of memory its more expected from a language to make the coding and maintenance easier for the programmer ie the language that has solid OO features.

All the above talk was to clear the point that it all depends on the subject matter under consideration. You would next talk about implementing or writing Assembly front end in Machine code and go out to tell that Assembly is the subset of Machine Code. This though is true it also implies that Machine code is the superset of each and every language present today.

I dont think the original poster wanted a C v/s C++ battle for pointing out to him that C++ front end can be easily implemented in C but rather which language is better for developing applications and which language the software community nowadays goes with.

But seeing from ur profile that u are an Assembly programmer, ur love for C is well understood but the point here is that it all depends on the original posters view point.

But still ALL PEACE.

I think you didn't understood the intent of my post.
It was only an objective consideration of mathematical comparison of C and C++ features.
My point was not at all that C is better than C++ or that C++ is better than C.

My point was, that functionally, C++ is not a superset of C99 (though, functionally it is a superset of C89).

I love much C++ (and don't really use C, though I know the language) so I would never claim that one language is better than the other. That was only a mathematical point-of-view.


>>C99 is functionally superior to C++,

probably because c++ standards predate C99. It will probably catch up the next time it is updated. If it doesn't then it only means c++ is NO LONGER a subset of C -- they then become two distinctly different languages.

I think, you mean "superset"

You're right : C and C++ are now two different languages, and the divergence should be corrected in C++0X.


Not to beat a dead horse, I just stumbled across this article The Development of the C Language by Dennis Ritchie at Bell Labs

More recent descendants of C proper include Concurrent C [Gehani 89], Objective C [Cox 86], C* [Thinking 90], and especially C++ [Stroustrup 86]. The language is also widely used as an intermediate representation (essentially, as a portable assembly language) for a wide variety of compilers, both for direct descendents like C++, and independent languages like Modula 3 [Nelson 91] and Eiffel [Meyer 88].

and from a paper written by Bjarne Stroustrup

2. C with classes
C++ evolved from earlier versions called C with classes. The work and experience with C with Classes from 1979 to 1983 determined the shape of C++.


More masochistic equine necrophilia:

Influenced by: C, Simula, Ada 83, CLU
Influenced: Ada 95, C#, Java, PHP, D

Yada, yada. Lots of languages are influenced by one another:
History of Programming Languages

Subset and superset are really provocative terms that mean little. Each language is its own language, whatever common syntax and such that may exist.

I think the question about differences between C and C++ has been mentioned, that language theories have been discussed, and that this thread is officially dead.

[As always, if you feel strongly enough that you would like this thread reopened, PM a mod.]

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.