
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. C'mon Michael, thats a bit below the belt :)
On a tangent, is it wrong to think that one day microcontrollers will be programmed in higher level languages?
The problem with this concept is that higher level languages tend to make trade-offs sacrificing memory footprint, flexability and instruction count with code abstraction (which leads to faster development, portability etc.) and maintainability. Given that microcontrollers tend to be used in real-time environments, it's essential that the code be small, fast and predictable - not things that describe a Java executable. If an application is large or complex enough to warrant a higher-level language than C, you're probably going to use a decent micro on there, like a 200MHz ARM or so which will be plenty fast enough. Cheers James