@moorecm,
I could, but C is easier to link with other projects because it doesn't suffer from name mangling*.
* I'm not saying name mangling is bad, but the fact that compilers are free to do it however they want is dumb, because it means you can't link C++ code with code compiled by another compiler, or, sometimes, a different version of the same compiler.
Well, it's not the only reason, I generally prefer writing in C sometimes (sometimes I feel like not using classes, and it seems weird to write in C++ without using classes where a class would be appropriate). It used to be because I felt that C++ was made obsolete by C# since IMO C# does OOP better than C++ does while C is generally the same if not better for performance (it's more minimalist at least), but C++11 might make me go back to C++ a bit when its fully implemented in g++. The 'auto' keyword, for example, is a nice addition.
I understand what you mean, that seems to be the trend of the industry too, sadly. C++ does take a rather constrained view on OOP; it's the tradeoff between offering compile time guarantees and runtime flexibility.
C++ isn't all about OOP though. It provides excellent support for Abstract Data Types. I take it, that's what you're doing in C. If so, how do you guarantee initialisation and release of the stuff you're creating. Clearly you'll have to do it yourself. C++ provides these guarantees in the language, so you don't have to do it yourself.
@kbw,
Yeah, that's true. It's not that I have anything against C++, I just like C. Maybe I feel more confident with it or something.
@EssGeEich,
I don't mean that everyone would suddenly stop using it and switch to C#. That will probably more or less happen eventually (everyone used to use FORTRAN, COBOL, BASIC, etc. and now practically no-one does), although it probably won't be replaced by C#. What I meant was, I didn't feel that I needed it any more, since C# OOP (and generics) is better and the .Net framework is generally better than the C++ standard library, and with Mono, even cross-platform arguments are pretty much defunct. Even if you need fast code (e.g. for graphics) you can just code those parts in C and then write a class to encapsulate the C library (a laughably easy task for a reasonably sized C API). Like I said, though, I might use C++ a bit more with some of the additions C++11 has made.