* C++ is a standardized, well known, popular language.
* C++ is nearly a superset of C90 used in GCC.
* The C subset of C++ is just as efficient as C.
* C++ supports cleaner code in several significant cases.
* C++ makes it easier to write and enforce cleaner interfaces.
* C++ never requires uglier code.
* C++ is not a panacea but it is an improvement.
It's interesting to me how defensive many of those justifications are. "It's just as efficient!" or "It's just a superset anyway!" Not until halfway through the list do we get any real description of expected benefits: C++ makes it easier to write and enforce interfaces, and C++ supports cleaner code in several significant cases. The last item is the most telling though: it's clear that these developers feel they've hit a point of crisis, and they are willing to take risks like this in order to lift themselves out of the problem.
No... but it sure tends to encourage it.
Java doesn't have typedefs, and most everyone agrees that's a language bug.
Storing the type of the variable makes little sense as in most cases it is only a quick grep away.
http://en.wikipedia.org/wiki/Hungarian_notation#Systems_vs._...
Also ugly code is less of an issue of an ugly design as you can look past how the code looks if the design of the program is sound.
But ugly is in the eye of the beholder and in that maybe more people are growing up with C++ and with a later dealing with C as apposed to the other way around. So maybe it is in many ways the mindset of the average age of the programmers around today are more comfortable with C++ as apposed to C and in that could see nicely laid out C code as having ugly bits as its easier for them to do it prettier in C++ and a biased C programmer will see it compeletly from the other perspective.
So its one of those debates were the best move is to get the popcorn as some people see ugly code were others see something nice and some will see C++ as better than they would C and vice versa. Just be glad i'm not involved or I'd be mentioning COBOL as a reality check :).
Code is where conventions are important, within comments I really wouldn't be upset if someone called Objective-C "Objective C".