It sometimes seems that most everyone out there still trying to sort out which flavour of MVC is best for certain kinds of apps and tool chains. Lots of very smart people have lent their insights to UI architecture, implementation, verification, and maintenance.
Some amazing things have come from this effort. It looks like we're finally starting to wean people off of the tightly coupled View-is-king mentality that has ruined so many programs. I have long despaired that (for better or for worse) the invention of the Visual Designer had obliterated the value of solid software design skills in the name of WYSIWYG and drag-n-drop.
But there's still something missing. Most of the MVC effort has been directed at the plumbing end of the works. Less efforts seems to have been devoted to synthesizing better approaches at designing UIs themselves. Most GUI toolkits approach the problem from the perspective that the UI designer knows exactly which buttons she wants to put on the screen and it's just a matter of painting them in the right location and wiring them up. But it takes a lot of skill to provide buttons, dialogs and preferences for every
conceivable reasonable thing the target audience might want to accomplish.
Frankly, despite great advances in tooling, most UIs still suck. While we're busy building frameworks and arguing points of architectural finesse, the world is being smothered in confusing, brittle, inflexible and non-interoperable applications. It's no wonder many people are still afraid of computers. We must attack the very essence of the UI design problem. Plumbing won't get us out of this mess!</another-rant>