Doug Gaff, a developer working over at Wind River has written a blog post asking whether the Embedded industry is dead (Doug has also blogged about Windows CE shared source).

I agree with Doug's comments about the changes in the embedded space, devices are becoming smarter and connected, this means that embedded development teams now need to deal with communication with other devices, either on the same network or perhaps across the internet, devices need to be monitored, maintained, need to be able to sync data to back end databases, and customers are expecting to have a much 'richer' user experience on devices.

When I first got started building embedded systems the developer was responsible for everything, this involved raw I/O to peripherals, careful tracking of all memory being used in the system, counting clock cycles for the assembler instructions running on the processor to make sure you were able to be within the timing constraints needed for the system you were building.

Of course many of the same principles are still valid today, ensuring that you are not leaking handles/heap/memory, that your real-time performance meets the requirements of the device you are building, thankfully the application development and debugging tools have moved light-years ahead compared with the tools I was using nearly thirty years ago - operating systems are providing many more services to the embedded/application developer, higher level languages and frameworks are able to deal with the lifetime of objects/memory within an application - this means that developers can be far more productive with today's tools and technologies.

- Mike