2/03/2009

Embedded trends and (gasp) buggy compilers

Last week, Jack Ganssle of Embedded.com posted some interesting stats from a recent study carried out by Embedded Market Forecasters (EMF). EMF interviewed about 500 embedded developers and asked them questions on everything from which DSPs they use to the size of their software projects.

Some highlights:

  • Most popular operating systems -- Various flavors of Windows, followed by Linux, VxWorks, and QNX Neutrino. According to Ganssle, all other commercial OSs are "in the noise."
  • Most popular language -- C, followed by C++ and Assembly. Suprisingly enough, Visual Basic also makes a strong showing.
  • Most popular 32-bit embedded processors -- ARM, followed by Intel and Freescale.
  • Most popular DSPs -- Texas Instruments
  • Average team size -- 7 members
  • Code size of average project -- 100+ K lines of new code

As with any study of this kind, you have to take the findings with a grain of salt. There is always a chance of sampling error, especially in the embedded market, which encompasses such a huge variety of companies, developers, and products.

Also, it's important to remember that these numbers are aggregates; you'd probably see very different results if you looked only at the responses from a specific market segment. For instance, if you sampled engineers designing in-car telematics systems, you'd probably find QNX at the top of the OS list. And if you sampled designers of networking equipment, you'd probably see a lot of Linux projects.

To me, though, some of the more telling stats involve management issues. For instance, two thirds of respondents stated that they get no training on development tools. This finding reminds me of stories about developers who can't even get the budget clearance to spend a couple of hundred bucks on a static analysis tool. You would think, given the cost of wasted developer hours, that companies would want to maximize productivity at every reasonable turn.

Speaking of turns, Ganssle's article takes an unexpected and somewhat disconcerting turn in the final paragraphs when it refers to a study that found "compilers sometimes miscompile code using the volatile keyword." For the full story on this issue, click here.

No comments: