I saw this great article over at codeproject: http://www.codeproject.com/gen/design/theWrongObject.asp.
Here is one part I found to be particularly on point:
"Now, the diagram above is a bit silly, but I think it's also illustrative of the evolution in both hardware and software architectures. The last column, "Aspect Computing", is something I have totally invented, but it seems to me that as distributed services develop and components/component communication is standardized, a significant amount of "programming" will simply be gluing together disparate components, handling events, and coordinating the flow of data between them."
I totally agree with this and I would say we are almost...