Monday, September 03, 2007

Concurrency and the demand for computing

On my previous post I expressed some doubt with the “market” for rich internet applications. The skepticism was rooted on an observation that the demand side of the equation isn't looking so promising: what applications will emerge benefiting from those wonderful technologies?

I find myself thinking along similar lines with regard to concurrency. For the sake of analysis, lets split the space of applications in server-based and client-based. Members of the first group basically deal with responding to requests coming over the network. This means that there is a naturally high degree of parallelism and, of course, this has been exploited for a long time. The typical scenario is some serial business application code atop a middleware platform that handles threading and I/O. This means that on the server front, the “multicore revolution” will impact little on most software development efforts. Now, desktop software developers don't have such luck – the era of surfing on Moore's Law is really over. And so what? The way I see it,* raw computing has ceased to be an important bottleneck, long gone are the days of watching a crude hourglass animation while the CPU labored away. Not that we do any less waiting by now, these days we spend our time waiting for the network.

Anyway, maybe the concurrency boogieman is less scary than we think.


*(this is a blog, after all)

3 comments:

tautologico said...

I have thought about this too. Also, that technologies like Virtualization may take more advantage of multicore computers than single applications.

Besides, some people would have you believe that there's not going to have a full client side in the future, all applications being available "on the cloud". So this may end up being the business of systems programmers only.

tautologico said...

And by "this" in the last sentence above I meant "concurrent programming", of course.

Rafael de F. Ferreira said...

Yeah, but on the other hand we have Nathan Myhrvold's first law of software:
"Software is a gas; it expands to fill its container."

I guess any attempt at predicting the future (as we are doing) is bound to be wrong in some way. (I'm feeling a little Captain Obvious here :)