When I presented Model/View/ViewModel at the PDC I was a little worried that I would get tackled by some Patterns expert who would want to debate the relative merits of MVC, or my interpretation thereof. To head off this encounter, I practiced saying something like “I would be happy to discuss the differences between these two patterns, but that’s a long discussion and I’m not prepared to go into every detail of the semantics.” Frankly, as “architects” go I’m pretty pragmatic and though I love patterns, I take them as broad guidelines (as I believe every book repeatedly says they were intended), while there are a few who want them defined much more rigorously.
Anyway, as I got to that slide, I was already thinking ahead to the next one and what came out of my mouth was something like this:
“I would be happy to discuss the differences between MVC and Model/View/ViewModel, but frankly I don’t understand MVC”.
There was a slight pause in the presentation at this point, while an internal dialogue was carried out.
Brain to mouth: “Uh…what did you just say?”
Mouth: “I don’t know, what was I supposed to say?”
Brain: “We rehearsed this, remember?”
Mouth: “Oh, yeah. I remember now…’long discussion…details’. Okay, want me to say that instead?”
Brain: “It’s kinda late…”
For the record, I’ve actually studied/used/applied/recommended/pondered MVC, PAC (Presentation/Abstraction/Controller) and a bunch of other variations at length…but I wasn’t terribly surprised later to find that one of the attendees evaluated my “Knowledge of Subject Matter” as 1 out of 5….