In a recent interview Victoria Livschitz of Sun fame presents her abstract ideas for a new type of programming language, from which she expects that it will reduce the number of bugs in large software projects significantly.
After explaining that there is probably no ideal way to prevent bugs in first place
It's not the prevention of bugs but the recovery -- the ability to gracefully exterminate them -- that counts.
she goes on with the thesis that the current object oriented model does not fit well anymore, and that a new model has to be found that will help programmers to understand the complexity of their projects more easily, while at the same time providing them a more intiutive language:
Well, I see two principal weapons. One is the intuitiveness of the programming experience from the developer's point of view. Another is the ability to decompose the whole into smaller units and aggregate individual units into a whole.
If one ignores her (compulsive but still needless) side blows to Microsoft and C++, the article is a fine piece of work and is definitively worth being read by everybody, who is interested in the theoretical background of programming languages and software development.
(Note: The interview in some parts refers to an article from last year by Jaron Lanier, where he suggests to substitute the well known, traditional binary match model in programming languages with some sort of pattern recognition model. Reading this article before reading Livschitz' text might probably make the understanding slightly easier.)