A crisis is looming if we can't squeeze more code from our existing developers.
Our industry is nearing a crisis. Much like some of the other crises we face (can you say "global warming"?), this one is definitely coming and no one seems to be doing much about it.
The crisis I'm referring to is the shortage of programmers worldwide. This issue is staring right in the face of an exploding amount of code that must be generated to keep up with all the coming devices, along with the growing numbers of features within those devices.
Add MP3 capabilities to your mobile handset? Sure, it's just some extra code on top of the horsepower that the processor vendors are happy to provide. Add some smarts to your washing machine? Just add some code to that peppy microcontroller. Have your car recognize your Bluetooth-enabled handset? Same deal.
So, where does this leave us? First, the vendors with the code-generating tools claim they can deal with the problem. Generating the code is the easy part, they argue. The hard part is getting those developers to buy into the fact that they can have their code automatically generated for them.
It sounds like a simple solution, but it goes deeper than you might think. And if you're one of those developers who avoids the latest code-generation tools like the plague, you know exactly what I'm talking about. How can a tool automatically generate code as tight as I can write it by hand, many of you say. That's the way I've always done it, and it's worked pretty well so far, I hear from others.
What first opened my eyes to this problem was a chart that I saw a few months ago that plotted the number of code developers versus the lines of code that will need to be written in the coming years. While the number of developers did show an increase, it was a fairly slight increase. However, the number of lines of code that will need to be developed is increasing at an alarming rate, at least according to this particular market-research company.
Confirming my suspicions was an article in a recent issue of EE Times. It quoted a report coming from Microsoft that claimed the number of students pursuing computer science is on the decline while the pressures to deal with the coming parallel-programming issues become more intense with the push for multicore processors. Microsoft acknowledged that progress is likely to be slower than hoped for because of this problem.
I contend that we shouldn't ask for less code, nor should we look for more developers. The answer might be right under our nosesmake better use of the tools that are available to us.
Agree? Disagree? Let me know your opinion.
(A follow-up to this editorial.)
Richard Nass is editor in chief of Embedded Systems Design magazine. He can be reached at rnass@cmp.com.
Reader Response
Where are all these jobs?
Is this Windows programmers or is this Embedded programmers?
Is there a serious lack of programmers now?
It seems like the Embedded programmers are a hard group to define.
-Tim Flynn
Houston, TX
It is a great article. Can you also share the metrics ("developers" Vs "lines of code needed"), which you talked about (unless it is strictly confidential) for two reasons:
(1) Readers who read your article will be curious to see this chart
(2) It will add credibility to what you are mentioning
-Kunal Singh
Bangalore, India
I'm really sick and tired of reading about the programmer shortage. Has anyone thought of looking for programmers in the unemployment lines?
-Philo Cramer
Embedded Programmer
Prospect, CT
"The need for more programmers" is a good article, but it is too short. We must analyze the problem in a bigger scale, but yes this article has succeeded in striking the spark ..!
-VimalKumar, Puthiyadath
GE Infra, Energy
Two things will happen:
Programmers will continue to make use of bigger and bigger building blocks. Don't tell me someone is going to write that Bluetooth stack for that car from scratch.
Second, when there is a shortage of programmers, the price for programmers will go up, and more people will be attracted to the field.
-Eric House
Mgr, Software Development
H I Solutions, Inc.
Kennesaw, GA
I have been in this business a long time. The same things were said about compilers - they can't possibly create code as good as I can in assmber. For awhile, that was correct. For processors like the Z80 and 8080, it was easy to outperform the compilers. But as processors got more powerful and complex and memory got cheaper, it became foolish not to use them. Coding in assembler could still beat a compiler, but the gains were minisucle compared to the time required. The same thing will happen for code generation tools. Currently code generation tools cannot create code as efficient as a competent programmer. But the power and complexity of multi-processor systems will dictate their use. The efficiency gained by traditional methods will not be worth the time required.
A bigger problem, as I see it, is correctness verification and testing. What are the tool makers doing to ensure the correctness and testability of the mountains of code that will be required in the future?
-William Weber
ATK Missile Systems
I think both global warming and programmer shortages are misleading extrapolations of statistics. To gain support for more technical visas, a "crisis" is always helpful.
-Mike Reed
Duluth, GA
The conversation continues . . .