As much as I love writing code, I realized long ago that it's really the act of bending my computer to my will that I really love. Programming's just the only way to really do that. After a few decades, you'd have thought we'd have come up with something better. Our industry's pioneers agree that programming is holding us back, but don't really know what we'll use to replace it. Ideas? via [Marquee de Sells: Chris's insight outlet]
For all that Jaron Lanier was the huckster for the egregious over-hyping of "virtual reality" in the early 90s, he's on to something by saying that the extreme specificity needed for software components to interact is a bottleneck. In nature, there are some species (rats, humans, weeds) that are very adaptable -- we prefer conditions like X, but we can adapt to things that aren't too radically different from X. There are other species (corals, rainforest flowers) that are very highly tuned to specific conditions, but can't adapt.
Right now, our *only* choice is software that's like the latter. I can conceive of software that's more like the former: if you have an automated suite of tests, it's conceivable to create software that explores a solution space broader than what a programmer could. For instance, we now have ample spam/ham concordances. A genetic algorithm generating regular expressions might very well be a fruitful avenue for exploration. The programmer writing the genetic program wouldn't be responsible for writing and evolving the spam-detecting program, the programmer would be writing the program that writes the programs, one of which solves the problem. (Does that make sense?)
There is no "programming language" to help the human programmer write the genetic program ("Beginners All-purpose Genetic Engineering Language"?). Whether there are *enough* problems that are amenable to computer search and optimization and whether there are appropriate evolutionary abstractions that can be composed in the average programmer's mind, I dunno'.