Welcome to McFunley.com Sign in | Join | Faq

Moore's Law and the Free Lunch

posted on Saturday, January 08, 2005 5:46 PM by mcfunley

This article was brought to my attention from a few sources. The general theme here is, “concurrency is going to be really important as processors begin to hit physical limits, and these kinds of programs are harder to write.“ I thought I would give my spin on it. Here is another one-sentence summary of that article, childishly represented using Windows Paint.

At the admitted risk of sounding too much like a doomsday prophet, my prediction can be summed up as follows: despite attempts at tool and language support (for instance, C?), this is going to be painful for a large percentage of developers. Software cycles will probably take a big turn for the worse, so you might be better off working on the quantum computers in your garages now.

My reasoning is heavily influenced by the alleged “object revolution.“ The fact is, you can't claim to be doing object-oriented development just by virtue of using a language that has object-oriented features. And you can't reap the benefits of doing object-oriented development in that case, either. In this day and age, I still see a ton (scores... hundreds.. maybe thousands) of methods that are 200 lines long and take twelve arguments. Now you can put a “virtual“ in front of a method like that, but there's obviously still a problem.

I like this quote from Object Thinking

Both software engineering and object orientation have achieved a strange status - everyone claims to be doing them without really doing so.

The thesis of that book is that OOP and traditional programming take drastically different mindsets. Changes in mindsets can be really difficult to accomplish. Tools help you but they don't automatically make you good at the task at hand. We've got great OOP tools now, but I think a lot of people still work on teams where deadlines are missed, integrating code written by different people is hard, and any number of shortcuts leads to a mess of spaghetti. We get away with it to an extent, mostly because it is accepted that software projects are late and contain bugs. We work way too hard in the process, though.

And as accurate as I think that is for the “object revolution“, it is only more accurate for the upcoming “concurrency revolution.“ Writing a multithreaded app is a lot different than writing a single threaded app.

It could be good news for the highly motivated / educated, but as in any field that is the minority. I'm looking forward to the challenge, but purely for selfish reasons.

Comments

# re: It's a Dead Man's Party @ Sunday, January 09, 2005 12:18 AM

As I said on Mr. Sutter's site, I can't believe you'd throw a party and forget to invite me, the late, great Gene Amdahl. Verily, it is My Law which shall anchor thee to the Serial world.

  Gene Amdahl

# re: Moore's Law and the Free Lunch @ Sunday, January 09, 2005 7:05 AM

Good point. Amdahl's law: http://en.wikipedia.org/wiki/Amdahl%27s_law

In a nutshell, the upper limit on the speed advantages of parallel processing, mathematically stated.

Very relevant to the overall discussion. As it relates to what I wrote, I think it's important to note that the speedup/limits are implicitly compared to the original serial algorithm. Thinking of better parallel algorithms requires a different approach.

  Dan McKinley

SKIN NAME : ImageHeader