Friday, October 21, 2011

Fowler's GUI Architectures


I re-read Martin Fowler's GUI Architectures article over the past couple of days. It's interesting in that it describes MVC as it was originally conceived for Smalltalk. Fowler describes this and its immediate derivatives very well. However, when he gets to the various flavors of MVP, the tone changes. It almost feels like he got tired of writing the article, which I can understand as I got tired of reading it and had to take it in multiple sittings. However, the lack of thorough illustration of the MVP varieties is a little disappointing after working through the rest of the article.

One thing that he does is describe the various architectures in terms of more fundamental patterns, such as Observer Synchronization, Presentation Model, and Supervising Controller. These seem to me to be the really valuable nuggets of information. You can think of each architecture as a combination of these fundamental patterns such that it fits the programming environment, specifically the capabilities of the source language(s) and runtime.

This is where the later applications of these UI architectures breaks down -- the UI architectures were designed specifically for the programming environment. It is unlikely that when you change some aspect of the programming environment, such as the source language, that the same UI architecture will be optimal. It is inevitable that some of the constituent patterns will be modified, substituted, or removed.

From here, I need to read more detail about the patterns and explore some of the further reading. Then, I can truly evaluate UI frameworks, not for the architecture that they claim to follow but for which patterns they use and well they fit in the environment that I'm working in.

No comments:

Post a Comment