Possibly because C has too few features for your average programmers liking, and C++ is a nightmarish hellscape of sprawling features which you have to learn and then intentionally ignore if you want others to understand your code.
But I like Java, so feel free to ignore me.
I've written a lot of Java, so no problem there.
C is sparse. I like that. Less "clever ways to screw up that others have to debug later".
I can't disagree about C++. I only use a chunk of it myself.
C++ isn't good for embedded. C isn't as productive as an embedded language could be.
I agree about C++ on embedded. Why is C not productive? Is it that more modern languages handle more background work for you?
For me it's mostly just because I have to do a lot of type-switching or writing pseudo-inheritance when I'm still in the prototyping stage of a program in order to have some kind of polymorphism. It's often not very pleasant.
Perhaps you should just stop writing C as though you were using an OO language and accept it for what it is, not what you want it to be.
Thank you for your sound advice.
Well... isn't it? Of course trying to shoehorn OOP into C is going to grow wearisome. Just... don't do that.