Greg Elin asks, Why MVC? And how might GTD inform interaction architecture?
Here’s my response:
First, read these for general background on MVC:
http://c2.com/cgi-bin/wiki?ModelViewController
http://c2.com/cgi-bin/wiki?ModelViewControllerHistory
http://c2.com/cgi-bin/wiki?ModelModelViewController
One of the interesting things to note is that Trygve Reenskaug’s original conceptualization was apparently MVC+U, including the User.
Then, consider that at the time MVC was promulgated, the dominant paradigm was one screen, one application. The GUI with multiple applications running simultaneously, each drawing in synthetic viewports (windows) was a new thing coming out of the Smalltalk world.
Model, View and Controller are functional abstractions that follow out of virtualizing the screen, and having to multiplex similar functionality amongst a number of applications, instead of having one application own the whole screen.
Now read these, for some more background on interaction architectures:
http://www-2.cs.cmu.edu/~hudson/teaching/05-833/slides/slides02-ui-org.ppt
http://www.cc.gatech.edu/classes/AY2003/cs4470_fall/lectures/lecture12-interaction-architectures.ppt
The event/redraw loop explanation in the first one is particularly important — that is the same basic processing pattern that we used in video games in the 1980’s, and is still used as the main loop in windowing systems.
I’m a great fan of taking a conceptualization from one field, and seeing how it applies in another, so I’m very interested in your intuition that GTD might inform interaction architectures. It seems possibly interesting, but I need more explanation to see how. In particular, I understand GTD when it tells me how to prioritize human-sized tasks (actionable, doable in 2 minutes, or needs to be deferred in one of several ways), but where/what are the similar breakpoints in human-computer interaction? Can you make an interaction chart that looks like a GTD flowchart?