Hardware and software advances go hand in hand of course, but it’s generally accepted (and natural) that software lags hardware. In particular, current software (tools, frameworks, infrastructure, etc) is lagging somewhat in its ability to fully leverage the advances in hardware capabilities.

 

A case in point is the recent advances using hyper-threading and multi-core CPU architectures. This has big implications for software development since concurrency is no longer a nice-to-have, it’s actually required so the software can keep up. Who’d want to use software that only uses 10% of your available CPU power?

 

Herb Sutter’s excellent article is well worth a read - “Concurrency is the next major revolution in how we write software”

 

http://www.gotw.ca/publications/concurrency-ddj.htm