Our level of abstraction that we operate at may rise ever higher and someday we may all be programming nanobots instead of "computers", but until full and true human-level AI comes along there will always be a need for programmers to be programming something, and while I doubt the nanobots will be programmed in Java there will still be significant carry-over from current skills. And sort of tying into the recent discussion about how the iPad is for "everybody else" who isn't a programmer, the idea that everybody will want to be programmers or will be programmers is clearly false. The iPad is apparently forcing some people to face up to that.
And since "full and true human-level AI" is basically the Singularity, I haven't tried to plan my career past that on the grounds that it's totally impossible to make plans.
While debugging is only a part of the software development process, it seems like it creates an evolutionary path for automated development.
However, someone will have to know how to tweak the genetic algorithms and feed them the right data. If you think it will ever be "just specify the problem and run the GA/GP", you are gravely mistaken. It is not that simple, and there will be ways of phrasing the problem that will make it easy for the GA and ways that are hard, and problems that GA will not be able to deal with at all. There will still be programmers.
As I recently said in another post, the gulf between GP hype and GP reality is pretty much the largest I know of in the realm of computer science. There's a lot of very tricky theory, and my expectation is that this will never be a practical way to program (as opposed to fixing bugs), and even if it is, it will take a lot more knowledge and skill than a current programming job, which also means that fewer people will be able to do it. In my estimation, it will just plain be harder than writing it conventionally and thus never be practical.
So you could end up with fully-test driven development (requirements oriented?).
I kind of doubt genetic programming is a way to fully automated development.
Someone will always have to describe what it is that the computer should do.
I doubt software will get there since it is too much of a free market. Before we get there, wages will drop, people will leave the field (or not enter it), and equilibrium will reestablish itself.
Right now software development is highly skilled labor that charges a high premium for the service. If the demand drops then wages will drop accordingly and less people will get into the field over time. Right now the software market is largely a free one so it can correct itself naturally as demand changes.
Auto workers need a plant, a supply chain, engineers and designers, etc., etc.