May 13, 2009

Brief History of Pattern Languages


As I mentioned before, I regard the method of "pattern languages" as a tool for supporting social creativity.  A pattern language is composed by elements called "pattern". Each pattern is described in the same format. Although there are several formats,  it definitely contains "name" of the pattern, "problem" and its "solution". It must also contain "context" to apply the pattern, "force" as a premise that cause the problem, and "related patterns." Such patterns are written and organized in what is called a "catalogue".  

Here, I shall look back the history of the method briefly. The idea and method of pattern language was originally proposed in architectural design and it has been applied and well known in the software design.

In 1970s, Christopher Alexander observed certain things which were seen repeatedly in the shape of buildings, he found that the relation between those things is "pattern" (Alexander 1979). Then he released two hundred and fifty three patterns of construction work and designing from his previous eight years of work (Alexander et.al. 1977).  Alexander aimed to explore "the idea and principle of the process of designing by mass," and "to create a common language for designing and construction, in order to establish a process to let everybody participate in creating their own environment in non-industrialized era" (King 1993). Alexander suggested "You can use it to work with your neighbors, to improve your town and neighborhood. You can use it to design a house for yourself, with your family; or to work with other people to design an office or a workshop or a public building like a school"(Alexander et.al. 1977). 

The idea of pattern language was introduced as an alternative tool to the uniformed production due to the modernization.  Alexander points out that the problem of modern production system is that "Present systems of production are organized in such a way that most decisions are made very much 'at arm's length.' Decisions are made by people remote from the consequences of the decisions"(Alexander et.al. 1985) in each situation.  He also states that "the house is no longer an 'object' which is manufactured, but a thing of love, which is nurtured, made, grown, and personal", so that it leads to the idea that "families would design their own houses" (Alexander et.al. 1985).  Alexander thought that constructing and reconstructing it by ourselves, so that "as a matter of feeling, each house becomes a genuine life base, a place for the heart, a place in which the family, as a unique being in society, may be anchored and nourished" (Alexander et.al. 1985).  Thus, in order to let each family to control their environment directly, the idea of pattern language was introduced.

In 1980s and 1990s, the idea and method of pattern language was applied into the field of software development by Kent Beck and Ward Cunningham (Beck and Cunningham 1987). Then pattern languages in software development had been well known as "design patterns" (Gamma et.al. 1995) in 1990s. Recently, specific theme like school design(Nair and Fielding 2005) and interface design (Tidwell 2005) are also proposed in the area of architecture and software design. And then, some pattern languages have been written for designing organization(Coplien and Harrison 2004; Manns and Rising 2005) and pedagogics (Anthony 1996; Bergin 2000).

In our view, the next areas to be applied in 2000s are the human and social activity related to social creativity, so we ourselves propose several pattern languages such as pattern languages of project management (Naruse et.al. 2008), research activity (Kobayashi  et.al. 2008), and learning (Learning Pattern Project 2009).


References
Alexander, C., Ishikawa, S., and Silvertein, M. (1977): A Pattern Language. Oxford University Press.
Alexander, C. (1979): The Timeless Way of Building. Oxford University Press.
Alexander, C., Davis, H., Martinez, J., and Corner, D.(1985): The Production of Houses. Oxford University Press.
Anthony, D. L. G. (1996): "Patterns for classroom education" in Pattern Languages of Programming 2, J. M. Vlissides, J. O. Coplien, and N. L. Kerth (eds), AddisonWesley.
Beck, K. and Cunningham, W. (1987): "Using pattern languages for object-oriented programs" in OOPSLA-87 workshop on the Specification and Design for Object-Oriented Programming.
Bergin, J. (2000):  "Fourteen pedagogical patterns" in European Conference of Pattern Languages of Programs.
Coplien, J. O. and Harrison, N. B. (2004): Organizational Patterns of Agile Software Development. Prentice Hall.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995):  Design Patterns : Elements of Reusable Object-Oriented Software. Addison-Wesley.
King, I. F. (1993): Christopher Alexander and Contemporary Architecture: a+u Architecture and Urbanism, August 1993 Special Issue. a+u Publishing.
Kobayashi, Y., Yoshida, M., Sasaki, A. and Iba, T. (2008) . "Research patterns: A pattern language for academic research" in 15th Conference on Pattern Languages of Programs.
Learning Pattern Project (2009): Learning Patterns: A Pattern Language for Active Learners at SFC 2009, Keio University.
Manns, M. L. and Rising, L. (2005): Fearless Change: Patterns for Introducing New Ideas. Addison-Wesley.
Nair, P. and Fielding, R.(2005): The Language of School Design: Design Patterns for 21st Century Schools. Designshare, Inc.
Naruse, M., Takada, Y., Yumura, Y., Wakamatsu, K., and Iba, T. (2008): "Project patterns: A pattern language for promoting project" in 15th Conference on Pattern Languages of Programs.
Tidwell, J.(2005): Designing Interfaces: Patterns for Effective Interaction Design. O’Reilly Media.


1 comment:

  1. hi,
    i am a student of Msc. computer science. and i m doing my dissertation on "Pattern generation using syntactic rules". and i have develop one function which produce patterns according to inserted tiles and rules. you this article about history of pattern really helped me in my dissertation writing. thanks so much.....

    ReplyDelete