The #1 thing that I hate about C++ is all the fcking side effects that people can bury in their constructors and every where else under the fcking sun. I want to start swinging a baseball bat at all the fcking idiots that don't think in advance of using the latest fcking cool C++ whatsamcallit.
When you are maintaining a very very large project, the best thing about C is that when you read the code it is fairly obvious what is going on, and you don't have worry about some innocent looking code causing a bunch of other crap the be executed behind your back.
On the downside of C, name space collisions are a problem and the ability to hide data and functions.
I vote they should add C++ style classes to fix the name space problem, and private and public keywords to hide data and functions. I don't want all of the object-oriented B.S. like constructors and destructors that makes it difficult to read and debug other peoples code.
Don't get me wrong.....I think some features of C++ are very useful, especially operator overloading which has allow us to make it easier to code big programs that handle lots of longer intergers and weird integer sizes like 56 bits, or 112 bits, or 128 bits. Yeah, these days we have uint64_t in C99 compilers, but back in the mid-90's we had to write code in C++ just because it had operator overloaded classes, which we also had to write.
Even though I haven't stated earlier...I do real-time embedded software...so I'm not going to be writing an interrupt in Perl or Python anytime soon. C is not going away in the real-time / embedded software / driver world anytime soon. It is still very very common!
When you are maintaining a very very large project, the best thing about C is that when you read the code it is fairly obvious what is going on, and you don't have worry about some innocent looking code causing a bunch of other crap the be executed behind your back.
On the downside of C, name space collisions are a problem and the ability to hide data and functions.
I vote they should add C++ style classes to fix the name space problem, and private and public keywords to hide data and functions. I don't want all of the object-oriented B.S. like constructors and destructors that makes it difficult to read and debug other peoples code.
Don't get me wrong.....I think some features of C++ are very useful, especially operator overloading which has allow us to make it easier to code big programs that handle lots of longer intergers and weird integer sizes like 56 bits, or 112 bits, or 128 bits. Yeah, these days we have uint64_t in C99 compilers, but back in the mid-90's we had to write code in C++ just because it had operator overloaded classes, which we also had to write.
Even though I haven't stated earlier...I do real-time embedded software...so I'm not going to be writing an interrupt in Perl or Python anytime soon. C is not going away in the real-time / embedded software / driver world anytime soon. It is still very very common!