Going off topic and technical for a moment, the bigger problem for lots of workloads at the moment is the memory wall

http://en.wikipedia.org/wiki/RAM#Memory_wall

Essentially, depending what type of computation you're doing the dominant time contribution may not actually be calculational operations but waiting for data to be shoveled onto/off-of the chip/cache memory. (I'm actually sitting at work right now pondering how to mitigate this for a particular problem.) This is a big problem because, at the moment, there's very little support for automated code modification to ameliorate this effect. Likewise there's no particular problem getting theoretically greater computing power/dollar (the "generalised Moore's law" most computing people care about) by putting multiple processing cores in one package. The difficulty is actually having programs which can actually use a substantial fraction of the theoretically available capacity due to the aforementioned memory wall and the related problem of ensuring consistency of shared data available to multiple processing units ("locking"). The primary difficulty with getting greater computational abilities is the difficulty of writing the software; indeed my doubts about the singularity model are not based on physical limits, for which there are plausible technologies going at least up to the level postulated for the singularity, but that I'm not seeing anything like the progress in augmenting human deep thought with computational aids (which are needed for things like writing software to take advantage of the newer machines). Implicit in Kurzweil's writings is a feedback loop that I just don't see there.

Incidentally, people don't realise how seriously the generalised Moore's law is taken in computing: in my "assume the scenario that a severe energy crunch isn't happening now" planning, I'm working on projects that will only make sense practically if we get 10 more years of Moore's law (which translates to roughly a factor of 100 times more computation/dollar). (But then there has been a factor of 10000 increase since my first PC 20 years ago so this sort of thing has happened before.)

The memory wall has ben with us for many years, although it is getting worse. It is not that bandwidth (the ability to move data around), isn't also improving, its just that we are improving bandwidth at a slower rate than we are improving the capability to manipulate the data once it is inside the processing chip. I think one of the problems stems from the propensity of theoretical computer science to think of complexity in terms of logical (or floating point) operations to accomplish a task. But, as you have noted, in the real world, it is usually about the ability to move the data around, and algorithmic choices to enable more to be done with less data motion, are harder to quantify, and computer memory is getting very messy, with various types and levels of caches, memory buses, and memory chips, and disk atorage. It just doesn't lend itself to easy analysis anymore.

I think Moores law (which was always about the number of components (transistors) on a chip, not speed) will run for about your decade. Beyond that, barring some major technical advances, I think it begins to dramatically slow the rate of increase. That will present a major paradigm shift for the whole business model. Currently (I work in engineering software) customers are advancing towards exponentially more difficult computations, at some point the ability to make progress this way (at least by application of brute force), will be over, and further progress will become very hard. I suspect we will see this transition in ten to twenty years from now. Clearly the business model, of buying new hardware and software every couple of years because the old stuff is obsolete will have to change. Sortof the computaional equivalent of the end of growth.

IMHO I think Kurzweil is a fruitcake.

It will come to be seen that "human deep thought" is not really all that deep, and the current hardware (say, that 3.3 gigahertz chip with 4 gig of RAM of our humble 32-bit PCs) is more than up to the task.
What's lacking is a proper understanding of elemental human thought processes. When such is attained, coding will be one foot after the other, and the coders will be astonished at how few steps have to be taken.
For now, researchers like Lenat are on the wrong track.

That's probably true (although I fall into the camp of AI that thinks there is "the intelligence algorithm" is taking things too simply), but my point was that human cognition has various pattern recognition, abstraction, generalisation, extrapolative facilities which power creative scientific an engineering work. You can write something like Microsoft Bob/Clippy that attempts to augment my mind by making very simple suggestions (that most people think are more annoying than useful). But there's virtually no stuff that has actually been created that actually works so far that improves my "deep thought" abilities (eg, suggesting patterns in experimental results). If there were, a positive feedback loop enabling the creation of ever more complex technologies like Kurzweil suggests is plausible. But so far I don't just see it.