My point is that by nature software advances at a slower rate than hardware. And that, for most cases, software is no longer restrained by hardware.
Software is very much restrained by hardware. Not by its theoretical performance, but by the difficulty in extracting that performance.
Just a few years back there has been a dramatic paradigm shift. Before, developers didn't have to do a single thing to make their software run faster on newer hardware. The Pentium 4 scaled all the way from 1.3 GHz to 3.8 GHz! Then it hit a power consumption wall, but fortunately they were able to switch to the Core 2 architecture, which achieved higher IPC and also still scaled from around 2 GHz to over 3 GHz. Developers still didn't have to do anything to benefit from this newer hardware. But then it all stagnated...
Multi-core dramatically increases the available computing power, but it's notoriously difficult to multi-thread software in a scalable way. It becomes
quadratically harder to ensure that threads are interacting both correctly and efficiently. We need a breakthrough in technology to make it straightforward again for developers to take advantage of newer hardware. And Intel is stepping up to the plate by offering
TSX in Haswell.
CPUs have also increased the theoretical performance by using SIMD vector instructions. But again up till now it has been notoriously difficult to take advantage of that, often requiring to write assembly code or at least have equivalent knowledge. So the average developer hasn't benefited much from it. The breakthrough here is
AVX2, again to be introduced in Haswell. It enables developers to write regular scalar code, and automatically have it vectorized by the compiler. Previous SIMD instruction sets were not very suitable for auto-vectorization because they lacked gather support (parallel memory access), and certain vector equivalents of scalar instructions. Basically AVX2 enables to achieve high performance with low difficulty the same way a GPU works, only fully integrated into the CPU, thus allowing the use of legacy programming languages.
So next year we'll witness a revolution in hardware technology, and the software will soon follow.