Intel wades in on the “we can’t do any more magic concurrency for software” issue.
It’s been debated often enough and always seems to come down to the fact that the average programmer isn’t able to cope with concurrency and needs higher levels of abstraction to do it for them. The thing is, we already have such abstractions e.g. transactions and we know they can only take us so far. Worse there are other abstractions out there such as blackboard systems which these average programmers either can’t or won’t try to cope with.
So what is to be done? Well if the last couple of decades are anything to go by, absolutely nothing! Why? It’s the talent limit. How many chip designers are there in the world? How many motherboard designers? How many car designers? How many developers? I’m willing to bet that there are considerably more people in the developer category than any of the others. This is because we’ve lowered the bar in terms of developer quality to cope with the wide demand for bums on seats and lets face it, it’s unlikely that the average enterprise is going to change it’s policies in this respect. It’s interesting to note that it’s much harder to lower the bar in for example chip design, it either works or it doesn’t whilst software is almost expected to be flaky these days.
Until we decide to clean house in software land, we’ll not get progress on these thorny issues because they only matter to the few and when all said and done, there is a school of thought that might suggest that software is good enough, concurrency, efficiency, quality and green’ness be damned.
Update: An example of how challenging it can be to make concurrency easy can be found here. On the surface we’ve done some good things and yet we are still open to the simplest of errors (in this case a missing synchronized clause).
Entries (RSS)
May 29th, 2007 at 10:13 pm
Cool, I thought it, you wrote it. I need to start a blog.
May 30th, 2007 at 9:20 am
Couldn’t agree more. Add in the rise of async and suddenly there are a whole group of developers who are really beginning to struggle. Unlike the rise of parellel processing in the late 80s/early 90s with the superb INMOS chipset (which was pretty much DOA because it was British not american) this time around there really isn’t an option.
This to me is the biggest challenge in IT at the moment, developing systems where the smart people can split up the work into lots of sync & serial development for the rest to develop. Unfortunately too much of IT (I mean you Sun) is focusing on the “fan boy” developers and not on those that are trying to solve the problems.