My reply to this discussion, as a professional coder, that has spent many
decades on the job, using 100 programming languages.
Way back in the seventies I was writing business code for an operating
system running on what would be called a large desktop computer these
days. In that it sat on top of the desk, and someone sat in front of it
to use it. That same CPU is currently being used as micro-controllers on
things like hard disks.
Micro-controllers today are not this greybeards micro-controllers from the
past, but those devices are still in use.
So back then it was C-Basic running on C/PM, on a Z80, with a screen and
keyboard! Last time I wrote code far a micro-controller (last decade) I
used assembler to write my own USB keyboard code from scratch, but that
was a tiny micro-controller, RAM measured in bytes. A lot less powerful
than a Z80. It was possible to write C for the thing, I decided not to.
A similar CPU is likely inside that $10 supermarket keyboard you might
have laying around somewhere.
These days there's a "micro-controller" chip embedded inside bigger CPUs,
it runs either Minix or Linux, think that might depend. So with an
entire OS, lots of languages would have been used, but mostly C at the
lower level, with some assembler.
Soooo, pick the language for the task you need, and your comfort level
with whatever you need to learn. Most importantly, have fun. B-)
As for C / C++. One problem with C++ is that it's such a huge language
that people only use a subset, but everyone uses a different subset. I
have been paid to code in C++, first language where I didn't even bother
to learn it. I was experienced with C at the time, and I could get
started just using the subset of C++ that is most C like. Normally I'd
sit down with the manual for an hour and learn the language before
starting, this time it was just "Meh!" and dive right in.
--
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.