<pedantic:rant> This morning in the javablogs daily mail, I see Solving Swing's MVC Deficiencies by Ryan. I start to read and... geez, solving Swing's MVC deficiencies requires a unique controller? I mean, either there is a misunderstanding about MVC, or with its Swing implementation, but the problem Ryan deals with, which is a valid problem, is not a Swing's MVC deficiency. But there is worse, let's take for instance php.MVC, whose misleading name implies that it's an MVC implementation, whereas it's a Struts copy in PHP. Even it has been done over and over, let's set down some facts.

  1. MVC has been conceived in 1978 by Trygve Reenskaug while working at Xerox PARC.
  2. The reference implementation of MVC is in Smalltalk-80.
  3. MVC is a paradigm, not a design pattern.
  4. MVC is fine grained.
  5. Corollary: there is no such a thing as MVC for the web. There are valid "Separation of Concerns" oriented frameworks, like Tapestry, WebWork or Struts, but none has the adequate "model notifies the view" mechanism for instance.
  6. MVC requires a hierarchy of views.
  7. MVC attaches one controller per view (and thus builds a hierarchy of controllers).

So please, pay more attention to the venerable MVC. Like for all other controversial architectural debate, there is a page about MVC on the Portland Pattern Repository's Wiki. </pedantic:rant>