Re: Software Development Has Stalled
Posted: Feb 2, 2010 6:09 AM
I agree that, on the whole, the field of development currently appears to be stalled. However, I do not agree that this marks the beginning of a period of stability (effectively a long decline).
Instead, I see signs that development is going through the "shakeout" phase before the "maturity boom" portion of the economic cycle. See http://www.safehaven.com/article-71.htm
The "growth boom" phase is definitely over. We have hit performance walls in both hardware and the software, and can no longer depend on raw performance to drive innovation.
So according to the model of a typical economic cycle, now is the time for the second wave of innovation leading up to the second boom. It is the worst time to be sitting still doing nothing.
Because the second boom of an economic cycle is usually characterized by a much smaller number of much bigger players. This is due to the extrapolation (from other economic cycles) that convenience and standardization, rather than performance, will be the key areas of activity. Smaller players that do not get big enough quickly enough will not be able to effectively participate.
Further complicating matters is the imminent emergence of a new technological cycle centering around concurrent programming.
Why concurrent programming?
Because hardware-wise, we are otherwise stalled for further performance gains. And this strongly affects (you might even say curtails) the ability of the big hardware players to maintain their present sales model.
The big hardware players have already decided that concurrent programming is the only way forward that allows them to survive in their present form. (Otherwise, they all become commodity players in a low-margin market)
As a result of that decision, 4-core machines are now everywhere and next year, 48 core (See http://www.techpowerup.com/102445/AMD_Demos_48-core__Magny-Cours__System_Details_Architecture.html) desktops are going to be available. The extra cores will do nothing if the software doesn't support them. So this brings extra pressure right now on innovating around the concurrent programming model.
Once it hits the mainstream, this cycle will certainly bring totally new tools and technologies, however the question is whether the overall market will be able to sufficiently distinguish it from the older technological cycle such that it will generate a new economic cycle.
Based on observation, I would suspect not.
Even so, my hope would be that it could generate a temporary opening for smaller players to bootstrap themselves into the big leagues.
But even in the case that a largish chunk of economic opportunity does not somehow materialize around bringing concurrent programming to the mainstream, I still believe there will still be sufficient technical and personal (even monetary) rewards to make it a worthwhile effort.
Now is not the time for complacency, but for a call to action.