
Craig Box wrote:
But, as you say, you aim is to program microcontrollers effectively and efficiently. There is only one language (other than various assembly languages) you need to learn, and that is C. So ignore the computer scientists, who do not know what they are talking about - they have never programmed microcontrollers - and learn C.
On a tangent, is it wrong to think that one day microcontrollers will be programmed in higher level languages?
"Back in the day", I'm sure there was only one language (other than various assembly languages) you needed to learn for mainframes.
In the early nineties, a programmer was writing the firmware for set top boxes. The marketting guys kept changing their requirements, and the hardware guys kept changing their processor, so this poor programmer kept having to rewrite his code from scratch. Eventually he got irritated by this and decided to write a thin "VM" layer called "Oak" (named after the tree outside his window), and write his applications in that. Then when they changed the processor yet again, he could just retarget his VM and not lose all of his code. To make a long story short, the programmer was James Gosling, the company was Sun Microsystems, and the language was renamed from Oak to Java.