Khan wrote: Personally, I am no Java fan. If not for the advantage of cross platform, I don't see much point for choosing Java over C in embedded design. After all, embedded software needs to be tight and low level, something that C does better than Java.
Some (maybe most) embedded software needs to be efficient, and offer predictable response. But, these days embedded systems are taking on more complex tasks, many of which aren't very time-sensitive. Think about the popularity of Forth in certain applications (Forth is an interpretive language that's been around for a couple of decades, and is popular in certain types of embedded systems). Further, with the demand for programming talent it is difficult to find qualified embedded software developers. Also, many universities have gone to teach Java as a first language instead of C, Fortran, or (ugh) COBOL for example. Java doesn't have pointers, which eliminates many of pitfalls that new C programmers encounter. It also has strong modularity, typing, and extensibility (C has this, but is weaker relatively speaking). If you're programming a cellphone, only parts of its function are realtime, and a lot of that is done in hardware anyway. So why not use Java? |