Via Andres Aguiar I stumbled into one of the most insightful articles I've read in the last couple of months: Language Oriented Programming, The Next Programming Paradigm, written by Sergey Dmitriev of Jetbrains.
All I can say is: read it. Again and again and again. It brilliantly describes one of the biggest problems of today's software engineering: that there is no (or at most weak) connection between what we're intented to develop and what's actually developed; you need to reverse engineer the code written to understand which functionality it represents, while it should be that what you intended (i.e. the functional description of what you want to develop, the concept) is projected onto the programming language in such a way that it is as close to a 1:1 projection as possible, so you can find back implementations of pieces of functionality fast and easy and also that you can find back the theoretical base for a piece of code in the functional description fast and easy.
It will be a long road, but as long as enough developers be convinced of the fact that solving this problem is the only way to reach the ultimate goal: having 100% reliable, bugfree and maintainable software, large software vendors like Microsoft will perhaps begin developing the required tools to make this step forward.
Just read it: http://www.livejournal.com/users/ea_spouse/
If you're in the software industry and you recognize this story, remember this: your employer doesn't own you nor is it your fault some project is late on schedule (there are people responsible for that, you just write software).
You work to live, you don't live to work.