>>6516I'm not that anon, but think of C as a semi-portable macro assembler on steroids.
>What good<Very small computersWhen all you have is a couple of kilobytes of program space and 128 bytes of RAM, you don't have too much room to hide from the hardware. C offers just enough remove to enable you to write structured,
mostly portable,
somewhat readable programs. The standard library is lean and mean, with a few exceptions.
<Systems programmingSometimes you are the one writing code to offer a higher-level interface to the hardware for still higher-level code, whether in C or some other language, and you will need to flip bits and move data around at the hardware register level. C is the usual tool of choice for all but the most critical applications, where people go to bare metal assembler instead.
<SpeedC compiler come very close to hand-crafted assembler as regards performance of the generated code.
<Self-disciplineC doesn't do what you mean, it does what you say. You're in charge of everything. You need to clean up after yourself and not step on your own toes. C is a great way to train yourself in doing that.
<StandardMany higher-level languages offer a C function interface, so your C code can call or be called by C++, Python, Java, etc. programs easily.
<Learning about debuggingThe tools you use to debug your own code are much the same as you use to debug other people's code *wink wink*.
t.been doing microcontrollers for 15 years