-Let's start our decision of design patterns by looking - -2
-at the history of patterns. As you know, I like - -3
-to give this sort of historical perspective on how and - -4
-when concepts were defined. In this case, we have to - -5
-go back to 1977, when Christopher Alexander, an American professor - -6
-of architecture at UC Berkeley, introduces the idea of patterns, - -7
-successful solutions to problems, in his book called a Pattern - -8
-Language. The book contains about 250 patterns. And the idea - -9
-is that occupants of a building should be able - -10
-to design it. And the patterns in the book provide - -11
-a way to do that. And this idea of design - -12
-patterns, so, a formal way of documenting successful solutions to - -13
-problems, inspired several other disciplines. In particular, in 1987, - -14
-Ward Cunningham and Kent Beck leveraged this idea of Alexander's - -15
-patterns in the context of an object oriented language. - -16
-And in this specific the language was Smalltalk. - -17
-Some of you might know the language. So what Cunningham - -18
-and Beck did, was to create a 5 pattern - -19
-language for guiding novice Smalltalk programmers. So they did - -20
-an experiment and had several developers using their patterns, and - -21
-the experiment was extremely successful. The users were able to - -22
-create elegant designs using the provided patterns. And in case - -23
-you are interested in reading about it, Cunningham and Beck - -24
-reported the results in the article, Using Pattern Languages for - -25
-Object Oriented Programs, which was published at the - -26
-International Conference on Object Oriented Programming, Systems, Languages, and - -27
-Applications, also called OOPSLA, in 1987. At the - -28
-same time, Eric Gamma was working on his dissertation, - -29
-whose topic was the importance of patterns and - -30
-how to capture them. Between 1987 and 1992, there - -31
-were several workshops related to design patterns. And - -32
-in 1992, Jim Coplien compiled a catalog of C++ - -33
-items, which are some sort of patterns, and - -34
-he listed this catalog of patterns in his - -35
-book, which was titled Advanced C++ Programming Styles - -36
-and Idioms. Finally, in 1993 and 1994, there were - -37
-several additional workshops focused on patterns. And this - -38
-workshop brought together many patterns folks, including these - -39
-4 guys, Erich Gamma, Richard Helm, Ralph Johnson, - -40
-and John Vlissides. These guys are also known as - -41
-the gang of 4. And the result of this collaboration was the - -42
-famous book Design Patterns: Elements of - -43
-Reusable Object Oriented Software. So this - -44
-is basically The Book on design patterns. If you want to buy - -45
-a book on design pattern, this is the one you should get. -- cgit 1.4.1