Most of this thread is rather vacuous.
Differences in program implementation are much more a function of the programmer(s) involved than the language(s) involved. You can write C-like code in C++, you can write C++-like code in C. You can write Haskell-like code in both with enough boilerplate.
Of course, there's also languages like Java, in which all programs asymptotically approach utter crap.
I really have to agree with what ApochPiQ is saying here. It really make a lot of sense and I have come to the same conclusions over the years. There really is no point to making one language into another language. For instance with C it is a procedural language. There is really no need to force it to be object oriented. I understand for instance GTK built an entire object system in C to make GUI programming easier but why X11 got by without doing this and so did ncurses. Sure the API's are a mess but it works and is reliable. If you want objects it would be better to just use a language that provides OOP.
The general idea is that it is not worth the effort to fight against your language unless it is the only language you have available (often in the case of embedded all you have is C).
The largest problem I see is that programmers are stubborn and form religions around what they enjoy to use and defend it tooth and nail even if they are totally off base.
It is not just languages it is also editors, ides, gui kits, and the list goes on and on. It is really just hot air flying around it is best to just evaluate and learn and then choose what you want to use for the job. It is best not to over complicate the evaluations and it is best to avoid the classic holy war information out there. Educated decisions always win out over the head bashing baseless arguments.