spread development language of choice.
expensive in a cost sensitive world.
not full C++ My favourite feature is ... )
Walter, I think you left out one of the most important reasons. Many C coders are low-level hackers who want to see the bits and bytes. And the C++ OOP extensions to C provide a higher level of abstraction that gives C coders an uneasy feeling.
I'm an odd creature because I really love OOP on the PC, but I don't feel right about using it on a small embedded device. The paradigms seem to oppose each other: small-and-lean vs heavy-and-highly functional.
This is why C++ itself seemed to be uncomfortable with itself. Taking a lean and mean racecar, and then bolting on the luxery features of a Cadillac gives a bastardized solution that won't win any races and won't be acceptable to the socially elite class, either.
Java won a quick victory in the hearts and minds of OOP purists, and it presented a consistant view of the world. J2ME seems like a great idea to target small devices, but Sun isn't good at managing this type of thing. Their "big company" manner of manging it rubs people the wrong way, and their cost model almost guarantees it will fail.
C# is great, but MS is also unable to market it to the small embedded crowd, so maybe a third party company will come along and do it right. The real draw of OOP for me is the component concept. Components are easier to use than traditional C libs, and they can be extended by end users, even if they don't have the source code.
In the meantime we have to live with C and lint. It's not a bad option, but it feels like we're still living in the 70's sometimes.
Eric