about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L3 Design Patterns Subtitles/2 - History of Design Patterns - lang_en_vs6.srt
blob: 5fbb886151755475d4a2e2afa47169a13acd1c3f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
1
00:00:00,160 --> 00:00:02,780
Let's start our decision of design patterns by looking

2
00:00:02,780 --> 00:00:05,280
at the history of patterns. As you know, I like

3
00:00:05,280 --> 00:00:07,810
to give this sort of historical perspective on how and

4
00:00:07,810 --> 00:00:10,600
when concepts were defined. In this case, we have to

5
00:00:10,600 --> 00:00:14,830
go back to 1977, when Christopher Alexander, an American professor

6
00:00:14,830 --> 00:00:18,300
of architecture at UC Berkeley, introduces the idea of patterns,

7
00:00:18,300 --> 00:00:21,700
successful solutions to problems, in his book called a Pattern

8
00:00:21,700 --> 00:00:25,640
Language. The book contains about 250 patterns. And the idea

9
00:00:25,640 --> 00:00:27,700
is that occupants of a building should be able

10
00:00:27,700 --> 00:00:30,110
to design it. And the patterns in the book provide

11
00:00:30,110 --> 00:00:32,368
a way to do that. And this idea of design

12
00:00:32,368 --> 00:00:35,964
patterns, so, a formal way of documenting successful solutions to

13
00:00:35,964 --> 00:00:41,200
problems, inspired several other disciplines. In particular, in 1987,

14
00:00:41,200 --> 00:00:44,810
Ward Cunningham and Kent Beck leveraged this idea of Alexander's

15
00:00:44,810 --> 00:00:48,360
patterns in the context of an object oriented language.

16
00:00:48,360 --> 00:00:50,840
And in this specific the language was Smalltalk.

17
00:00:50,840 --> 00:00:52,666
Some of you might know the language. So what Cunningham

18
00:00:54,492 --> 00:00:56,320
and Beck did, was to create a 5 pattern

19
00:00:56,320 --> 00:00:59,880
language for guiding novice Smalltalk programmers. So they did

20
00:00:59,880 --> 00:01:03,090
an experiment and had several developers using their patterns, and

21
00:01:03,090 --> 00:01:06,330
the experiment was extremely successful. The users were able to

22
00:01:06,330 --> 00:01:09,940
create elegant designs using the provided patterns. And in case

23
00:01:09,940 --> 00:01:12,210
you are interested in reading about it, Cunningham and Beck

24
00:01:12,210 --> 00:01:15,660
reported the results in the article, Using Pattern Languages for

25
00:01:15,660 --> 00:01:17,940
Object Oriented Programs, which was published at the

26
00:01:17,940 --> 00:01:21,854
International Conference on Object Oriented Programming, Systems, Languages, and

27
00:01:21,854 --> 00:01:25,390
Applications, also called OOPSLA, in 1987. At the

28
00:01:25,390 --> 00:01:28,480
same time, Eric Gamma was working on his dissertation,

29
00:01:28,480 --> 00:01:31,030
whose topic was the importance of patterns and

30
00:01:31,030 --> 00:01:34,430
how to capture them. Between 1987 and 1992, there

31
00:01:34,430 --> 00:01:37,520
were several workshops related to design patterns. And

32
00:01:37,520 --> 00:01:40,740
in 1992, Jim Coplien compiled a catalog of C++

33
00:01:40,740 --> 00:01:43,140
items, which are some sort of patterns, and

34
00:01:43,140 --> 00:01:45,130
he listed this catalog of patterns in his

35
00:01:45,130 --> 00:01:48,720
book, which was titled Advanced C++ Programming Styles

36
00:01:48,720 --> 00:01:52,952
and Idioms. Finally, in 1993 and 1994, there were

37
00:01:52,952 --> 00:01:56,160
several additional workshops focused on patterns. And this

38
00:01:56,160 --> 00:01:59,625
workshop brought together many patterns folks, including these

39
00:01:59,625 --> 00:02:03,040
4 guys, Erich Gamma, Richard Helm, Ralph Johnson,

40
00:02:03,040 --> 00:02:06,040
and John Vlissides. These guys are also known as

41
00:02:06,040 --> 00:02:08,970
the gang of 4. And the result of this collaboration was the

42
00:02:08,970 --> 00:02:11,840
famous book Design Patterns: Elements of

43
00:02:11,840 --> 00:02:14,320
Reusable Object Oriented Software. So this

44
00:02:14,320 --> 00:02:17,640
is basically The Book on design patterns. If you want to buy

45
00:02:17,640 --> 00:02:19,780
a book on design pattern, this is the one you should get.