I really hate to say this, as much as I like object
oriented programming but, I really think we might be better
off if we went back to procedural programming for the bulk
of the applications that we write and left the object
oriented stuff to people who really understand it and for
problems that can not be solved any other way.
Meanwhile, back at the lab, we need to come up with a
programming environment that most people understand
naturally. We need to do usability studies on the
languages we develop just like we test applications we
develop for users. Instead of trying to simplify what we
are already doing, which continues to provide solutions
that only programmers understand, we need to provide
solutions that are no longer programmer centric.
It seems to be natural to do GUI-centric programming as in Visual Basic. People like attaching ideas to things that they can see. I think that the real problem is that there is an Impedance Mismatch between current GUIs and the domain. Once we have solved this, then the natural way to program won't conflict so drastically with good Object Oriented practices.
I'm not sure if we can get there before we reach the level of GUIs in Minority Report, but I think we won't need quite all of that.