Where are the programmers?

Redmond, Wash.  The number of students pursuing computer science is on the decline just as researchers are being pressed to solve thorny problems in parallel programming for tomorrow's multicore processors. So said top researchers at Microsoft Corp. who gathered for an annual meeting here last week.

Microsoft Research showed off a slew of its latest projects, from keyboards that recognize simple gestures to software that links sensor networks to PCs (see story, page 12). Just two of the programs discussed at TechFest 2007 addressed parallel programming for multicore processors, but researchers said much work on the topic is going on behind the scenes.

Given the intractability of the problem, Microsoft executives acknowledged that progress is likely to be slow. And the cultural challenge of attracting more good people to computer science may be an equally high hurdle.

"We are at a low point of interest in computer science," said Rick Rashid, senior vice president of Microsoft Research, who pointed to a sharp decline since 2001 in college undergraduates choosing com- puter science as a major. "Jobs will go begging in the next few years because we don't have the people willing to take on the field."

The tarnish caused by the dot-com bust is part of the problem. "But I am worried there is a broader decline in interest," Rashid said in an interview here. "You even see it in places like Japan, Hong Kong and Korea."

A task force chaired by Rashid for the Computing Research Association hopes to address the broader issue. With funding from Google, Hewlett-Packard, IBM and Microsoft, among others, the group has hired a full-time person who is working with a women-in-technology program at the University of Colorado.

"There has been an even more precipitous decline of interest among women and minorities than in the general population," Rashid said. "We are trying to figure out how to change the perceptions of the field."

Today, the United States is at a peak in the number of computer science PhD graduates. But the undergraduate fall-off is a sign of problems down the road.

"If this keeps up, by 2010 or so you could see a decline of PhDs by as much as a factor of two. That would be a problem because the demand is much, much larger than that," said Rashid. "The funny thing is, today's youth all use their cell phones, computers and gadgets, and are beneficiaries of the technology. But it doesn't seem to translate into a desire to learn how to make more things like that."

Although the U.S. government has shown willingness to increase historically low levels of funding for computer science, funding levels haven't changed much so far, Rashid said. Because of excessive bureaucracy, he said, many top researchers still need to submit multiple proposals before they get backing for their projects.

"The process for getting funding for research in this country is broken. It's wasting a lot of people's time," Rashid said.

Giant leaps neededIn the land of next-generation systems, parallel programming for multicore processors "is the biggest challenge in computer science today," said David A. Patterson, a professor at the University of California, Berkeley.

Indeed, said Rashid of Microsoft, "We've yet to hit upon a good way of thinking about how we will go to 32 cores and beyond. There are fundamental things we will have to change about how we write applications to do that."

Microsoft is taking a number of approaches to that problem. One is a language now under development that automates the process of creating some parallel-software constructs. The company is also helping UC Berkeley researchers build and use a chip simulator to test parallel-programming concepts.

The new language adopts a method used in database programming of bonding several processes into one so-called atomic transaction. The language automates the tricky part of synchronizing the many steps in these transactions and giving programmers tools for fine-tuning the synchronization as needed.

Threads and locks"The way people write parallel programs now, with threads and locks, is intellectually challenging," said Roy Levin, who manages Microsoft Research's Mountain View, Calif., lab, where some of the work is taking place. "People get it wrong because parts of the program are not in sync or the synchronization is too coarse, leading to poor performance."

The new language, although in an early state, "is a glimmer, a hope that this idea makes the process sufficiently manageable," said Levin.

Researchers still need to complete work on the language and then run several test programs with it before they are ready to report their findings formally. That process could take more than a year, said Andrew Birrell, a principal researcher involved in the work.

Where are all the programmers? Seriously?
Well in the USA, you have a media that reinforces the social view that it is not 'cool' to be either intellectual or into STEM subjects at school. Instead it idolises sports 'personalities', the arts and alpha-male brute force superiority over 'nerds' and 'geeks'.
Then you wonder why these US citizens grown up to buy foreign-made and designed electronic gadgets that they can't design or program themselves.
These products are instead made by China which is a communist dictatorship, and so the US balance of trade deficit spirals out of control and the balance of power shifts to China.
Don't blame your government for this, they can't stop you buying communist-made goods.
Start with your schools and also change the media stereotypes your children are exposed to and you will have plenty of programmers and a re-vitalised America. There is still time, but only just.