I don't really like C++ although I've done my share of object oriented programming. My target languages for that, however, have been Java, D and even python. I do far more programming in C however, because I write a lot of numeric, math oriented software. C has a lot of limitations of course in terms of rapid prototyping, memory management and a lack of modern language constructs. C++, however, IMHO, suffers by being overly complex, difficult to understand and often the execution model, how it actually get's translated to machine code and what the actual program control structure is, is highly obfuscated. (Just watching all the crap that gets called behind the scenes for simple memory management is an eye opener.)
So what are the real alternatives to a serious programmer who doesn't want to use C++, but likes the efficiency of C? After playing around with various development models I have come to find that the paradigm used in gaming development these days is quite powerful. The low level, number crunching code is written in C or even assembler and the high level logic and configuration logic is often left to an embedded scripting language such as lua. Lua is particularly nice for this, since it is easy to understand, powerful, reasonably fast, good for managing configuration tables (for which it was originally designed) and easily embedded since it is a modest size pure ANSI C program. Moreover with automatic interfacing tools such as SWIG, it's particular easy to marry the two languages.
http://www.swig.org/
For desktop applications I've also used Haskell as the high level language since it's actually quite efficient, and thus only requires the most low level number crunching to be performed in C and it has a nice C interface (though it has a terrible learning curve for those coming from C like languages.). So my question is, is this two language model, a scripting language + C, competitive with development in C++? Since I'm not a C++ programmer per se, I can't really compare the two approaches. I know a lot of this depends on the development environment as well, and perhaps that's where the strength of C++ really lies.