Directions in Object-Oriented Programming From Actions to Agents
1 00:00:05,590 --> 00:00:12,969 in the timeframe of 15 or 20 years ago
2 00:00:08,340 --> 00:00:16,289 Alan Kay conceived of the Dynabook which
3 00:00:12,969 --> 00:00:19,510 most of you probably know was a
4 00:00:16,289 --> 00:00:24,130 conceptual forerunner of the PCs and and
5 00:00:19,510 --> 00:00:26,640 and probably some future machines that
6 00:00:24,130 --> 00:00:28,869 we've not not even seen commercially yet
7 00:00:26,640 --> 00:00:32,910 Alan Kay obviously as the man who's
8 00:00:28,869 --> 00:00:35,440 always been ahead of his time he was the
9 00:00:32,910 --> 00:00:36,489 inventor of the first small talk some of
10 00:00:35,440 --> 00:00:38,320 you may know that there were actually
11 00:00:36,489 --> 00:00:40,120 several small talks the one that you now
12 00:00:38,320 --> 00:00:41,890 know a small talk ad was the fourth or
13 00:00:40,120 --> 00:00:43,780 fifth in a sequence of small talks Alan
14 00:00:41,890 --> 00:00:49,720 Kay did that first that very first small
15 00:00:43,780 --> 00:00:52,060 talk and currently he is a an Apple
16 00:00:49,720 --> 00:00:55,150 fellow and prior to that he was a chief
17 00:00:52,060 --> 00:00:57,910 scientist at Atari with credentials like
18 00:00:55,150 --> 00:01:00,550 that I found it interesting to note in
19 00:00:57,910 --> 00:01:03,250 his biography that the only professional
20 00:01:00,550 --> 00:01:06,630 Society of which he is a member is the
21 00:01:03,250 --> 00:01:08,890 International Society of organ builders
22 00:01:06,630 --> 00:01:12,430 without taking any more of Alan's time
23 00:01:08,890 --> 00:01:19,419 let me now bring up Alan Kay
24 00:01:12,430 --> 00:01:19,419 [Applause]
25 00:01:20,290 --> 00:01:33,180 I have a piece
26 00:01:37,790 --> 00:01:40,450 oops
27 00:01:49,900 --> 00:01:55,760 so I found it necessary when giving
28 00:01:52,640 --> 00:01:57,350 talks in the East Coast to put the slide
29 00:01:55,760 --> 00:02:00,140 up so that people who might be offended
30 00:01:57,350 --> 00:02:04,430 can leave early I thought this might be
31 00:02:00,140 --> 00:02:08,119 an especially appropriate place well I
32 00:02:04,430 --> 00:02:13,430 think a good way to start off is to
33 00:02:08,119 --> 00:02:15,110 recall a statement by William James made
34 00:02:13,430 --> 00:02:19,220 about a century ago about the three
35 00:02:15,110 --> 00:02:21,860 stages in the life cycle of any idea and
36 00:02:19,220 --> 00:02:24,220 the first stage is that the new idea is
37 00:02:21,860 --> 00:02:27,050 condemned as being the work of madmen
38 00:02:24,220 --> 00:02:28,910 then a few years later it's remarked on
39 00:02:27,050 --> 00:02:29,450 as being commonplace and obvious all the
40 00:02:28,910 --> 00:02:31,640 time
41 00:02:29,450 --> 00:02:35,319 and the final stage is when the original
42 00:02:31,640 --> 00:02:39,790 condemned errs claim to have invented it
43 00:02:35,319 --> 00:02:41,980 I think we're at that stage now with
44 00:02:39,790 --> 00:02:44,200 objects in window oriented and pointing
45 00:02:41,980 --> 00:02:48,549 user interfaces which to me means that
46 00:02:44,200 --> 00:02:50,829 they must be hopelessly obsolete so
47 00:02:48,549 --> 00:02:52,569 we're actually we're actually having a
48 00:02:50,829 --> 00:02:56,590 symposium here about a patient who's
49 00:02:52,569 --> 00:02:58,540 already dead but in the grand tradition
50 00:02:56,590 --> 00:03:03,340 of computer science will live on for at
51 00:02:58,540 --> 00:03:06,389 least a century this is gonna be a
52 00:03:03,340 --> 00:03:08,919 different talk than norms talk norm is a
53 00:03:06,389 --> 00:03:12,000 norms talk as a practical talk by a
54 00:03:08,919 --> 00:03:15,150 person who got interested in
55 00:03:12,000 --> 00:03:19,030 object-oriented programming as a way of
56 00:03:15,150 --> 00:03:23,829 implementing large-scale complex systems
57 00:03:19,030 --> 00:03:27,819 in the context of a university where you
58 00:03:23,829 --> 00:03:29,709 don't have a lot of people to do the
59 00:03:27,819 --> 00:03:33,549 work and a lot of the work is transient
60 00:03:29,709 --> 00:03:36,069 and this this need to deal with
61 00:03:33,549 --> 00:03:37,900 complexity in a way is one of the main
62 00:03:36,069 --> 00:03:41,470 selling points in object-oriented
63 00:03:37,900 --> 00:03:42,790 systems and people have this notion that
64 00:03:41,470 --> 00:03:45,459 because object-oriented systems are
65 00:03:42,790 --> 00:03:48,159 usually worked on by small groups that
66 00:03:45,459 --> 00:03:50,470 it's something mainly for small groups
67 00:03:48,159 --> 00:03:52,689 the main reason small groups use it I
68 00:03:50,470 --> 00:03:54,759 think is because it's one of the few
69 00:03:52,689 --> 00:03:57,400 vehicles that a small group can do truly
70 00:03:54,759 --> 00:03:59,409 interesting things in a short time but
71 00:03:57,400 --> 00:04:02,489 if object-oriented systems are
72 00:03:59,409 --> 00:04:06,970 implemented in a in a thoughtful way
73 00:04:02,489 --> 00:04:09,669 than by their very nature and we'll talk
74 00:04:06,970 --> 00:04:11,560 about this in a bit if the protection
75 00:04:09,669 --> 00:04:13,000 mechanisms that are inherent in the
76 00:04:11,560 --> 00:04:14,829 notion of object-oriented programming
77 00:04:13,000 --> 00:04:17,829 are also implemented which they often
78 00:04:14,829 --> 00:04:20,739 aren't then one should be able to
79 00:04:17,829 --> 00:04:24,310 organize very large-scale projects as
80 00:04:20,739 --> 00:04:26,229 well because the whole joy in the
81 00:04:24,310 --> 00:04:28,210 object-oriented design is the notion
82 00:04:26,229 --> 00:04:30,639 that when you put an object in the
83 00:04:28,210 --> 00:04:33,699 system it should be able to make use of
84 00:04:30,639 --> 00:04:35,919 what's there but its presence in the
85 00:04:33,699 --> 00:04:38,349 system shouldn't disturb any other
86 00:04:35,919 --> 00:04:41,289 objects that's in the system it should
87 00:04:38,349 --> 00:04:42,940 be something that is self-contained it
88 00:04:41,289 --> 00:04:46,910 should not be able to be destroyed by
89 00:04:42,940 --> 00:04:48,920 the system and so forth and so the
90 00:04:46,910 --> 00:04:50,750 in an object-oriented system that's well
91 00:04:48,920 --> 00:04:52,220 designed you should be able to add new
92 00:04:50,750 --> 00:04:55,130 knowledge in an incremental fashion
93 00:04:52,220 --> 00:04:56,630 almost linear fashion how we can a
94 00:04:55,130 --> 00:04:58,370 little bit later we'll talk about a
95 00:04:56,630 --> 00:05:00,230 couple of the places where that isn't
96 00:04:58,370 --> 00:05:01,940 really true and maybe some of the
97 00:05:00,230 --> 00:05:04,880 solutions for it but I thought a good
98 00:05:01,940 --> 00:05:07,570 way of starting off would be to just
99 00:05:04,880 --> 00:05:09,650 take a look at a couple of
100 00:05:07,570 --> 00:05:11,990 object-oriented systems of the past or
101 00:05:09,650 --> 00:05:13,850 almost object-oriented systems the first
102 00:05:11,990 --> 00:05:16,640 one and I understand they're only a few
103 00:05:13,850 --> 00:05:19,790 people here last night to look at it I
104 00:05:16,640 --> 00:05:21,800 have an excerpt maybe this is even a
105 00:05:19,790 --> 00:05:26,110 different film of Ivan Sutherlands
106 00:05:21,800 --> 00:05:28,820 sketchpad which was one of the earliest
107 00:05:26,110 --> 00:05:30,620 object-oriented systems although Ivan
108 00:05:28,820 --> 00:05:32,090 didn't really quite think of it that way
109 00:05:30,620 --> 00:05:42,740 there's an interesting history behind it
110 00:05:32,090 --> 00:05:48,130 so let's show that first tape this is
111 00:05:42,740 --> 00:05:50,660 implemented by making this room that's -
112 00:05:48,130 --> 00:05:58,010 the last computer in the u.s. to have
113 00:05:50,660 --> 00:05:59,960 its own roof this is what you saw there
114 00:05:58,010 --> 00:06:01,340 was the very first implementation of the
115 00:05:59,960 --> 00:06:02,810 rubberband technique and here's
116 00:06:01,340 --> 00:06:05,810 something you don't often see even in
117 00:06:02,810 --> 00:06:08,000 graphic systems today he pointed he did
118 00:06:05,810 --> 00:06:10,820 a rough sketch he pointed to those edges
119 00:06:08,000 --> 00:06:12,350 and told him he wanted them all mutually
120 00:06:10,820 --> 00:06:14,720 perpendicular and sketchpad figured out
121 00:06:12,350 --> 00:06:16,130 how to do it we just saw that sketchpad
122 00:06:14,720 --> 00:06:21,830 was also the first system to have a
123 00:06:16,130 --> 00:06:23,720 window this is all done in 1962 there he
124 00:06:21,830 --> 00:06:27,290 pointed to those two lines and told them
125 00:06:23,720 --> 00:06:32,150 that he wanted them to be parallel and
126 00:06:27,290 --> 00:06:34,970 now the constraint is to be collinear so
127 00:06:32,150 --> 00:06:41,480 these little dashes will be precisely
128 00:06:34,970 --> 00:06:43,370 lined up over the lines underneath this
129 00:06:41,480 --> 00:06:44,840 is the first time when people discovered
130 00:06:43,370 --> 00:06:47,039 that the light pin was not a good input
131 00:06:44,840 --> 00:06:49,350 device
132 00:06:47,039 --> 00:06:51,789 and in spite of that it's been
133 00:06:49,350 --> 00:06:55,930 reinvented at least 90 times in the last
134 00:06:51,789 --> 00:07:03,580 25 years so he's made a hole in the
135 00:06:55,930 --> 00:07:06,039 flange and now he wants a rivet and
136 00:07:03,580 --> 00:07:09,759 again the whole idea behind sketchpad is
137 00:07:06,039 --> 00:07:11,889 you should be able to quickly sketch in
138 00:07:09,759 --> 00:07:13,360 an approximation of what you wanted
139 00:07:11,889 --> 00:07:16,300 who's going to use that as the center
140 00:07:13,360 --> 00:07:19,030 for the arc and then get the system to
141 00:07:16,300 --> 00:07:21,759 complete the drawing by implementing
142 00:07:19,030 --> 00:07:23,949 various constraints or rules and here
143 00:07:21,759 --> 00:07:27,610 he's saying make those four lines
144 00:07:23,949 --> 00:07:30,370 mutually perpendicular the doing of that
145 00:07:27,610 --> 00:07:32,530 pulls the diagonal line which pulls the
146 00:07:30,370 --> 00:07:36,789 center which pulls the arc which makes a
147 00:07:32,530 --> 00:07:40,800 perfect rivet so this is also the first
148 00:07:36,789 --> 00:07:40,800 non procedural programming system
149 00:07:43,740 --> 00:07:47,050 showing that no matter what you do and
150 00:07:45,699 --> 00:07:49,210 of course he could have added further
151 00:07:47,050 --> 00:07:52,000 constraints that would constrain the
152 00:07:49,210 --> 00:07:53,710 ratios of those sides so that no matter
153 00:07:52,000 --> 00:07:56,460 how you distorted it always would come
154 00:07:53,710 --> 00:08:02,380 back to something that was the same
155 00:07:56,460 --> 00:08:04,360 relative size so that was a master what
156 00:08:02,380 --> 00:08:12,010 we call a class today and here's an
157 00:08:04,360 --> 00:08:15,010 instance of that rivet the instances can
158 00:08:12,010 --> 00:08:16,570 be scaled and rotated in real time you
159 00:08:15,010 --> 00:08:21,190 might wonder why is a display jumping
160 00:08:16,570 --> 00:08:23,320 around like that well I didn't display
161 00:08:21,190 --> 00:08:27,159 is back then the tx2 here is putting up
162 00:08:23,320 --> 00:08:29,410 every screen individually in fact memory
163 00:08:27,159 --> 00:08:32,900 for each separate dot
164 00:08:29,410 --> 00:08:34,550 so this is a software oriented display
165 00:08:32,900 --> 00:08:37,370 and when you put up a lot of dots that
166 00:08:34,550 --> 00:08:41,980 starts flashing because it's tracking
167 00:08:37,370 --> 00:08:41,980 the pen here are a couple more instances
168 00:08:42,880 --> 00:08:49,100 listen you might imagine led to the
169 00:08:44,960 --> 00:08:51,680 development of better displays now he
170 00:08:49,100 --> 00:08:53,300 doesn't like the cross piece on the
171 00:08:51,680 --> 00:08:55,130 rivet so he goes back to the master and
172 00:08:53,300 --> 00:08:57,560 says make those invisible they're still
173 00:08:55,130 --> 00:08:59,150 there but they're invisible now and lo
174 00:08:57,560 --> 00:09:05,930 and behold we see that the instances
175 00:08:59,150 --> 00:09:08,270 feel that change dynamically and
176 00:09:05,930 --> 00:09:12,110 remarkably sketchpad even had a form of
177 00:09:08,270 --> 00:09:15,310 inheritance who's actually one of the
178 00:09:12,110 --> 00:09:18,590 first object-oriented software systems
179 00:09:15,310 --> 00:09:20,120 so now he's made this constructed thing
180 00:09:18,590 --> 00:09:24,590 into a master and now he can get
181 00:09:20,120 --> 00:09:27,170 instances of it I once asked Ivan
182 00:09:24,590 --> 00:09:29,060 Sutherland many years ago how is it
183 00:09:27,170 --> 00:09:31,700 possible for you to in a single year of
184 00:09:29,060 --> 00:09:33,230 1962 to do the first computer graphics
185 00:09:31,700 --> 00:09:34,820 system the first non procedural
186 00:09:33,230 --> 00:09:36,500 programming system and the first
187 00:09:34,820 --> 00:09:43,730 object-oriented software system and he
188 00:09:36,500 --> 00:09:49,300 said well I didn't know it was hard ok
189 00:09:43,730 --> 00:09:49,300 stopped them made a tremendous
190 00:09:49,360 --> 00:09:58,630 impression I had to learn it that's 22
191 00:09:54,860 --> 00:10:01,280 now when I first went to graduate school
192 00:09:58,630 --> 00:10:02,870 the desk at the University of Utah Dave
193 00:10:01,280 --> 00:10:04,190 Evans had one of these theses in and
194 00:10:02,870 --> 00:10:05,990 hand out and you had to prove that you
195 00:10:04,190 --> 00:10:13,120 understood it before you're allowed to
196 00:10:05,990 --> 00:10:13,120 sit down and think I might
197 00:10:23,180 --> 00:10:32,850 this isn't worthwhile looking at in any
198 00:10:26,070 --> 00:10:40,320 detail maybe I'll just use this from the
199 00:10:32,850 --> 00:10:42,210 main line here this this is essentially
200 00:10:40,320 --> 00:10:44,610 the pathway that I took getting
201 00:10:42,210 --> 00:10:46,680 interested in this stuff I was in the
202 00:10:44,610 --> 00:10:50,279 Air Force and there was a file system on
203 00:10:46,680 --> 00:10:51,930 the Burroughs 220 that was what we would
204 00:10:50,279 --> 00:10:54,300 call today object oriented back in those
205 00:10:51,930 --> 00:10:55,680 days I didn't have operating systems of
206 00:10:54,300 --> 00:10:58,830 course and these days did not have
207 00:10:55,680 --> 00:11:01,970 operating systems either back then there
208 00:10:58,830 --> 00:11:01,970 was more excuse for it
209 00:11:02,540 --> 00:11:11,490 and the Meniere's had the problem of how
210 00:11:08,130 --> 00:11:12,420 can I hand data tapes around Air
211 00:11:11,490 --> 00:11:14,700 Training Command
212 00:11:12,420 --> 00:11:17,430 they all have Burroughs 220s but there
213 00:11:14,700 --> 00:11:20,850 is no standard operating system and so
214 00:11:17,430 --> 00:11:22,680 somebody some genius in the late 50s
215 00:11:20,850 --> 00:11:25,620 came up with the following idea he said
216 00:11:22,680 --> 00:11:29,520 well what if we had to take format like
217 00:11:25,620 --> 00:11:31,320 this with each long tape record is going
218 00:11:29,520 --> 00:11:33,480 to be made up of three parts the first
219 00:11:31,320 --> 00:11:35,610 part is going to be a relative transfer
220 00:11:33,480 --> 00:11:37,710 vector into the second part which is
221 00:11:35,610 --> 00:11:41,400 going to be a bunch of Burroughs 220
222 00:11:37,710 --> 00:11:43,050 code that 220 code will know how to
223 00:11:41,400 --> 00:11:45,450 interpret the third part which are going
224 00:11:43,050 --> 00:11:47,580 to be our unit records so all you have
225 00:11:45,450 --> 00:11:49,350 to do when you get one of these tapes is
226 00:11:47,580 --> 00:11:51,060 you simply read the transfer back to the
227 00:11:49,350 --> 00:11:53,160 front part of it into a special place in
228 00:11:51,060 --> 00:11:54,780 core and then you can do anything you
229 00:11:53,160 --> 00:11:57,000 want with these tapes because we'll have
230 00:11:54,780 --> 00:11:59,130 a standard protocol in this transfer
231 00:11:57,000 --> 00:12:01,860 vector that's the way that file system
232 00:11:59,130 --> 00:12:03,780 worked back then heck of a good idea I
233 00:12:01,860 --> 00:12:05,850 was just mentioning to somebody this
234 00:12:03,780 --> 00:12:07,380 morning that the first time I ever did
235 00:12:05,850 --> 00:12:10,260 what we would call object-oriented
236 00:12:07,380 --> 00:12:13,350 programming today was done on the 1401
237 00:12:10,260 --> 00:12:16,320 in Auto coder because we used this
238 00:12:13,350 --> 00:12:18,870 technique on the 1401 s there as well
239 00:12:16,320 --> 00:12:21,029 and made up macros to allow us this
240 00:12:18,870 --> 00:12:23,580 generic access to things
241 00:12:21,029 --> 00:12:26,700 terrific idea why didn't it last well
242 00:12:23,580 --> 00:12:30,360 COBOL actually drove it out the adoption
243 00:12:26,700 --> 00:12:33,930 of COBOL as a as a way of getting ahead
244 00:12:30,360 --> 00:12:35,860 actually gave us a weaker metaphor that
245 00:12:33,930 --> 00:12:38,529 we're still saddled with today
246 00:12:35,860 --> 00:12:40,240 the borough's be 5,000 actually
247 00:12:38,529 --> 00:12:43,029 implemented these ideas and hardware it
248 00:12:40,240 --> 00:12:45,130 it antedate sketchpad and probably sent
249 00:12:43,029 --> 00:12:47,019 seven out of the top ten ideas ever
250 00:12:45,130 --> 00:12:48,339 thought up in software are actually
251 00:12:47,019 --> 00:12:51,100 implementing the hardware of this
252 00:12:48,339 --> 00:12:52,690 machine Burroughs made the enormous
253 00:12:51,100 --> 00:12:56,290 mistake of trying to explain this
254 00:12:52,690 --> 00:12:58,120 machine to their customers back then
255 00:12:56,290 --> 00:12:59,680 they actually hired college graduates
256 00:12:58,120 --> 00:13:01,390 and taught them how the machine works so
257 00:12:59,680 --> 00:13:03,910 they could go out and tell the customers
258 00:13:01,390 --> 00:13:05,380 how good it really was and I was I think
259 00:13:03,910 --> 00:13:07,990 it was the third machine that I learned
260 00:13:05,380 --> 00:13:09,640 back then and the these college
261 00:13:07,990 --> 00:13:11,290 graduates scared the heck out of all of
262 00:13:09,640 --> 00:13:13,120 these old data processing managers who
263 00:13:11,290 --> 00:13:16,750 are just struggling out of punch cards
264 00:13:13,120 --> 00:13:19,620 and the machine was late as well so it
265 00:13:16,750 --> 00:13:23,649 just never caught on sketchpad and then
266 00:13:19,620 --> 00:13:27,160 Simula was the first programming
267 00:13:23,649 --> 00:13:30,550 language that I would call trying to be
268 00:13:27,160 --> 00:13:32,230 an object-oriented language and there
269 00:13:30,550 --> 00:13:36,459 are two versions of it in between I
270 00:13:32,230 --> 00:13:39,010 designed a language called flex which is
271 00:13:36,459 --> 00:13:41,860 an attempt to simplify Simula and in
272 00:13:39,010 --> 00:13:43,839 some sense some real sense the small
273 00:13:41,860 --> 00:13:47,290 talks were an attempt to send to
274 00:13:43,839 --> 00:13:50,500 simplify Simula as well but there are
275 00:13:47,290 --> 00:13:53,980 all these other things that fed into it
276 00:13:50,500 --> 00:13:55,930 over here which the most important ones
277 00:13:53,980 --> 00:13:59,020 for I think object-oriented programming
278 00:13:55,930 --> 00:14:02,050 are the Lisp influences and over on this
279 00:13:59,020 --> 00:14:04,570 side influences that are basically
280 00:14:02,050 --> 00:14:12,579 either philosophical or coming out of
281 00:14:04,570 --> 00:14:16,060 cell biology now reason I bring these
282 00:14:12,579 --> 00:14:17,950 these up is because I think it's it's
283 00:14:16,060 --> 00:14:19,660 critical when thinking about
284 00:14:17,950 --> 00:14:22,720 object-oriented programming not to look
285 00:14:19,660 --> 00:14:24,790 at the the systems that are out there
286 00:14:22,720 --> 00:14:26,140 today and think this is object-oriented
287 00:14:24,790 --> 00:14:28,750 programming because in my opinion it
288 00:14:26,140 --> 00:14:31,390 isn't to me small talk eighty is not an
289 00:14:28,750 --> 00:14:33,579 object-oriented language because it
290 00:14:31,390 --> 00:14:35,410 lacks one of the things that I thought
291 00:14:33,579 --> 00:14:38,290 was most important in object-oriented
292 00:14:35,410 --> 00:14:42,850 design and that is differential
293 00:14:38,290 --> 00:14:44,500 protection which means that you should
294 00:14:42,850 --> 00:14:46,000 be it when an object is put out into the
295 00:14:44,500 --> 00:14:49,360 world that should be able to protect
296 00:14:46,000 --> 00:14:51,910 itself against various
297 00:14:49,360 --> 00:14:54,519 cendars so for instance if you have a
298 00:14:51,910 --> 00:14:55,959 file object but you would like the file
299 00:14:54,519 --> 00:14:57,970 object to be able to do is to
300 00:14:55,959 --> 00:14:59,860 discriminate about who's sending it the
301 00:14:57,970 --> 00:15:03,160 message to change bite number eight in
302 00:14:59,860 --> 00:15:06,940 the file and it's possible to do that in
303 00:15:03,160 --> 00:15:11,260 small talk but it's not set up to
304 00:15:06,940 --> 00:15:13,380 actually do that you can act in small
305 00:15:11,260 --> 00:15:16,000 talk you have to instrument every method
306 00:15:13,380 --> 00:15:17,380 that you want to protect in order to in
307 00:15:16,000 --> 00:15:20,140 order for it to do something
308 00:15:17,380 --> 00:15:21,839 the earliest small talk it was combined
309 00:15:20,140 --> 00:15:24,310 with what's known as capability
310 00:15:21,839 --> 00:15:25,990 protection there was objects were seen
311 00:15:24,310 --> 00:15:28,480 as a generalization of capability
312 00:15:25,990 --> 00:15:31,839 protection and that protection was built
313 00:15:28,480 --> 00:15:34,360 in so that no object could command
314 00:15:31,839 --> 00:15:35,680 another one to me the biggest difference
315 00:15:34,360 --> 00:15:37,120 between whether you really have an
316 00:15:35,680 --> 00:15:39,149 object-oriented system or not is whether
317 00:15:37,120 --> 00:15:43,839 you are really sending messages or not
318 00:15:39,149 --> 00:15:45,670 and small talk and Objective C and C++
319 00:15:43,839 --> 00:15:46,990 and all this you aren't really sending
320 00:15:45,670 --> 00:15:49,360 messages you're actually just doing
321 00:15:46,990 --> 00:15:52,029 subroutine calls which means that in
322 00:15:49,360 --> 00:15:55,410 some sense the sender guy on the outside
323 00:15:52,029 --> 00:15:59,560 is commanding the object to do things
324 00:15:55,410 --> 00:16:01,000 and the whole notion is not for doing
325 00:15:59,560 --> 00:16:03,790 commands but for doing something else
326 00:16:01,000 --> 00:16:05,970 let me give you a sort of a feeling for
327 00:16:03,790 --> 00:16:05,970 that
328 00:16:17,560 --> 00:16:25,279 when I started thinking about this stuff
329 00:16:21,070 --> 00:16:30,050 for real after I done a done a few
330 00:16:25,279 --> 00:16:33,320 failures I came to realize that the only
331 00:16:30,050 --> 00:16:35,839 model that I knew of either done by man
332 00:16:33,320 --> 00:16:38,330 or in nature that really could handle
333 00:16:35,839 --> 00:16:41,600 complexity in any appreciable fashion
334 00:16:38,330 --> 00:16:44,089 was a biological one the biological one
335 00:16:41,600 --> 00:16:47,540 ninety percent of a cell's effort is
336 00:16:44,089 --> 00:16:49,040 going into its own protection only ten
337 00:16:47,540 --> 00:16:50,690 percent of the cells effort is going
338 00:16:49,040 --> 00:16:52,220 into contribute or less as going into
339 00:16:50,690 --> 00:16:55,970 contributing to what the organism is
340 00:16:52,220 --> 00:17:00,260 about and the cells communicate both in
341 00:16:55,970 --> 00:17:03,470 the embryo and in the adult organism by
342 00:17:00,260 --> 00:17:06,020 sending messages around that they have
343 00:17:03,470 --> 00:17:08,750 very elaborate mechanisms to keep most
344 00:17:06,020 --> 00:17:12,050 messages out but many of the diseases
345 00:17:08,750 --> 00:17:14,390 that we fall prey to including AIDS have
346 00:17:12,050 --> 00:17:20,390 to do with cells not being able to keep
347 00:17:14,390 --> 00:17:24,920 certain messages out so that translated
348 00:17:20,390 --> 00:17:27,290 to me into take the biological cell
349 00:17:24,920 --> 00:17:29,120 metaphor and try and translate it into
350 00:17:27,290 --> 00:17:31,250 machine terms it's like you have lots of
351 00:17:29,120 --> 00:17:33,710 separate little computers running on a
352 00:17:31,250 --> 00:17:35,990 network able to send messages back and
353 00:17:33,710 --> 00:17:37,790 forth to each other when you think of
354 00:17:35,990 --> 00:17:40,340 this as the ground base of
355 00:17:37,790 --> 00:17:41,750 object-oriented systems then it's very
356 00:17:40,340 --> 00:17:44,120 difficult to think of this machine
357 00:17:41,750 --> 00:17:46,460 commanding this other machine because
358 00:17:44,120 --> 00:17:48,170 real computers have mechanisms for
359 00:17:46,460 --> 00:17:51,410 holding off commands they don't have to
360 00:17:48,170 --> 00:17:54,320 listen to you if they don't want and so
361 00:17:51,410 --> 00:17:56,120 the idea that each one of these objects
362 00:17:54,320 --> 00:17:57,530 is responsible for its own protection as
363 00:17:56,120 --> 00:18:00,850 the strongest thing you should ever be
364 00:17:57,530 --> 00:18:03,920 able to do is to be able to beseech
365 00:18:00,850 --> 00:18:06,620 please do this for me but you shouldn't
366 00:18:03,920 --> 00:18:07,730 be able to say do this for me any more
367 00:18:06,620 --> 00:18:10,040 than you should be able to do the
368 00:18:07,730 --> 00:18:12,650 equivalent of an assignment statement so
369 00:18:10,040 --> 00:18:14,809 one of the major things I worked on when
370 00:18:12,650 --> 00:18:16,250 I was designing the early small talk was
371 00:18:14,809 --> 00:18:19,100 how can we get rid of the assignment
372 00:18:16,250 --> 00:18:20,450 statement as an imperative and replace
373 00:18:19,100 --> 00:18:22,280 it with something that was much more of
374 00:18:20,450 --> 00:18:24,980 a suggestion
375 00:18:22,280 --> 00:18:26,840 and the amount of state that got changed
376 00:18:24,980 --> 00:18:28,970 if any was completely up to the
377 00:18:26,840 --> 00:18:30,530 discretion of the underlying object to
378 00:18:28,970 --> 00:18:32,809 me any language that doesn't implement
379 00:18:30,530 --> 00:18:35,540 that fully is not an object-oriented
380 00:18:32,809 --> 00:18:37,220 language because you've what you have is
381 00:18:35,540 --> 00:18:39,950 something more much more like abstract
382 00:18:37,220 --> 00:18:41,300 data types where you have a bad old idea
383 00:18:39,950 --> 00:18:44,530 and you're trying to put Bearnaise sauce
384 00:18:41,300 --> 00:18:47,660 on it in the hopes that will be better
385 00:18:44,530 --> 00:18:53,240 but Bearnaise sauce on a hot dog doesn't
386 00:18:47,660 --> 00:18:57,080 help so the input basic two implications
387 00:18:53,240 --> 00:18:59,090 here is that you have an outside and an
388 00:18:57,080 --> 00:19:01,850 inside the outside is completely
389 00:18:59,090 --> 00:19:04,309 behavioral messages can't be commands
390 00:19:01,850 --> 00:19:08,030 and assignment has to be replaced by
391 00:19:04,309 --> 00:19:09,500 advise if you have those two things then
392 00:19:08,030 --> 00:19:11,990 you have object or whether you have
393 00:19:09,500 --> 00:19:14,780 inheritance or not is not nearly as
394 00:19:11,990 --> 00:19:16,220 critical not nearly as critical because
395 00:19:14,780 --> 00:19:17,840 I'm a good object-oriented language you
396 00:19:16,220 --> 00:19:20,990 can actually build it and you may very
397 00:19:17,840 --> 00:19:28,490 well want to in some form of delegation
398 00:19:20,990 --> 00:19:30,410 mechanism so on these mysteries started
399 00:19:28,490 --> 00:19:32,960 becoming clear when I worked on this
400 00:19:30,410 --> 00:19:35,590 machine this is the old flex machine
401 00:19:32,960 --> 00:19:38,390 that Idi Cheadle and I did 20 years ago
402 00:19:35,590 --> 00:19:41,809 67 to 69 this is what it looked like on
403 00:19:38,390 --> 00:19:44,780 its own display and it was influenced
404 00:19:41,809 --> 00:19:49,280 very much by sketchpad by angle Bart's
405 00:19:44,780 --> 00:19:51,470 first hypertext system by simulant had a
406 00:19:49,280 --> 00:19:54,020 programming language I designed called
407 00:19:51,470 --> 00:19:58,070 flex it had a user interface that was so
408 00:19:54,020 --> 00:19:59,540 well designed it most people reacted to
409 00:19:58,070 --> 00:20:01,309 it the way you would if you opened up
410 00:19:59,540 --> 00:20:02,929 the lid of a garbage can and saw
411 00:20:01,309 --> 00:20:04,370 something moist and fuzzy down at the
412 00:20:02,929 --> 00:20:06,620 bottom
413 00:20:04,370 --> 00:20:14,630 or pretty much the way people react to
414 00:20:06,620 --> 00:20:18,380 APL today I'm really proud of that user
415 00:20:14,630 --> 00:20:19,850 interface of all the things I've
416 00:20:18,380 --> 00:20:25,159 designed it produced probably the most
417 00:20:19,850 --> 00:20:27,830 startling reaction but didn't have a few
418 00:20:25,159 --> 00:20:32,029 ideas on it it had a really good
419 00:20:27,830 --> 00:20:33,830 windowing system one of the first and I
420 00:20:32,029 --> 00:20:35,360 had multiple windows it was a
421 00:20:33,830 --> 00:20:37,580 calligraphic display so the windows
422 00:20:35,360 --> 00:20:39,049 didn't overlap back then but a lot of
423 00:20:37,580 --> 00:20:43,760 the things that we're familiar with now
424 00:20:39,049 --> 00:20:46,520 in modern user interface were developed
425 00:20:43,760 --> 00:20:53,120 on this machine although kind of ass
426 00:20:46,520 --> 00:20:56,539 backwards most of the time so after
427 00:20:53,120 --> 00:20:58,610 wandering about what we should do
428 00:20:56,539 --> 00:21:00,890 I realized that McLuhan made this great
429 00:20:58,610 --> 00:21:02,390 statement that I read one day said I
430 00:21:00,890 --> 00:21:06,950 don't know who discovered water but it
431 00:21:02,390 --> 00:21:09,190 wasn't a fish and I realized that as a
432 00:21:06,950 --> 00:21:11,539 graduate student I was the world's worst
433 00:21:09,190 --> 00:21:12,679 user interface designer because the
434 00:21:11,539 --> 00:21:14,299 whole thing about being a graduate
435 00:21:12,679 --> 00:21:17,450 student is to learn a really stupid
436 00:21:14,299 --> 00:21:20,360 system with 500 obscure commands just to
437 00:21:17,450 --> 00:21:21,980 prove that you can when you turn a
438 00:21:20,360 --> 00:21:24,020 person like that loose on a user
439 00:21:21,980 --> 00:21:26,980 interface you wind up with something
440 00:21:24,020 --> 00:21:26,980 like ms-dos
441 00:21:29,039 --> 00:21:33,460 so for a while I was thinking well I
442 00:21:31,510 --> 00:21:35,529 need some other context there must be
443 00:21:33,460 --> 00:21:37,539 some other context and I looked at some
444 00:21:35,529 --> 00:21:39,970 of the language work with chimpanzees
445 00:21:37,539 --> 00:21:42,460 was rather hard to get hold of
446 00:21:39,970 --> 00:21:43,840 chimpanzees the Xerox corporate
447 00:21:42,460 --> 00:21:46,470 executives who would never stay around
448 00:21:43,840 --> 00:21:46,470 long enough
449 00:21:48,190 --> 00:21:53,480 so finally for various reasons decided
450 00:21:51,770 --> 00:21:59,210 to work with children who are also an
451 00:21:53,480 --> 00:22:01,340 alien species but Palo Alto had had bred
452 00:21:59,210 --> 00:22:10,970 hundreds of them just for our
453 00:22:01,340 --> 00:22:13,760 experiments and once we started thinking
454 00:22:10,970 --> 00:22:18,320 about children as the end users lots of
455 00:22:13,760 --> 00:22:21,500 things changed because children had to
456 00:22:18,320 --> 00:22:22,990 have something so portable they could
457 00:22:21,500 --> 00:22:25,910 carry other things too
458 00:22:22,990 --> 00:22:33,799 in other words 0.5 herniation spur block
459 00:22:25,910 --> 00:22:35,570 is not portability so about 20 years ago
460 00:22:33,799 --> 00:22:38,679 I came up with this idea which is called
461 00:22:35,570 --> 00:22:42,580 the we call the Dynabook back then in it
462 00:22:38,679 --> 00:22:44,690 my friend Dave Liddell who is here today
463 00:22:42,580 --> 00:22:47,660 when he was at the University of
464 00:22:44,690 --> 00:22:50,510 Illinois and worked for Owens Corning
465 00:22:47,660 --> 00:22:52,400 worked on the very first flat panel
466 00:22:50,510 --> 00:22:54,830 display which I saw a one-inch square
467 00:22:52,400 --> 00:22:55,940 version of back in 1968 and realized it
468 00:22:54,830 --> 00:22:58,580 was only going to be a number of years
469 00:22:55,940 --> 00:23:00,710 before we could put all of the silicon
470 00:22:58,580 --> 00:23:02,480 that was in the Flex machine on the back
471 00:23:00,710 --> 00:23:05,150 of the display and that this would be
472 00:23:02,480 --> 00:23:07,309 one of the inescapable form factors of
473 00:23:05,150 --> 00:23:09,679 the computers of the of the future so
474 00:23:07,309 --> 00:23:11,000 once starting to think about that and
475 00:23:09,679 --> 00:23:12,679 thinking about the children as the end
476 00:23:11,000 --> 00:23:16,370 users it meant that things had to be
477 00:23:12,679 --> 00:23:19,130 much much simpler than we'd ever done
478 00:23:16,370 --> 00:23:22,070 before and one of the hints I got was
479 00:23:19,130 --> 00:23:25,340 from a great system done at RAND
480 00:23:22,070 --> 00:23:27,410 Corporation a Rand probably has
481 00:23:25,340 --> 00:23:28,850 contributed more to user interface
482 00:23:27,410 --> 00:23:32,990 design than almost any other single
483 00:23:28,850 --> 00:23:34,460 place nobody knows that probably nobody
484 00:23:32,990 --> 00:23:36,020 in this room or maybe only one or two
485 00:23:34,460 --> 00:23:39,080 people in this room remember a language
486 00:23:36,020 --> 00:23:42,410 called Joss Joss was designed in the
487 00:23:39,080 --> 00:23:46,120 very early 60s on a machine called the
488 00:23:42,410 --> 00:23:49,070 johniac and Joss was probably the best
489 00:23:46,120 --> 00:23:51,919 teletype or typewriter oriented
490 00:23:49,070 --> 00:23:54,919 programming system ever done it was the
491 00:23:51,919 --> 00:23:58,460 one that invented the interaction scheme
492 00:23:54,919 --> 00:24:01,660 that we now know of in APL of having two
493 00:23:58,460 --> 00:24:05,150 in direct commands that came from Jos
494 00:24:01,660 --> 00:24:07,640 basic adopted at many years later and so
495 00:24:05,150 --> 00:24:08,960 forth and Jos had the misfortune of
496 00:24:07,640 --> 00:24:10,850 being implemented on the wrong machine
497 00:24:08,960 --> 00:24:13,760 or else we would have been able to start
498 00:24:10,850 --> 00:24:17,420 much further along than then a language
499 00:24:13,760 --> 00:24:20,300 like basic so this language have been
500 00:24:17,420 --> 00:24:22,370 developed for non expert users who are
501 00:24:20,300 --> 00:24:27,020 mostly economists who had to do a fair
502 00:24:22,370 --> 00:24:29,930 amount of computation and the these
503 00:24:27,020 --> 00:24:31,970 users loved Jos fact I get a chance to
504 00:24:29,930 --> 00:24:34,400 use it in the 60s as well and it was
505 00:24:31,970 --> 00:24:35,870 just there's one of the few systems that
506 00:24:34,400 --> 00:24:38,510 you've ever worked on in which there was
507 00:24:35,870 --> 00:24:39,680 a pleasant little tingle when you knew
508 00:24:38,510 --> 00:24:40,970 you were going to get a chance to work
509 00:24:39,680 --> 00:24:42,830 on it for a few hours in the afternoon
510 00:24:40,970 --> 00:24:45,560 how many systems can you say that about
511 00:24:42,830 --> 00:24:47,950 it was just encrypt there was nothing
512 00:24:45,560 --> 00:24:51,020 left to chance everything was done
513 00:24:47,950 --> 00:24:53,120 beautifully aesthetically and so forth
514 00:24:51,020 --> 00:24:56,660 and the only complaint these economists
515 00:24:53,120 --> 00:24:59,120 had was they said hey none of us can
516 00:24:56,660 --> 00:25:01,310 type we love this system but we can't
517 00:24:59,120 --> 00:25:03,710 type can't you do something for us so
518 00:25:01,310 --> 00:25:05,300 the RAM people went actually went
519 00:25:03,710 --> 00:25:06,260 through their waste paper baskets to see
520 00:25:05,300 --> 00:25:08,030 what they did right
521 00:25:06,260 --> 00:25:10,760 I guess not too many divorces were
522 00:25:08,030 --> 00:25:14,630 caused by that these guys used to write
523 00:25:10,760 --> 00:25:17,510 on legal pads and so forth and they made
524 00:25:14,630 --> 00:25:20,180 diagrams and so the RAM people in 1964
525 00:25:17,510 --> 00:25:22,490 invented the first tablet was called Ram
526 00:25:20,180 --> 00:25:27,230 tablet I remember when we got one at
527 00:25:22,490 --> 00:25:30,130 Utah a few years later 1967 one of those
528 00:25:27,230 --> 00:25:32,510 Rand tablets thousand by a thousand
529 00:25:30,130 --> 00:25:37,240 stylus pointing device first good one
530 00:25:32,510 --> 00:25:40,580 ever done 1967 that single device cost
531 00:25:37,240 --> 00:25:41,960 $18,000 and you had to hook it to a
532 00:25:40,580 --> 00:25:43,700 machine that was worth a half a million
533 00:25:41,960 --> 00:25:48,020 to a million to make any use of it a
534 00:25:43,700 --> 00:25:48,980 year after 1965 a guy by the name of
535 00:25:48,020 --> 00:25:51,170 Gabe groaner
536 00:25:48,980 --> 00:25:53,390 did the first really good gesture
537 00:25:51,170 --> 00:25:54,920 recognizer and a few years later they
538 00:25:53,390 --> 00:25:57,080 put this all together into a system
539 00:25:54,920 --> 00:25:59,210 called Grail for graphical input
540 00:25:57,080 --> 00:26:03,740 language let's run the second cut on
541 00:25:59,210 --> 00:26:06,100 tape one here's what this looked like 20
542 00:26:03,740 --> 00:26:06,100 years ago
543 00:26:14,340 --> 00:26:21,550 this list takes us back where we may
544 00:26:19,390 --> 00:26:23,650 start to edit the flow diagram the no
545 00:26:21,550 --> 00:26:26,110 keyboard first we erase a flow arrow
546 00:26:23,650 --> 00:26:28,860 then move the connector toddled away so
547 00:26:26,110 --> 00:26:31,270 that we may draw a box in its place
548 00:26:28,860 --> 00:26:35,830 it recognizes he wants a box and just
549 00:26:31,270 --> 00:26:39,400 makes one the printed nine used as
550 00:26:35,830 --> 00:26:43,630 commentary only in this case the box is
551 00:26:39,400 --> 00:26:45,130 large so we make as where modern-day
552 00:26:43,630 --> 00:26:47,679 window control came from literally
553 00:26:45,130 --> 00:26:52,510 Android flow from the connector to the
554 00:26:47,679 --> 00:26:57,340 box attached a decision element to the
555 00:26:52,510 --> 00:26:59,140 box and joy flow from it to scan we then
556 00:26:57,340 --> 00:27:02,559 erased the floor arrows attached to the
557 00:26:59,140 --> 00:27:09,970 process post new area and move the box
558 00:27:02,559 --> 00:27:15,870 to a new position this allows us to draw
559 00:27:09,970 --> 00:27:24,010 a new box then chop off its corner and
560 00:27:15,870 --> 00:27:26,170 label it sub scan with a residual error
561 00:27:24,010 --> 00:27:29,580 I notice it misses the end here he sees
562 00:27:26,170 --> 00:27:32,050 it he has to thing but it's motiveless
563 00:27:29,580 --> 00:27:36,670 so just continues what he was doing it
564 00:27:32,050 --> 00:27:39,550 makes the change correct the label add a
565 00:27:36,670 --> 00:27:45,040 decision on sub scan so that control may
566 00:27:39,550 --> 00:27:53,320 flow to the pleat the diagram from scan
567 00:27:45,040 --> 00:27:56,440 to post a chance for an hour really
568 00:27:53,320 --> 00:28:00,910 changed used interaction or synching
569 00:27:56,440 --> 00:28:04,059 your hands right display the structures
570 00:28:00,910 --> 00:28:06,610 underneath so it wasn't just personal
571 00:28:04,059 --> 00:28:09,760 wasn't just going from the mainframe to
572 00:28:06,610 --> 00:28:11,980 the desktop this was intimate because
573 00:28:09,760 --> 00:28:14,260 you were right there there were fewer
574 00:28:11,980 --> 00:28:16,600 barriers notice that the command scheme
575 00:28:14,260 --> 00:28:19,030 is not even menu-driven here the
576 00:28:16,600 --> 00:28:21,550 commands are actually analogues to the
577 00:28:19,030 --> 00:28:22,400 results you want to have so it's not
578 00:28:21,550 --> 00:28:25,820 just icon
579 00:28:22,400 --> 00:28:29,240 it's an illogical very powerful set of
580 00:28:25,820 --> 00:28:32,570 ideas again done on a machine almost the
581 00:28:29,240 --> 00:28:36,290 size of this this room but slightly less
582 00:28:32,570 --> 00:28:39,440 powerful than a 512 K Mac but this is a
583 00:28:36,290 --> 00:28:42,050 technology that actually got buried we
584 00:28:39,440 --> 00:28:43,790 we did many versions of this kind of
585 00:28:42,050 --> 00:28:46,100 stuff at Parc I used to show this movie
586 00:28:43,790 --> 00:28:47,750 every couple of months to my group so we
587 00:28:46,100 --> 00:28:53,840 wouldn't forget what it was that we were
588 00:28:47,750 --> 00:28:56,030 trying to do and the we're ready now in
589 00:28:53,840 --> 00:28:58,370 the next few years to see a rise of
590 00:28:56,030 --> 00:29:00,110 gesture recognition because the micros
591 00:28:58,370 --> 00:29:02,770 are now powerful enough to do this and
592 00:29:00,110 --> 00:29:06,050 still have some cycles left over for
593 00:29:02,770 --> 00:29:07,640 doing work for the for the user and you
594 00:29:06,050 --> 00:29:09,890 may not know it or not but actually one
595 00:29:07,640 --> 00:29:13,970 of the best groups in the country in
596 00:29:09,890 --> 00:29:17,240 doing a handwriting recognition is at
597 00:29:13,970 --> 00:29:21,890 IBM big surprise but you actually have
598 00:29:17,240 --> 00:29:23,540 one of the better technologies here and
599 00:29:21,890 --> 00:29:26,720 so if you're you're interested in this I
600 00:29:23,540 --> 00:29:29,240 suggest you look in the IBM phone
601 00:29:26,720 --> 00:29:33,890 dictionary for the group that is doing
602 00:29:29,240 --> 00:29:36,680 it now John Sculley was once wearing how
603 00:29:33,890 --> 00:29:38,150 many scientists that were at IBM and I
604 00:29:36,680 --> 00:29:40,460 said yeah John there are many more
605 00:29:38,150 --> 00:29:42,290 scientists at IBM there are employees at
606 00:29:40,460 --> 00:29:53,420 Apple but don't worry IBM doesn't listen
607 00:29:42,290 --> 00:29:54,800 to them just like it Xerox you know you
608 00:29:53,420 --> 00:29:56,150 want them to let you alone when you're
609 00:29:54,800 --> 00:29:58,280 working but then you want them to come
610 00:29:56,150 --> 00:30:02,050 around when you've got something
611 00:29:58,280 --> 00:30:08,500 [Laughter]
612 00:30:02,050 --> 00:30:08,500 it's hard to get both to happen so I
613 00:30:09,610 --> 00:30:14,240 want to intertwine some stuff in here
614 00:30:11,990 --> 00:30:16,040 because in although this isn't really a
615 00:30:14,240 --> 00:30:19,250 historical thing it's very to me it's
616 00:30:16,040 --> 00:30:21,680 very important that the stuff that gave
617 00:30:19,250 --> 00:30:24,440 rise to what this symposium is all about
618 00:30:21,680 --> 00:30:26,200 was not at all disconnected from the
619 00:30:24,440 --> 00:30:31,460 fact that there were going to be users
620 00:30:26,200 --> 00:30:34,760 working on the on a system and so the
621 00:30:31,460 --> 00:30:36,260 the whole thing that brought forth real
622 00:30:34,760 --> 00:30:37,730 object-oriented programming and small
623 00:30:36,260 --> 00:30:39,230 talk and the user interface that went
624 00:30:37,730 --> 00:30:41,750 along with it was that we had these
625 00:30:39,230 --> 00:30:44,000 children and we wanted these children to
626 00:30:41,750 --> 00:30:45,470 not just be able to have access to
627 00:30:44,000 --> 00:30:46,640 things but we wanted the children to be
628 00:30:45,470 --> 00:30:49,640 able to build things
629 00:30:46,640 --> 00:30:52,160 so our if this what we said was is if
630 00:30:49,640 --> 00:30:53,870 this is if this were print literacy we
631 00:30:52,160 --> 00:30:56,060 don't want to teach the kids just to
632 00:30:53,870 --> 00:30:58,850 read print literacy isn't just reading
633 00:30:56,060 --> 00:31:00,800 it's also writing we want the kids to
634 00:30:58,850 --> 00:31:03,080 somehow be able to write and the
635 00:31:00,800 --> 00:31:05,600 equivalent of writing on the computer is
636 00:31:03,080 --> 00:31:07,340 not necessarily programming in the in
637 00:31:05,600 --> 00:31:10,220 the COBOL sense but it certainly is
638 00:31:07,340 --> 00:31:12,590 building structures of your own and so
639 00:31:10,220 --> 00:31:16,750 very early we got into this whole area
640 00:31:12,590 --> 00:31:20,810 of wondering well how does the mind work
641 00:31:16,750 --> 00:31:23,000 if at all and the first thing we
642 00:31:20,810 --> 00:31:24,860 discovered that whatever common sense
643 00:31:23,000 --> 00:31:28,460 notions we had about the mind working
644 00:31:24,860 --> 00:31:29,750 they certainly weren't at all in accord
645 00:31:28,460 --> 00:31:32,000 with what had been discovered in the
646 00:31:29,750 --> 00:31:34,460 last couple of decades
647 00:31:32,000 --> 00:31:37,280 for instance common sense idea that's
648 00:31:34,460 --> 00:31:39,170 been in history for thousands of years
649 00:31:37,280 --> 00:31:43,160 is that because we think of ourselves as
650 00:31:39,170 --> 00:31:46,400 an individual we think there's a single
651 00:31:43,160 --> 00:31:49,730 eyeness and even in the work of Piaget
652 00:31:46,400 --> 00:31:51,890 we see in thinking of the progression of
653 00:31:49,730 --> 00:31:53,390 an infant mind to an adult mind as
654 00:31:51,890 --> 00:31:55,880 something like the transformation of a
655 00:31:53,390 --> 00:31:58,190 caterpillar into a butterfly that you go
656 00:31:55,880 --> 00:32:00,230 from something less form to something
657 00:31:58,190 --> 00:32:04,280 more form but it's all made out of the
658 00:32:00,230 --> 00:32:05,450 same stuff whereas the the truth seems
659 00:32:04,280 --> 00:32:07,430 to be quite different and quite
660 00:32:05,450 --> 00:32:09,280 startling that our mind is really made
661 00:32:07,430 --> 00:32:13,220 up of a kind of a patchwork quilt
662 00:32:09,280 --> 00:32:14,419 modules or objects if you will and these
663 00:32:13,220 --> 00:32:15,889 objects
664 00:32:14,419 --> 00:32:17,840 indicate imperfectly because they came
665 00:32:15,889 --> 00:32:20,090 about at different biological times for
666 00:32:17,840 --> 00:32:23,929 different evolutionary reasons and it
667 00:32:20,090 --> 00:32:26,859 give you an idea of the modularity of
668 00:32:23,929 --> 00:32:29,299 the mind let's take a look at this and
669 00:32:26,859 --> 00:32:32,470 let's see who in the audience can spot
670 00:32:29,299 --> 00:32:32,470 what's wrong with this picture
671 00:32:32,649 --> 00:32:38,019 besides the fact you've all seen ups and
672 00:32:34,970 --> 00:32:42,009 upside down faces before who can see
673 00:32:38,019 --> 00:32:45,669 smile is what upside down and what else
674 00:32:42,009 --> 00:32:50,419 these teeth are and what else the eyes
675 00:32:45,669 --> 00:32:52,669 okay so now if we were in school and I
676 00:32:50,419 --> 00:32:54,080 were a teacher I would say to you this
677 00:32:52,669 --> 00:32:58,639 is the way things are taught in school
678 00:32:54,080 --> 00:33:00,710 by language I would say that what we've
679 00:32:58,639 --> 00:33:03,259 done here is we've taken a picture of a
680 00:33:00,710 --> 00:33:05,239 young girl extracted the eyes and mouth
681 00:33:03,259 --> 00:33:07,039 turned them upside down put them back in
682 00:33:05,239 --> 00:33:10,009 with an airbrush and then turned the
683 00:33:07,039 --> 00:33:11,419 entire picture upside down okay so
684 00:33:10,009 --> 00:33:12,710 having said that you should be perfectly
685 00:33:11,419 --> 00:33:15,129 prepared for what it looks like right
686 00:33:12,710 --> 00:33:15,129 side up
687 00:33:20,140 --> 00:33:24,760 now I'm gonna turn this back as I've
688 00:33:22,420 --> 00:33:35,110 discovered discovered nobody will listen
689 00:33:24,760 --> 00:33:37,929 to me when it's on the other way so
690 00:33:35,110 --> 00:33:40,080 that's interesting that I gave you the
691 00:33:37,929 --> 00:33:43,450 exactly the same amount of information
692 00:33:40,080 --> 00:33:45,010 two times one through language and one
693 00:33:43,450 --> 00:33:47,530 visually and you had a completely
694 00:33:45,010 --> 00:33:49,570 different reaction to the exact same
695 00:33:47,530 --> 00:33:51,250 information that's the kind of thing
696 00:33:49,570 --> 00:33:54,760 that perceptual cycle and cognitive
697 00:33:51,250 --> 00:33:56,710 psychologists really love because means
698 00:33:54,760 --> 00:33:58,270 that different information going into
699 00:33:56,710 --> 00:33:59,650 different channels is going to different
700 00:33:58,270 --> 00:34:01,480 parts of the brain and you're having
701 00:33:59,650 --> 00:34:05,110 different reactions therefore there are
702 00:34:01,480 --> 00:34:08,020 modules in this particular one the
703 00:34:05,110 --> 00:34:09,820 module that's causing this effect the
704 00:34:08,020 --> 00:34:11,859 two modules are actually known
705 00:34:09,820 --> 00:34:13,419 physiologically they're located on the
706 00:34:11,859 --> 00:34:16,359 under right hand side of the brain where
707 00:34:13,419 --> 00:34:18,190 you do face recognition and about an
708 00:34:16,359 --> 00:34:21,639 inch apart from each other one of them
709 00:34:18,190 --> 00:34:23,649 is a expert in recognizing face like
710 00:34:21,639 --> 00:34:25,869 things as the thing allows you to see
711 00:34:23,649 --> 00:34:27,760 faces in the clouds when children get
712 00:34:25,869 --> 00:34:29,980 scale scared at twilight with menacing
713 00:34:27,760 --> 00:34:32,590 shadows and so forth that module is
714 00:34:29,980 --> 00:34:34,600 going off saying I see a face like thing
715 00:34:32,590 --> 00:34:37,690 right now it's reporting I see an upside
716 00:34:34,600 --> 00:34:39,940 down face like thing about an inch away
717 00:34:37,690 --> 00:34:40,810 is another module that's only interested
718 00:34:39,940 --> 00:34:42,940 in eyes and mouth
719 00:34:40,810 --> 00:34:44,290 it doesn't care where they are and it's
720 00:34:42,940 --> 00:34:46,899 reporting that's a good looking mouth
721 00:34:44,290 --> 00:34:49,629 and those are okay eyes and so the two
722 00:34:46,899 --> 00:34:52,200 descriptions basically have very little
723 00:34:49,629 --> 00:34:54,340 interaction they're quite independent
724 00:34:52,200 --> 00:34:58,690 reporting's from two different modules
725 00:34:54,340 --> 00:35:00,190 now when I go to this version the face
726 00:34:58,690 --> 00:35:02,170 guy is saying that's a right-side up
727 00:35:00,190 --> 00:35:04,060 face like thing and the eyes and mouth
728 00:35:02,170 --> 00:35:06,450 guy is saying something is very wrong
729 00:35:04,060 --> 00:35:06,450 here
730 00:35:11,710 --> 00:35:16,370 now you can imagine why nature might
731 00:35:14,180 --> 00:35:17,720 want you to be startled see a face like
732 00:35:16,370 --> 00:35:24,980 this up close to might mean you're going
733 00:35:17,720 --> 00:35:27,230 to die on the next 10 seconds and in
734 00:35:24,980 --> 00:35:28,790 fact it's this is not something that you
735 00:35:27,230 --> 00:35:31,010 learn it's actually built into our
736 00:35:28,790 --> 00:35:32,540 nervous systems from birth into most
737 00:35:31,010 --> 00:35:34,910 mammals in fact so if you try this
738 00:35:32,540 --> 00:35:37,630 experiment out on a dog I suggest you
739 00:35:34,910 --> 00:35:37,630 pick a small one
740 00:35:42,210 --> 00:35:45,349 [Applause]
741 00:35:45,540 --> 00:35:54,119 so important idea here is that there are
742 00:35:49,840 --> 00:35:58,109 modules the just what the modules are is
743 00:35:54,119 --> 00:36:01,330 still open to debate some of the modules
744 00:35:58,109 --> 00:36:05,170 are even metaphoric I'm not all of them
745 00:36:01,330 --> 00:36:06,940 are physiologically cited because of the
746 00:36:05,170 --> 00:36:09,250 way the the nervous system is organized
747 00:36:06,940 --> 00:36:11,140 they can act we can have modules that
748 00:36:09,250 --> 00:36:13,660 are distributed all over the the brains
749 00:36:11,140 --> 00:36:15,760 of going ideas like left brain and right
750 00:36:13,660 --> 00:36:17,950 brain are a particularly weak way of
751 00:36:15,760 --> 00:36:19,359 trying to characterize it but most
752 00:36:17,950 --> 00:36:21,190 important thing is once you realize that
753 00:36:19,359 --> 00:36:23,050 there's more than one module and that
754 00:36:21,190 --> 00:36:25,450 the modules have different ways of
755 00:36:23,050 --> 00:36:28,810 thinking about things and are somewhat
756 00:36:25,450 --> 00:36:31,420 weak recalcitrant and unable to talk
757 00:36:28,810 --> 00:36:34,480 with each other then you have the basis
758 00:36:31,420 --> 00:36:38,890 for a much stronger user interface
759 00:36:34,480 --> 00:36:41,140 design or curriculum now the ideas that
760 00:36:38,890 --> 00:36:43,480 led to this user interface that norm was
761 00:36:41,140 --> 00:36:45,940 talking about it was developed at the
762 00:36:43,480 --> 00:36:47,650 same time as small talk came from a
763 00:36:45,940 --> 00:36:51,790 Harvard psychologist by the name of
764 00:36:47,650 --> 00:36:56,170 Jerome Bruner and Bruner had redone a
765 00:36:51,790 --> 00:36:58,090 number of the experiments of Piaget but
766 00:36:56,170 --> 00:37:01,180 with some twists so for instance Bruner
767 00:36:58,090 --> 00:37:05,619 took a child he was in this middle
768 00:37:01,180 --> 00:37:07,359 Piaget stage the image stage and is
769 00:37:05,619 --> 00:37:08,859 where you take a squat glass of water
770 00:37:07,359 --> 00:37:11,290 and you pour it into a tall thin glass
771 00:37:08,859 --> 00:37:14,890 and the child says yep this was more
772 00:37:11,290 --> 00:37:18,100 water in the tall thin glass and what
773 00:37:14,890 --> 00:37:19,570 Brenner thought to do is to then occlude
774 00:37:18,100 --> 00:37:21,220 the tall thin glass with a piece of
775 00:37:19,570 --> 00:37:22,990 cardboard and ask the kid again and the
776 00:37:21,220 --> 00:37:24,280 kid said oh wait a minute there must be
777 00:37:22,990 --> 00:37:26,920 the same amount of water because where
778 00:37:24,280 --> 00:37:28,000 would it go and Brendan would take it
779 00:37:26,920 --> 00:37:29,859 away and the kids would say no look
780 00:37:28,000 --> 00:37:30,940 there's more there's more Brenda would
781 00:37:29,859 --> 00:37:32,410 cover it up and they could say well hey
782 00:37:30,940 --> 00:37:35,790 wait a minute so if you have any
783 00:37:32,410 --> 00:37:35,790 six-year-olds you'd like to tour man
784 00:37:38,080 --> 00:37:42,800 and burner did booty did many
785 00:37:40,550 --> 00:37:45,140 experiments in the 50s and early 60s and
786 00:37:42,800 --> 00:37:48,170 the conclusion was that what we didn't
787 00:37:45,140 --> 00:37:49,760 have was a progression of stages of the
788 00:37:48,170 --> 00:37:50,960 caterpillar going to the butterfly but
789 00:37:49,760 --> 00:37:53,510 instead what we had were multiple
790 00:37:50,960 --> 00:37:55,220 mentalities and a change in dominance
791 00:37:53,510 --> 00:37:58,040 because brunner could show the existence
792 00:37:55,220 --> 00:38:02,030 of the previous and mentalities to come
793 00:37:58,040 --> 00:38:03,080 by various tricks and Brunner said of
794 00:38:02,030 --> 00:38:06,680 well there are lots of different
795 00:38:03,080 --> 00:38:08,120 mentalities and he picked three that he
796 00:38:06,680 --> 00:38:10,010 could show the existence of and
797 00:38:08,120 --> 00:38:11,870 concentrated his curriculum ideas on
798 00:38:10,010 --> 00:38:15,140 those and those three were a kinesthetic
799 00:38:11,870 --> 00:38:17,300 mentality identical with the PJs first
800 00:38:15,140 --> 00:38:19,760 stage where a whole is to diggit an
801 00:38:17,300 --> 00:38:21,590 object is to grab it the iconic
802 00:38:19,760 --> 00:38:23,960 mentality that we just talked about and
803 00:38:21,590 --> 00:38:26,930 then around 11 or 12 a symbolic
804 00:38:23,960 --> 00:38:28,970 mentality where facts and logic are used
805 00:38:26,930 --> 00:38:32,720 or at least in Swiss French children
806 00:38:28,970 --> 00:38:34,250 around 11 and 12 American children have
807 00:38:32,720 --> 00:38:36,200 a very difficult time ever getting to
808 00:38:34,250 --> 00:38:39,040 the facts and logic stage because we
809 00:38:36,200 --> 00:38:44,950 have an enormous iconic barrier between
810 00:38:39,040 --> 00:38:47,090 them which is called television now the
811 00:38:44,950 --> 00:38:50,870 existence of these three mentalities
812 00:38:47,090 --> 00:38:54,440 they each they each have striking
813 00:38:50,870 --> 00:38:57,590 characteristics and in a nutshell as I
814 00:38:54,440 --> 00:38:59,870 can only go into here the kinesthetic
815 00:38:57,590 --> 00:39:03,080 mentality is the one that places you in
816 00:38:59,870 --> 00:39:04,970 space not your visual mentality as you
817 00:39:03,080 --> 00:39:07,580 might think because you can blind a
818 00:39:04,970 --> 00:39:09,110 person person can be blinded and still
819 00:39:07,580 --> 00:39:13,160 have a perfect sense of where they are
820 00:39:09,110 --> 00:39:14,810 in space but if you remove the for
821 00:39:13,160 --> 00:39:17,060 instance a person's limb from their body
822 00:39:14,810 --> 00:39:19,190 map as sometimes happens in an accident
823 00:39:17,060 --> 00:39:21,050 then they may have a perfectly healthy
824 00:39:19,190 --> 00:39:23,860 leg attached to them but they cannot
825 00:39:21,050 --> 00:39:26,030 feel that it is there and they they
826 00:39:23,860 --> 00:39:27,620 relate waking up in the middle of the
827 00:39:26,030 --> 00:39:29,630 night with somebody else's leg in bed
828 00:39:27,620 --> 00:39:31,730 with them and in fact they have a very
829 00:39:29,630 --> 00:39:33,080 hard time looking at their leg to see
830 00:39:31,730 --> 00:39:35,210 that it's actually attached to their
831 00:39:33,080 --> 00:39:36,860 body there's kind of a blur there
832 00:39:35,210 --> 00:39:40,130 because of course we see not what our
833 00:39:36,860 --> 00:39:42,710 eye sees but what our brain knows we see
834 00:39:40,130 --> 00:39:46,220 a simulation that is pieced together and
835 00:39:42,710 --> 00:39:48,410 our brain has had its knowledge removed
836 00:39:46,220 --> 00:39:49,549 that this limb is part of us and is very
837 00:39:48,410 --> 00:39:51,799 hard to actually
838 00:39:49,549 --> 00:39:53,809 what it what it actually yes so the
839 00:39:51,799 --> 00:39:56,329 kinesthetic sense is the one that places
840 00:39:53,809 --> 00:39:59,289 us in space it is the one that when we
841 00:39:56,329 --> 00:40:01,459 when removed is the most alienating
842 00:39:59,289 --> 00:40:05,209 contact one is the deepest one the
843 00:40:01,459 --> 00:40:08,119 oldest evolutionary one the tactile
844 00:40:05,209 --> 00:40:10,099 sense the image one has two main
845 00:40:08,119 --> 00:40:13,009 characteristics that are worth noting
846 00:40:10,099 --> 00:40:15,529 one is the ability to remember images
847 00:40:13,009 --> 00:40:16,839 after only a brief exposure is
848 00:40:15,529 --> 00:40:19,929 astounding
849 00:40:16,839 --> 00:40:22,449 hopper who is a psychologist in the 60s
850 00:40:19,929 --> 00:40:25,669 in several experiments where he showed
851 00:40:22,449 --> 00:40:27,349 2,500 photographs spaced 10 seconds of
852 00:40:25,669 --> 00:40:31,219 parts just a bunch of slide trays for
853 00:40:27,349 --> 00:40:33,349 hours until I seen 2,500 images all
854 00:40:31,219 --> 00:40:36,739 sorts of random pictures and he
855 00:40:33,349 --> 00:40:38,839 discovered after 30 days that all of the
856 00:40:36,739 --> 00:40:42,169 experimental subjects had a better than
857 00:40:38,839 --> 00:40:44,169 90% recall of those random slides and
858 00:40:42,169 --> 00:40:46,459 could even identify occluded parts on
859 00:40:44,169 --> 00:40:47,899 slides and so forth this is an
860 00:40:46,459 --> 00:40:50,749 experiment you can do yourself get a
861 00:40:47,899 --> 00:40:54,199 friend to manipulate a cable TV movie
862 00:40:50,749 --> 00:40:57,199 channel and have them dial into a movie
863 00:40:54,199 --> 00:40:58,519 you haven't seen for 18 years and see
864 00:40:57,199 --> 00:41:00,139 how many frames of the movie you have to
865 00:40:58,519 --> 00:41:02,049 see before you can identify it most
866 00:41:00,139 --> 00:41:06,019 people can do it in under 90 frames
867 00:41:02,049 --> 00:41:07,459 three seconds of exposure is quite
868 00:41:06,019 --> 00:41:09,469 enough for them to say yep I've seen
869 00:41:07,459 --> 00:41:11,329 this movie before and I know it's gonna
870 00:41:09,469 --> 00:41:13,609 here's what's gonna happen next I think
871 00:41:11,329 --> 00:41:15,439 about that means 18 years ago you saw
872 00:41:13,609 --> 00:41:17,269 this movie you're being put into the
873 00:41:15,439 --> 00:41:18,949 center of it without any preparation and
874 00:41:17,269 --> 00:41:21,799 stuff and for some reason your visual
875 00:41:18,949 --> 00:41:24,139 system can organize all of those pixels
876 00:41:21,799 --> 00:41:26,299 or what the pixels have turned into to
877 00:41:24,139 --> 00:41:30,369 be able to perform that recognition so
878 00:41:26,299 --> 00:41:32,809 it's striking recognition is also fast
879 00:41:30,369 --> 00:41:36,019 so you put a hundred pictures on a
880 00:41:32,809 --> 00:41:37,999 bulletin board you can find a specified
881 00:41:36,019 --> 00:41:41,269 picture four times as fast as you can
882 00:41:37,999 --> 00:41:44,509 find the word in a list of four on the
883 00:41:41,269 --> 00:41:46,789 list of 100 words so it's much more
884 00:41:44,509 --> 00:41:48,199 efficient and this recognition in
885 00:41:46,789 --> 00:41:50,029 comparison and stuff is done by a
886 00:41:48,199 --> 00:41:52,759 completely different part of the brain
887 00:41:50,029 --> 00:41:57,880 visual system is also the mentality that
888 00:41:52,759 --> 00:41:57,880 is least blocked because it's very
889 00:41:58,260 --> 00:42:03,390 modus operandi is to flit around and
890 00:42:01,800 --> 00:42:05,190 take in different parts not to become
891 00:42:03,390 --> 00:42:07,740 fixated in one thing in the visual scene
892 00:42:05,190 --> 00:42:11,780 so it's there are many things you can do
893 00:42:07,740 --> 00:42:13,920 that in which an access to visual scene
894 00:42:11,780 --> 00:42:17,609 augments the short-term memory and
895 00:42:13,920 --> 00:42:20,810 boosts creativity then finally the the
896 00:42:17,609 --> 00:42:23,369 facts and logic system which is what we
897 00:42:20,810 --> 00:42:27,810 concentrate on in school unfortunately
898 00:42:23,369 --> 00:42:29,490 in its strong in in many ways because of
899 00:42:27,810 --> 00:42:32,760 its abstractions but it's actually the
900 00:42:29,490 --> 00:42:35,490 weakest mechanism that we have it only
901 00:42:32,760 --> 00:42:36,660 works when there's a strong context so
902 00:42:35,490 --> 00:42:39,240 when we're thinking about these ideas
903 00:42:36,660 --> 00:42:41,550 but we had this basis from Brenner and
904 00:42:39,240 --> 00:42:45,420 it took us three or four years of
905 00:42:41,550 --> 00:42:50,010 experimentation to come up with this
906 00:42:45,420 --> 00:42:51,990 model that what we what we really should
907 00:42:50,010 --> 00:42:53,760 do this is something has been
908 00:42:51,990 --> 00:42:55,500 misunderstood about this user interface
909 00:42:53,760 --> 00:42:58,080 because it's always talked of as the
910 00:42:55,500 --> 00:43:00,260 graphical user interface but in fact it
911 00:42:58,080 --> 00:43:04,050 was an attempt to combine three
912 00:43:00,260 --> 00:43:06,750 mentalities into some kind of synergy so
913 00:43:04,050 --> 00:43:09,510 the doing with images make symbols says
914 00:43:06,750 --> 00:43:11,760 there's some kind of progression which
915 00:43:09,510 --> 00:43:14,100 Brenner identified as well that if you
916 00:43:11,760 --> 00:43:18,660 learn where you are learn things tact
917 00:43:14,100 --> 00:43:20,340 alee that gives you a much better set of
918 00:43:18,660 --> 00:43:23,369 hooks for your image system to put
919 00:43:20,340 --> 00:43:25,800 things on and then at the very end you
920 00:43:23,369 --> 00:43:27,869 have something to abstract that you want
921 00:43:25,800 --> 00:43:30,359 to princess if you want to learn physics
922 00:43:27,869 --> 00:43:32,730 the best way to learn it is body physics
923 00:43:30,359 --> 00:43:34,619 and visual physics before you start
924 00:43:32,730 --> 00:43:38,250 looking at calculus then you have
925 00:43:34,619 --> 00:43:40,109 intuition and Bruner claimed that and I
926 00:43:38,250 --> 00:43:42,030 believed him that what we call intuition
927 00:43:40,109 --> 00:43:46,040 is simply these mentalities that don't
928 00:43:42,030 --> 00:43:49,050 talk sort of vaguely whispering to us
929 00:43:46,040 --> 00:43:50,340 somewhat variant thoughts than the than
930 00:43:49,050 --> 00:43:52,950 the one that the one we call eye
931 00:43:50,340 --> 00:43:57,810 actually does so if you take those ideas
932 00:43:52,950 --> 00:44:00,810 you the way we picked and we didn't even
933 00:43:57,810 --> 00:44:03,090 like the mouse but as I said tablets
934 00:44:00,810 --> 00:44:04,850 were expensive and so we took angle
935 00:44:03,090 --> 00:44:08,520 Bart's Mouse and made a better one and
936 00:44:04,850 --> 00:44:09,900 let that be our pointing device if you
937 00:44:08,520 --> 00:44:11,330 believe what I'm saying about the user
938 00:44:09,900 --> 00:44:12,890 interface then
939 00:44:11,330 --> 00:44:14,930 would suggest number one that we should
940 00:44:12,890 --> 00:44:16,340 have better pointing devices and number
941 00:44:14,930 --> 00:44:18,230 two that the pointing devices should
942 00:44:16,340 --> 00:44:20,330 start to give us some force feedback
943 00:44:18,230 --> 00:44:22,340 back into our hand because then the
944 00:44:20,330 --> 00:44:26,900 kinesthetic contact would be much
945 00:44:22,340 --> 00:44:29,330 greater and the windows and icons are
946 00:44:26,900 --> 00:44:32,770 for the purposes I've just mentioned and
947 00:44:29,330 --> 00:44:35,630 we came up with small talk to be the
948 00:44:32,770 --> 00:44:38,180 underlying symbolic framework for all of
949 00:44:35,630 --> 00:44:41,390 this stuff this is why the on the
950 00:44:38,180 --> 00:44:44,630 Macintosh and the Macintosh imitators
951 00:44:41,390 --> 00:44:46,250 that the pointing scheme is not
952 00:44:44,630 --> 00:44:49,640 functional you don't give the command
953 00:44:46,250 --> 00:44:51,620 first and then be stuck in a mode and go
954 00:44:49,640 --> 00:44:53,540 out and then try and pick parameters for
955 00:44:51,620 --> 00:44:56,510 it what you do is you do it exactly the
956 00:44:53,540 --> 00:44:57,950 same order that the you do
957 00:44:56,510 --> 00:44:59,540 object-oriented programming and that is
958 00:44:57,950 --> 00:45:02,510 you designate the objects of interest
959 00:44:59,540 --> 00:45:04,340 first and then you send the messages so
960 00:45:02,510 --> 00:45:07,490 translate it to user interface it says
961 00:45:04,340 --> 00:45:10,240 selection first messages later and that
962 00:45:07,490 --> 00:45:15,260 gives you an approach to doing modeless
963 00:45:10,240 --> 00:45:20,030 interaction and here's an interesting
964 00:45:15,260 --> 00:45:22,160 idea that we implemented at Parc but in
965 00:45:20,030 --> 00:45:24,410 fact has never made its I just cannot
966 00:45:22,160 --> 00:45:26,630 believe that this idea has never made
967 00:45:24,410 --> 00:45:28,640 its way out into the out of the world
968 00:45:26,630 --> 00:45:31,130 because it is a direct implication of
969 00:45:28,640 --> 00:45:32,750 object-oriented design the implication
970 00:45:31,130 --> 00:45:36,260 of object-oriented design is not cutting
971 00:45:32,750 --> 00:45:38,720 and pasting that is absolutely at odds
972 00:45:36,260 --> 00:45:41,510 with an object-oriented user interface
973 00:45:38,720 --> 00:45:42,800 the this is the implication of
974 00:45:41,510 --> 00:45:45,350 object-oriented design this is a
975 00:45:42,800 --> 00:45:48,530 document that has a variety of different
976 00:45:45,350 --> 00:45:50,540 paragraph types in it one of them holds
977 00:45:48,530 --> 00:45:53,060 texts and other one holds pictures and
978 00:45:50,540 --> 00:45:57,560 these are as norm was pointing out these
979 00:45:53,060 --> 00:45:59,540 are the applications themselves so you
980 00:45:57,560 --> 00:46:02,180 don't go out to another app you don't go
981 00:45:59,540 --> 00:46:03,620 out in this system you didn't go out to
982 00:46:02,180 --> 00:46:05,540 a painting system to make this picture
983 00:46:03,620 --> 00:46:06,920 the painting was actually developed
984 00:46:05,540 --> 00:46:09,260 right in the context of the document
985 00:46:06,920 --> 00:46:11,630 because you just started a new paragraph
986 00:46:09,260 --> 00:46:14,990 type there and what you see here is a
987 00:46:11,630 --> 00:46:19,280 this is a page from the Lord of the
988 00:46:14,990 --> 00:46:21,260 Rings and the cursor has just gone into
989 00:46:19,280 --> 00:46:23,450 this picture and what has happened is
990 00:46:21,260 --> 00:46:24,540 it's sprouted a menu because it thinks
991 00:46:23,450 --> 00:46:26,910 you might want to edit it
992 00:46:24,540 --> 00:46:30,390 further so as you go into each each
993 00:46:26,910 --> 00:46:34,170 paragraph type it activates the sub
994 00:46:30,390 --> 00:46:35,730 activation if you the sub if you will so
995 00:46:34,170 --> 00:46:38,190 that all of the things that you're
996 00:46:35,730 --> 00:46:40,980 working on are in the context of your
997 00:46:38,190 --> 00:46:42,690 result it's the thing we call results
998 00:46:40,980 --> 00:46:44,610 mode interaction which i think is one of
999 00:46:42,690 --> 00:46:46,230 the most important aspects of WYSIWYG
1000 00:46:44,610 --> 00:46:47,880 that hasn't really made it into the
1001 00:46:46,230 --> 00:46:50,220 outside world always keep the user
1002 00:46:47,880 --> 00:46:52,470 working in the context of their results
1003 00:46:50,220 --> 00:46:54,510 that means they shouldn't go out other
1004 00:46:52,470 --> 00:46:56,460 applications to get values and bringing
1005 00:46:54,510 --> 00:46:58,230 them back they should be able to develop
1006 00:46:56,460 --> 00:47:00,360 those the values that they want from
1007 00:46:58,230 --> 00:47:02,810 within the final thing that they're
1008 00:47:00,360 --> 00:47:02,810 working on
1009 00:47:03,410 --> 00:47:13,320 now this next in order to talk about
1010 00:47:09,810 --> 00:47:16,020 this next next part of the talk a little
1011 00:47:13,320 --> 00:47:18,660 more context if we think about the two
1012 00:47:16,020 --> 00:47:19,980 ways that humans have extended
1013 00:47:18,660 --> 00:47:23,100 themselves over the last several hundred
1014 00:47:19,980 --> 00:47:26,910 thousand years one of them is by making
1015 00:47:23,100 --> 00:47:29,100 amplifying tools physical tools like the
1016 00:47:26,910 --> 00:47:32,610 lever and the wheel figurative tools
1017 00:47:29,100 --> 00:47:35,400 like mathematics like language itself
1018 00:47:32,610 --> 00:47:38,280 and so forth all these I think of as
1019 00:47:35,400 --> 00:47:39,840 being extensions of manipulation but
1020 00:47:38,280 --> 00:47:43,620 even mathematics which we think is
1021 00:47:39,840 --> 00:47:45,480 something fairly abstract is actually a
1022 00:47:43,620 --> 00:47:47,130 way of taking the hopelessly abstract
1023 00:47:45,480 --> 00:47:49,350 making it into concrete things that we
1024 00:47:47,130 --> 00:47:51,000 can then move around so all of these
1025 00:47:49,350 --> 00:47:54,540 things I think of as being manipulation
1026 00:47:51,000 --> 00:47:56,640 the N word is manipulation and the other
1027 00:47:54,540 --> 00:47:58,770 one and of course the Macintosh user
1028 00:47:56,640 --> 00:48:01,350 interface is that style
1029 00:47:58,770 --> 00:48:03,600 it's basically make everything into an
1030 00:48:01,350 --> 00:48:06,390 object and was norm mentioned if you
1031 00:48:03,600 --> 00:48:08,490 take things that are verbs in English
1032 00:48:06,390 --> 00:48:09,990 and make them into objects you have a
1033 00:48:08,490 --> 00:48:11,970 much better time of it because of course
1034 00:48:09,990 --> 00:48:15,600 the universe doesn't seem to have any
1035 00:48:11,970 --> 00:48:17,700 verbs right English has invented to talk
1036 00:48:15,600 --> 00:48:21,900 about horses and cows and plowed fields
1037 00:48:17,700 --> 00:48:24,600 and so forth and it didn't anticipate
1038 00:48:21,900 --> 00:48:28,140 modern physics which as far as we can
1039 00:48:24,600 --> 00:48:30,680 tell there are no abstract verbs out in
1040 00:48:28,140 --> 00:48:33,150 the universe instead what we have are
1041 00:48:30,680 --> 00:48:36,660 things that are much more like objects
1042 00:48:33,150 --> 00:48:38,849 in process so when I hear a sentence
1043 00:48:36,660 --> 00:48:41,910 like the clock runs down
1044 00:48:38,849 --> 00:48:43,799 or the boy runs down the only way I can
1045 00:48:41,910 --> 00:48:46,140 come up for any meaning of what runs
1046 00:48:43,799 --> 00:48:48,630 down actually is all about is by
1047 00:48:46,140 --> 00:48:52,019 thinking of it as an attribute of the
1048 00:48:48,630 --> 00:48:53,699 subject of the sentence okay and there
1049 00:48:52,019 --> 00:48:55,319 is enough metaphorical similarity
1050 00:48:53,699 --> 00:48:57,539 between the two items so that we can use
1051 00:48:55,319 --> 00:48:59,189 the same word but I always think of what
1052 00:48:57,539 --> 00:49:01,289 we think of as a verb as really an
1053 00:48:59,189 --> 00:49:02,969 attribute of some subject otherwise the
1054 00:49:01,289 --> 00:49:06,329 sentence wouldn't make any any real
1055 00:49:02,969 --> 00:49:11,729 sense and that is an accord with with
1056 00:49:06,329 --> 00:49:13,319 modern physics so the other way we've
1057 00:49:11,729 --> 00:49:16,709 extended ourselves over the years what I
1058 00:49:13,319 --> 00:49:19,559 call goal cloning goal cloning means
1059 00:49:16,709 --> 00:49:21,449 that we simply are able and willing to
1060 00:49:19,559 --> 00:49:23,160 go out and convince other people to take
1061 00:49:21,449 --> 00:49:25,169 on our own goal structures that's how we
1062 00:49:23,160 --> 00:49:27,959 get most things done so what's going on
1063 00:49:25,169 --> 00:49:29,849 here we have a group that has for the
1064 00:49:27,959 --> 00:49:34,140 moment has fewer goals than the sum of
1065 00:49:29,849 --> 00:49:36,299 its parts and companies are that way
1066 00:49:34,140 --> 00:49:38,699 countries cultures and so forth
1067 00:49:36,299 --> 00:49:40,259 sometimes the methods accrued as in the
1068 00:49:38,699 --> 00:49:41,299 way the Egyptians got the slaves to
1069 00:49:40,259 --> 00:49:43,409 build the pyramids
1070 00:49:41,299 --> 00:49:46,650 sometimes they're slicker like in the
1071 00:49:43,409 --> 00:49:48,209 modern television advertisements mumford
1072 00:49:46,650 --> 00:49:50,069 called this building a mega machine he
1073 00:49:48,209 --> 00:49:53,369 pointed out that over most of recorded
1074 00:49:50,069 --> 00:49:56,249 history most machines built by human
1075 00:49:53,369 --> 00:49:59,489 beings had human beings as parts and the
1076 00:49:56,249 --> 00:50:01,769 M word for this to me is management that
1077 00:49:59,489 --> 00:50:05,309 you manage that kind of process and we
1078 00:50:01,769 --> 00:50:08,429 manipulate objects and we're going to
1079 00:50:05,309 --> 00:50:11,699 see a transformation from actions having
1080 00:50:08,429 --> 00:50:13,529 to do with objects into agents which we
1081 00:50:11,699 --> 00:50:16,529 are going to manage now let me give you
1082 00:50:13,529 --> 00:50:20,159 the examples the first is sort of an
1083 00:50:16,529 --> 00:50:21,869 example of what you can do with a tool
1084 00:50:20,159 --> 00:50:26,299 and what a tool really means so let's
1085 00:50:21,869 --> 00:50:26,299 show the I want to show tape number two
1086 00:50:45,470 --> 00:50:52,460 this 2012 young girl who never lived
1087 00:50:49,260 --> 00:50:55,230 world not insulated by Akash
1088 00:50:52,460 --> 00:50:56,849 her mother's my aunt both are there and
1089 00:50:55,230 --> 00:50:59,700 father work at home if another father as
1090 00:50:56,849 --> 00:51:02,760 an act to her this is an acknowledge
1091 00:50:59,700 --> 00:51:04,740 that one around your warrant we do think
1092 00:51:02,760 --> 00:51:07,710 and some paper technology is what Israel
1093 00:51:04,740 --> 00:51:14,430 never see anything I fast use it yes in
1094 00:51:07,710 --> 00:51:16,619 computers I Karen told she injected and
1095 00:51:14,430 --> 00:51:19,290 I don't mean you sir today my did one
1096 00:51:16,619 --> 00:51:23,250 with her anis governing athlete for here
1097 00:51:19,290 --> 00:51:24,480 has been stolen disks even though the
1098 00:51:23,250 --> 00:51:26,160 belt is you inter favorite children I
1099 00:51:24,480 --> 00:51:27,960 never even it is about child anywhere
1100 00:51:26,160 --> 00:51:30,599 here than I was quite intrigued yeah
1101 00:51:27,960 --> 00:51:34,829 yeah here says doing visible you man
1102 00:51:30,599 --> 00:51:39,240 acne and of course you don't have to get
1103 00:51:34,829 --> 00:51:40,800 them out I thought well I'll go along
1104 00:51:39,240 --> 00:51:42,089 this is arrested but wasn't me impress
1105 00:51:40,800 --> 00:51:43,530 until I saw what havin a she wants a
1106 00:51:42,089 --> 00:51:46,079 fresh sheet paper so she used a closed
1107 00:51:43,530 --> 00:51:54,619 box in the window and user Ultron's the
1108 00:51:46,079 --> 00:52:02,849 pop up and goes to the plan F rating
1109 00:51:54,619 --> 00:52:05,700 okay implications here it's kind of
1110 00:52:02,849 --> 00:52:08,309 interesting it do the user interface at
1111 00:52:05,700 --> 00:52:11,270 all an accord with what's actually going
1112 00:52:08,309 --> 00:52:13,680 on inside of people's head then you get
1113 00:52:11,270 --> 00:52:15,390 something that can actually extend all
1114 00:52:13,680 --> 00:52:18,660 the way down into childhood and be to
1115 00:52:15,390 --> 00:52:20,790 them as fundamental as the marking
1116 00:52:18,660 --> 00:52:22,140 instruments that we grew up with and I
1117 00:52:20,790 --> 00:52:25,339 think this is very important because I
1118 00:52:22,140 --> 00:52:28,319 believe that the the children that can
1119 00:52:25,339 --> 00:52:32,790 form themselves by being around this
1120 00:52:28,319 --> 00:52:35,160 media as media are going to be thinking
1121 00:52:32,790 --> 00:52:37,799 and doing things very differently than
1122 00:52:35,160 --> 00:52:42,270 the way we do this is another example of
1123 00:52:37,799 --> 00:52:44,069 in the long line of how we act smarter
1124 00:52:42,270 --> 00:52:46,470 by changing our representations we go
1125 00:52:44,069 --> 00:52:49,170 from Roman numerals to Arabic we go from
1126 00:52:46,470 --> 00:52:50,790 Ptolemaic the Copernican every time we
1127 00:52:49,170 --> 00:52:55,559 change the representation system our
1128 00:52:50,790 --> 00:52:57,750 weak systems of logic are made that much
1129 00:52:55,559 --> 00:53:00,690 stronger and I think of user interface
1130 00:52:57,750 --> 00:53:03,359 main aim is not to present but to
1131 00:53:00,690 --> 00:53:05,070 represent and it's figuring out what
1132 00:53:03,359 --> 00:53:06,900 those representation schemes are going
1133 00:53:05,070 --> 00:53:08,310 to mean in terms of leverage they give
1134 00:53:06,900 --> 00:53:10,560 the user this is the most important
1135 00:53:08,310 --> 00:53:12,180 point that point has been missed in most
1136 00:53:10,560 --> 00:53:14,099 people who are doing user interfaces
1137 00:53:12,180 --> 00:53:16,470 today including a lot of the people at
1138 00:53:14,099 --> 00:53:18,810 Apple and certainly the the Apple
1139 00:53:16,470 --> 00:53:20,430 imitators because they think that the
1140 00:53:18,810 --> 00:53:23,220 whole job of the user interface is to
1141 00:53:20,430 --> 00:53:25,050 present old-style applications with
1142 00:53:23,220 --> 00:53:26,730 multiple windows and pull-downs and so
1143 00:53:25,050 --> 00:53:27,240 forth nothing can be further from the
1144 00:53:26,730 --> 00:53:30,540 truth
1145 00:53:27,240 --> 00:53:32,190 most important aspect of the multiple
1146 00:53:30,540 --> 00:53:34,500 windows stuff is not to have different
1147 00:53:32,190 --> 00:53:35,970 applications up there because as I
1148 00:53:34,500 --> 00:53:37,920 pointed out that's not the way you want
1149 00:53:35,970 --> 00:53:39,150 to go after different parts of the
1150 00:53:37,920 --> 00:53:41,070 things the most important thing for
1151 00:53:39,150 --> 00:53:43,079 having multiple windows is to be able to
1152 00:53:41,070 --> 00:53:45,630 present different points of view on the
1153 00:53:43,079 --> 00:53:46,859 same thing marvin minsky says you don't
1154 00:53:45,630 --> 00:53:50,599 understand something unless you
1155 00:53:46,859 --> 00:53:53,250 understand it in more than one way and
1156 00:53:50,599 --> 00:53:55,589 almost no one who uses these user
1157 00:53:53,250 --> 00:53:57,060 interfaces thinks to sit down even
1158 00:53:55,589 --> 00:53:58,920 though Apple showed them in the finder
1159 00:53:57,060 --> 00:54:00,930 that you want to have multiple views of
1160 00:53:58,920 --> 00:54:02,430 different kinds of things thinks of what
1161 00:54:00,930 --> 00:54:03,960 the leverage means is to be able to look
1162 00:54:02,430 --> 00:54:05,420 at the same kind of thing for multiple
1163 00:54:03,960 --> 00:54:08,339 points of view and what it means
1164 00:54:05,420 --> 00:54:10,020 pedagogically is once you've seen that
1165 00:54:08,339 --> 00:54:11,490 you realize that if I only know one
1166 00:54:10,020 --> 00:54:13,890 point of view about something I don't
1167 00:54:11,490 --> 00:54:16,829 know it in fact I'm likely to be misled
1168 00:54:13,890 --> 00:54:21,060 by it so now let's take a look at the
1169 00:54:16,829 --> 00:54:22,619 other way that's just starting to come
1170 00:54:21,060 --> 00:54:25,349 in and think of why it's going to why
1171 00:54:22,619 --> 00:54:29,030 are we going to have management of
1172 00:54:25,349 --> 00:54:32,339 semi-intelligent computer processes now
1173 00:54:29,030 --> 00:54:35,369 I think it's because we're gonna we're
1174 00:54:32,339 --> 00:54:36,270 starting to be networked up and there
1175 00:54:35,369 --> 00:54:40,140 are a whole bunch of things that
1176 00:54:36,270 --> 00:54:41,640 networks give you as opportunities that
1177 00:54:40,140 --> 00:54:45,290 we simply don't have the time and the
1178 00:54:41,640 --> 00:54:47,849 scope to deal with give you an example
1179 00:54:45,290 --> 00:54:50,520 when I was a kid I used to get questions
1180 00:54:47,849 --> 00:54:52,020 answered by going into the into a
1181 00:54:50,520 --> 00:54:53,849 library and once I was visiting some
1182 00:54:52,020 --> 00:54:55,500 friends in Washington DC and I had a
1183 00:54:53,849 --> 00:54:57,660 question so I demanded to be taken to
1184 00:54:55,500 --> 00:55:00,690 the library I'd heard there's a library
1185 00:54:57,660 --> 00:55:02,910 in the town and we got to the Library of
1186 00:55:00,690 --> 00:55:04,560 Congress and I discovered that the card
1187 00:55:02,910 --> 00:55:06,480 catalog which they didn't even allow you
1188 00:55:04,560 --> 00:55:09,890 to go in was much larger than my home
1189 00:55:06,480 --> 00:55:11,900 town library and instead of
1190 00:55:09,890 --> 00:55:13,460 having you do the browsing they had
1191 00:55:11,900 --> 00:55:16,310 people who would meet you at the door
1192 00:55:13,460 --> 00:55:18,530 their job was to absorb what your goals
1193 00:55:16,310 --> 00:55:20,660 were and then apply their expertise of
1194 00:55:18,530 --> 00:55:22,880 the facilities to that so they became
1195 00:55:20,660 --> 00:55:26,660 your agent and they even would energize
1196 00:55:22,880 --> 00:55:28,670 other agents so my my problem turned out
1197 00:55:26,660 --> 00:55:31,220 to be fairly interesting for one brought
1198 00:55:28,670 --> 00:55:33,590 in by a nine-year-old and so he had five
1199 00:55:31,220 --> 00:55:36,890 or six adults scurrying around trying to
1200 00:55:33,590 --> 00:55:41,090 find the answer to it and it left a
1201 00:55:36,890 --> 00:55:43,550 lasting impression and this notion of
1202 00:55:41,090 --> 00:55:45,410 agents is as old as computer interfaces
1203 00:55:43,550 --> 00:55:48,050 itself it goes back to McCarthy's
1204 00:55:45,410 --> 00:55:49,880 original advice taker paper it basically
1205 00:55:48,050 --> 00:55:52,730 says that when you have an information
1206 00:55:49,880 --> 00:55:56,810 utility there's going to be an
1207 00:55:52,730 --> 00:55:59,270 embarrassment of riches organized in a
1208 00:55:56,810 --> 00:56:01,040 way so that no human will have the time
1209 00:55:59,270 --> 00:56:02,330 to go after the stuff no human will be
1210 00:56:01,040 --> 00:56:04,040 able to remember all the things they
1211 00:56:02,330 --> 00:56:06,950 might be interested in so something else
1212 00:56:04,040 --> 00:56:08,900 has to go and do it now the problem with
1213 00:56:06,950 --> 00:56:11,990 agents in the user interface sense is
1214 00:56:08,900 --> 00:56:14,810 that AI has not progressed much since
1215 00:56:11,990 --> 00:56:17,990 1970 it was extremely difficult to build
1216 00:56:14,810 --> 00:56:20,900 an agent I have built several over the
1217 00:56:17,990 --> 00:56:22,280 last eight years or so just to see what
1218 00:56:20,900 --> 00:56:23,900 they would would be like and they're
1219 00:56:22,280 --> 00:56:27,410 excruciating to build one of them was a
1220 00:56:23,900 --> 00:56:30,080 system called News peak at MIT that
1221 00:56:27,410 --> 00:56:31,940 stays up all night trying to find for
1222 00:56:30,080 --> 00:56:36,500 you the newspaper you'd most like to
1223 00:56:31,940 --> 00:56:41,540 read at breakfast so it what it does is
1224 00:56:36,500 --> 00:56:44,710 to log in to a dozen or so information
1225 00:56:41,540 --> 00:56:49,670 sources New York Times Associated Press
1226 00:56:44,710 --> 00:56:51,920 Nexus Reuters looking for articles it
1227 00:56:49,670 --> 00:56:53,360 thinks you might be interested in it
1228 00:56:51,920 --> 00:56:55,010 reads the articles to the best of its
1229 00:56:53,360 --> 00:56:57,770 ability if it sees a famous name like
1230 00:56:55,010 --> 00:56:59,900 Mitterrand it has a video disc of 45,000
1231 00:56:57,770 --> 00:57:01,880 pictures of famous people it's like a
1232 00:56:59,900 --> 00:57:03,920 newspaper more get picks a picture of
1233 00:57:01,880 --> 00:57:06,920 MIT Iran did have there's a map disk
1234 00:57:03,920 --> 00:57:09,020 with 37,000 maps and so forth uses an
1235 00:57:06,920 --> 00:57:10,970 expert system to format the page and you
1236 00:57:09,020 --> 00:57:14,680 wind up the next morning with something
1237 00:57:10,970 --> 00:57:14,680 that is very much like USA Today
1238 00:57:15,960 --> 00:57:21,540 and in often with about the same amount
1239 00:57:18,730 --> 00:57:21,540 of content
1240 00:57:22,150 --> 00:57:27,320 but there are some differences because
1241 00:57:24,320 --> 00:57:29,750 the headline might say more fighting in
1242 00:57:27,320 --> 00:57:31,610 Afghanistan or it might just as well say
1243 00:57:29,750 --> 00:57:33,920 your three o'clock meeting is cancelled
1244 00:57:31,610 --> 00:57:35,990 today because one of the 12 news sources
1245 00:57:33,920 --> 00:57:38,030 it logs into is your own electronic mail
1246 00:57:35,990 --> 00:57:39,560 it reads it while you sleep and if it
1247 00:57:38,030 --> 00:57:41,630 spots to anything that looks important
1248 00:57:39,560 --> 00:57:43,190 it puts that in the newspaper the next
1249 00:57:41,630 --> 00:57:46,730 morning a sidebar might say your
1250 00:57:43,190 --> 00:57:48,920 children slept well last night because
1251 00:57:46,730 --> 00:57:51,230 remember what we call news is entirely
1252 00:57:48,920 --> 00:57:55,520 dependent on the communications system
1253 00:57:51,230 --> 00:57:57,620 that we have in the late 1700s the news
1254 00:57:55,520 --> 00:57:59,810 was all about depth the Federalist
1255 00:57:57,620 --> 00:58:01,490 Papers were published in the newspapers
1256 00:57:59,810 --> 00:58:05,360 of New York City something would be
1257 00:58:01,490 --> 00:58:07,340 unthinkable today actual essays but
1258 00:58:05,360 --> 00:58:09,680 people had time to read them when the
1259 00:58:07,340 --> 00:58:11,960 telegraph got invented all that went
1260 00:58:09,680 --> 00:58:13,670 away because they couldn't possibly have
1261 00:58:11,960 --> 00:58:15,290 you reading anything long that had to be
1262 00:58:13,670 --> 00:58:16,790 thought about and understood because
1263 00:58:15,290 --> 00:58:20,030 you'd still be working on it when the
1264 00:58:16,790 --> 00:58:22,160 next news came along so currency and as
1265 00:58:20,030 --> 00:58:24,950 McLuhan predicted as soon as you start
1266 00:58:22,160 --> 00:58:28,130 hooking up news to electronic media you
1267 00:58:24,950 --> 00:58:31,670 start getting fragmentation so that's
1268 00:58:28,130 --> 00:58:33,560 the idea of an agent that newspaper is
1269 00:58:31,670 --> 00:58:35,900 something that people would like to have
1270 00:58:33,560 --> 00:58:36,800 but nobody is going to sit up doing it
1271 00:58:35,900 --> 00:58:40,400 even with the best
1272 00:58:36,800 --> 00:58:41,780 sequel type database and so forth
1273 00:58:40,400 --> 00:58:43,300 because it's very hard to even remember
1274 00:58:41,780 --> 00:58:46,310 all the things that you're interested in
1275 00:58:43,300 --> 00:58:48,980 so the agents also are going to be
1276 00:58:46,310 --> 00:58:50,420 somewhat anthropomorphic this is a real
1277 00:58:48,980 --> 00:58:53,150 problem because they aren't going to be
1278 00:58:50,420 --> 00:58:54,920 very smart when we start off we have to
1279 00:58:53,150 --> 00:58:59,390 in the user interface design somehow
1280 00:58:54,920 --> 00:59:03,170 subliminal ii project exactly how smart
1281 00:58:59,390 --> 00:59:05,600 they are and still make the user now we
1282 00:59:03,170 --> 00:59:07,250 want something like a puppy dog that
1283 00:59:05,600 --> 00:59:08,570 goes out and gets your newspaper most of
1284 00:59:07,250 --> 00:59:13,580 the time it only occasionally makes a
1285 00:59:08,570 --> 00:59:17,660 mess on the floor so let's let's take a
1286 00:59:13,580 --> 00:59:19,640 look at this is a video we made for John
1287 00:59:17,660 --> 00:59:22,520 Scully and we start off at the 1988
1288 00:59:19,640 --> 00:59:25,730 Winter Olympics in HyperCard HyperCard
1289 00:59:22,520 --> 00:59:27,710 stack that ABC television used to keep
1290 00:59:25,730 --> 00:59:29,570 track of things and then we project four
1291 00:59:27,710 --> 00:59:31,940 years into the future and see what
1292 00:59:29,570 --> 00:59:34,280 things might look like in 1992 with the
1293 00:59:31,940 --> 00:59:36,770 user interface that is still mostly
1294 00:59:34,280 --> 00:59:39,050 manipulative but has a little bit of the
1295 00:59:36,770 --> 01:00:03,710 of the management aspect to it let's
1296 00:59:39,050 --> 01:00:07,160 roll tape number three please so much
1297 01:00:03,710 --> 01:00:10,340 this Bob's math Calgary if you click on
1298 01:00:07,160 --> 01:00:13,700 any Olympic site you see a list of the
1299 01:00:10,340 --> 01:00:15,470 events scheduled for that site you can
1300 01:00:13,700 --> 01:00:18,230 get more information about any event by
1301 01:00:15,470 --> 01:00:22,310 clicking on the name let's say ski
1302 01:00:18,230 --> 01:00:26,300 jumping background maybe you can brag to
1303 01:00:22,310 --> 01:00:28,580 the last or the main map and then
1304 01:00:26,300 --> 01:00:31,070 continue exploring here at the
1305 01:00:28,580 --> 01:00:33,170 University of Calgary I see the figure
1306 01:00:31,070 --> 01:00:35,690 skating events are running now that's a
1307 01:00:33,170 --> 01:00:38,630 sport my family's interested in so I'd
1308 01:00:35,690 --> 01:00:41,240 like to learn more about it the previous
1309 01:00:38,630 --> 01:00:44,300 Winter Olympics took place at Sarajevo
1310 01:00:41,240 --> 01:00:46,210 in 1984 when Macintosh was barely a
1311 01:00:44,300 --> 01:00:48,620 month old
1312 01:00:46,210 --> 01:00:50,240 imagine what Macintosh together with
1313 01:00:48,620 --> 01:00:52,280 hyper card will allow us to do in
1314 01:00:50,240 --> 01:00:54,300 another four years by the time of the
1315 01:00:52,280 --> 01:00:56,880 next Olympics
1316 01:00:54,300 --> 01:00:59,519 [Music]
1317 01:00:56,880 --> 01:01:01,499 we will require powerful techniques to
1318 01:00:59,519 --> 01:01:06,140 help us find and manipulate volumes of
1319 01:01:01,499 --> 01:01:09,239 images text music video and applications
1320 01:01:06,140 --> 01:01:11,880 we might by that time see the beginnings
1321 01:01:09,239 --> 01:01:16,099 of intelligent agents or perhaps by then
1322 01:01:11,880 --> 01:01:19,920 they'll be only semi-intelligent Phil
1323 01:01:16,099 --> 01:01:22,229 today is March 3rd 1992 you have several
1324 01:01:19,920 --> 01:01:22,829 data service articles ready and you have
1325 01:01:22,229 --> 01:01:26,099 ma'am
1326 01:01:22,829 --> 01:01:31,009 this is my agent I call him Phil Phil
1327 01:01:26,099 --> 01:01:31,009 open the 1992 Olympic stack
1328 01:01:42,150 --> 01:01:48,570 the 1992 Winter Games are being held in
1329 01:01:45,390 --> 01:01:52,260 Alba V friends let's get a closer look
1330 01:01:48,570 --> 01:01:56,630 at the town let's look at ski jumping
1331 01:01:52,260 --> 01:01:56,630 again we can play the video
1332 01:01:59,070 --> 01:02:03,530 [Music]
1333 01:02:01,430 --> 01:02:06,590 we could learn more about this sport or
1334 01:02:03,530 --> 01:02:08,890 go back to the math let's look at figure
1335 01:02:06,590 --> 01:02:08,890 skating
1336 01:02:09,280 --> 01:02:17,380 I'd like to see who's on the USA team
1337 01:02:11,560 --> 01:02:20,550 and I'd like to see Debbie Thomas I'm
1338 01:02:17,380 --> 01:02:20,550 looking for a spin
1339 01:02:21,690 --> 01:02:33,900 like that let's go back alan kay was
1340 01:02:31,950 --> 01:02:35,970 explaining why skaters go faster as they
1341 01:02:33,900 --> 01:02:38,069 tuck their arms in he showed me a
1342 01:02:35,970 --> 01:02:42,690 simulation to illustrate the underlying
1343 01:02:38,069 --> 01:02:46,910 principles let me call that up Phil add
1344 01:02:42,690 --> 01:02:51,660 the physics draw toolbox which tool box
1345 01:02:46,910 --> 01:02:55,710 physics draw let's see I'll need a
1346 01:02:51,660 --> 01:02:59,940 counter we can make the window
1347 01:02:55,710 --> 01:03:06,960 translucent let's step through the spin
1348 01:02:59,940 --> 01:03:10,559 and count the frames okay that's one
1349 01:03:06,960 --> 01:03:12,450 complete rotation now I'll draw a model
1350 01:03:10,559 --> 01:03:21,230 representing a skater with her arms
1351 01:03:12,450 --> 01:03:29,660 extended select the center axis and
1352 01:03:21,230 --> 01:03:31,920 rotate how fast to rotate this speed and
1353 01:03:29,660 --> 01:03:36,150 here's an overhead view of the figure
1354 01:03:31,920 --> 01:03:38,430 let's hold on to that earlier Allan and
1355 01:03:36,150 --> 01:03:40,260 I created a similar model where the
1356 01:03:38,430 --> 01:03:42,740 skater has tucked her arms in and
1357 01:03:40,260 --> 01:03:48,270 appears to be spinning faster Phil
1358 01:03:42,740 --> 01:03:50,869 display skater a model 1 let's compare
1359 01:03:48,270 --> 01:03:50,869 these two models
1360 01:03:54,400 --> 01:04:02,150 the small one the one with the shorter
1361 01:03:57,230 --> 01:04:04,970 radius seems to run faster but let's
1362 01:04:02,150 --> 01:04:11,210 check that I'll set them both to run for
1363 01:04:04,970 --> 01:04:13,790 three tenths of a second a small one
1364 01:04:11,210 --> 01:04:15,560 turns farther around the circle but
1365 01:04:13,790 --> 01:04:18,200 let's see how much distance is actually
1366 01:04:15,560 --> 01:04:21,560 covered I'll straighten out the curved
1367 01:04:18,200 --> 01:04:22,420 paths to measure them both paths are the
1368 01:04:21,560 --> 01:04:25,430 same length
1369 01:04:22,420 --> 01:04:28,609 even though spin increases the distance
1370 01:04:25,430 --> 01:04:31,580 traveled is the same the luge event is
1371 01:04:28,609 --> 01:04:33,890 about to begin show it live or record it
1372 01:04:31,580 --> 01:04:37,130 no I'm not interested in luge
1373 01:04:33,890 --> 01:04:41,630 I don't understand I like skating
1374 01:04:37,130 --> 01:04:45,700 I don't understand don't show luge don't
1375 01:04:41,630 --> 01:04:48,770 record it I understand
1376 01:04:45,700 --> 01:04:58,540 I'd like to say this simulation Phil
1377 01:04:48,770 --> 01:04:58,540 start a link Phil show the stack map
1378 01:05:01,300 --> 01:05:14,440 too far okay show recent link to this
1379 01:05:10,240 --> 01:05:17,220 background now anytime I'm on a skating
1380 01:05:14,440 --> 01:05:19,990 card I can link to my physics simulation
1381 01:05:17,220 --> 01:05:23,470 by the time the Winter Olympics come to
1382 01:05:19,990 --> 01:05:25,780 a birdie in 1992 CD media will be well
1383 01:05:23,470 --> 01:05:27,910 established each of us will be able to
1384 01:05:25,780 --> 01:05:30,790 choose our own path through Worlds of
1385 01:05:27,910 --> 01:05:32,380 entertainment and information and tools
1386 01:05:30,790 --> 01:05:34,510 like those that we've been seeing will
1387 01:05:32,380 --> 01:05:37,780 allow us to integrate the full range of
1388 01:05:34,510 --> 01:05:41,050 sound video and text information this
1389 01:05:37,780 --> 01:05:43,060 demo ends here John should I show the
1390 01:05:41,050 --> 01:05:51,930 pre-recorded speech or will you give it
1391 01:05:43,060 --> 01:05:55,330 live humane things to think about it
1392 01:05:51,930 --> 01:05:57,190 here are that although we are of course
1393 01:05:55,330 --> 01:05:59,710 going to go to hypermedia and it's going
1394 01:05:57,190 --> 01:06:02,380 to be object-oriented it's really not
1395 01:05:59,710 --> 01:06:04,330 going to be complete until the user is
1396 01:06:02,380 --> 01:06:07,000 able to do active thought experiments
1397 01:06:04,330 --> 01:06:09,910 experiments most hypermedia up till now
1398 01:06:07,000 --> 01:06:13,720 is assumes that the user is going to
1399 01:06:09,910 --> 01:06:15,040 navigate around stuff that may be active
1400 01:06:13,720 --> 01:06:17,620 but the user isn't going to be able to
1401 01:06:15,040 --> 01:06:21,400 do a lot of creation themselves this is
1402 01:06:17,620 --> 01:06:22,870 a critical thing to to realize and that
1403 01:06:21,400 --> 01:06:24,640 the agents of the future are going to be
1404 01:06:22,870 --> 01:06:26,230 helpful mainly for their ability to work
1405 01:06:24,640 --> 01:06:28,630 away from us not from the amount of
1406 01:06:26,230 --> 01:06:30,820 comprehensiveness that they have the
1407 01:06:28,630 --> 01:06:33,150 best object we have for exploring this
1408 01:06:30,820 --> 01:06:37,560 new area is the one between our ears
1409 01:06:33,150 --> 01:06:37,560 providing its active thank you
1410 01:06:56,700 --> 01:07:08,520 tell some questions yes yes
1411 01:07:15,800 --> 01:07:21,980 well you can do that but just consider
1412 01:07:20,060 --> 01:07:23,600 the problem of a system file that some
1413 01:07:21,980 --> 01:07:27,140 people have access to and other people
1414 01:07:23,600 --> 01:07:29,420 don't have access to all right there's a
1415 01:07:27,140 --> 01:07:30,860 perfect example of when somebody's what
1416 01:07:29,420 --> 01:07:32,750 you really like to have is when somebody
1417 01:07:30,860 --> 01:07:35,390 sends a message not a command but a
1418 01:07:32,750 --> 01:07:38,060 message to that system file you'd like
1419 01:07:35,390 --> 01:07:39,740 to have some way number one of checking
1420 01:07:38,060 --> 01:07:42,110 the access privileges before you do
1421 01:07:39,740 --> 01:07:45,280 anything and number two and you'd like
1422 01:07:42,110 --> 01:07:47,810 to be able to do that checking quickly
1423 01:07:45,280 --> 01:07:50,180 okay but even being able to do the first
1424 01:07:47,810 --> 01:07:51,380 would be good whereas in the current
1425 01:07:50,180 --> 01:07:53,000 things that are called object oriented
1426 01:07:51,380 --> 01:07:54,470 languages you are already committed
1427 01:07:53,000 --> 01:07:56,570 you've already formed an activation
1428 01:07:54,470 --> 01:07:59,180 record because it's a procedure call you
1429 01:07:56,570 --> 01:08:02,330 are already inside the method and thus
1430 01:07:59,180 --> 01:08:08,030 each method that is sensitive has to
1431 01:08:02,330 --> 01:08:10,640 have the responsibility access you can
1432 01:08:08,030 --> 01:08:11,960 put that in you can put all through a
1433 01:08:10,640 --> 01:08:14,660 procedure and you have to remember the
1434 01:08:11,960 --> 01:08:18,200 next time you do that it has this
1435 01:08:14,660 --> 01:08:21,260 problem that isn't all I mean languages
1436 01:08:18,200 --> 01:08:26,150 also allow your things that allow you
1437 01:08:21,260 --> 01:08:29,420 access this way I'll talk allows you to
1438 01:08:26,150 --> 01:08:33,650 turn a thing called a block that block
1439 01:08:29,420 --> 01:08:37,130 is a particular kind of object that it's
1440 01:08:33,650 --> 01:08:39,500 a block context actually that by virtue
1441 01:08:37,130 --> 01:08:41,299 of what it is it has access to some of
1442 01:08:39,500 --> 01:08:45,529 the internal variables of the object and
1443 01:08:41,299 --> 01:08:47,960 so it's you can create Trojan horses and
1444 01:08:45,529 --> 01:08:50,480 so forth and but basically what happened
1445 01:08:47,960 --> 01:08:52,370 is when they were implementing the newer
1446 01:08:50,480 --> 01:08:53,720 versions of small talk some of the older
1447 01:08:52,370 --> 01:08:56,420 people who worked on it didn't work on
1448 01:08:53,720 --> 01:08:57,859 the newer ones number one and number two
1449 01:08:56,420 --> 01:09:00,500 most of the newer people had never done
1450 01:08:57,859 --> 01:09:02,330 any operating system type stuff and so
1451 01:09:00,500 --> 01:09:06,109 the operating system type stuff that was
1452 01:09:02,330 --> 01:09:08,240 in the original one didn't get put in as
1453 01:09:06,109 --> 01:09:10,250 the later the later small talk went back
1454 01:09:08,240 --> 01:09:12,680 to be looking a lot more like similar
1455 01:09:10,250 --> 01:09:15,049 than the original one did the original
1456 01:09:12,680 --> 01:09:17,630 one when you sent a message you weren't
1457 01:09:15,049 --> 01:09:20,720 calling a procedure at all all you were
1458 01:09:17,630 --> 01:09:22,100 doing is knocking on it and saying hey
1459 01:09:20,720 --> 01:09:23,630 you know it's the equivalent of the
1460 01:09:22,100 --> 01:09:24,950 postman leaving a thing that says
1461 01:09:23,630 --> 01:09:26,330 there's a message waiting for you down
1462 01:09:24,950 --> 01:09:27,339 at the post office if you would care to
1463 01:09:26,330 --> 01:09:30,250 get it
1464 01:09:27,339 --> 01:09:32,619 it was that arms off relationship that
1465 01:09:30,250 --> 01:09:35,259 small talk 72 had that allows you to
1466 01:09:32,619 --> 01:09:37,440 implement all the operating system
1467 01:09:35,259 --> 01:09:40,599 protection ideas that are important and
1468 01:09:37,440 --> 01:09:43,239 I think that the the ability to
1469 01:09:40,599 --> 01:09:44,799 implement large systems in
1470 01:09:43,239 --> 01:09:46,389 object-oriented languages as well as
1471 01:09:44,799 --> 01:09:48,520 being a being able to implement them
1472 01:09:46,389 --> 01:09:51,219 conveniently is going to have a lot to
1473 01:09:48,520 --> 01:09:53,739 do about how much protection integrity
1474 01:09:51,219 --> 01:09:55,119 there actually is it's easy to do you
1475 01:09:53,739 --> 01:10:01,800 just have to know that it's important
1476 01:09:55,119 --> 01:10:01,800 and put it in the in the system yes
1477 01:10:19,170 --> 01:10:21,830 right
1478 01:10:23,420 --> 01:10:31,250 yeah well I think again I had a there's
1479 01:10:28,250 --> 01:10:33,050 a little technical part of the talk that
1480 01:10:31,250 --> 01:10:35,480 I left out that but I think that one of
1481 01:10:33,050 --> 01:10:36,440 the things that's going to happen is
1482 01:10:35,480 --> 01:10:38,540 that the way we're thinking about
1483 01:10:36,440 --> 01:10:44,150 objects now just even as people are
1484 01:10:38,540 --> 01:10:45,650 struggling to use them one of the when
1485 01:10:44,150 --> 01:10:48,310 you look at object based systems today
1486 01:10:45,650 --> 01:10:50,360 they're mainly modular in terms of state
1487 01:10:48,310 --> 01:10:53,179 right the state is sealed off and
1488 01:10:50,360 --> 01:10:55,520 sometimes it's not even state because
1489 01:10:53,179 --> 01:10:57,350 you can have procedural interpretations
1490 01:10:55,520 --> 01:10:59,960 for things and the thing that's not
1491 01:10:57,350 --> 01:11:02,929 modular in object-oriented systems is
1492 01:10:59,960 --> 01:11:04,880 control in fact sometimes gets worse
1493 01:11:02,929 --> 01:11:07,940 because you can have what's called a
1494 01:11:04,880 --> 01:11:09,710 buck passing theory of control where you
1495 01:11:07,940 --> 01:11:11,119 constantly pass and control all over the
1496 01:11:09,710 --> 01:11:12,980 place and eventually it gets to somebody
1497 01:11:11,119 --> 01:11:16,850 you can handle it and they handle it and
1498 01:11:12,980 --> 01:11:19,659 it's both through inheritance and also
1499 01:11:16,850 --> 01:11:23,330 through containment that that happens
1500 01:11:19,659 --> 01:11:24,590 when you when you start looking in the
1501 01:11:23,330 --> 01:11:26,780 system that's been implemented that way
1502 01:11:24,590 --> 01:11:28,310 you start realizing whoa all of a sudden
1503 01:11:26,780 --> 01:11:29,389 you have to start understanding things
1504 01:11:28,310 --> 01:11:31,310 again and the whole idea of
1505 01:11:29,389 --> 01:11:32,690 object-oriented programming is be able
1506 01:11:31,310 --> 01:11:34,040 to program things without having to
1507 01:11:32,690 --> 01:11:36,889 understand how everything works
1508 01:11:34,040 --> 01:11:38,480 it's like Prolog it's like magic for the
1509 01:11:36,889 --> 01:11:39,860 Baths the first three hours and then all
1510 01:11:38,480 --> 01:11:42,139 of a sudden you have to understand ten
1511 01:11:39,860 --> 01:11:46,100 times more than you ever did so it's
1512 01:11:42,139 --> 01:11:48,280 it's kind of a cruel trick and if you
1513 01:11:46,100 --> 01:11:50,540 look into biological systems
1514 01:11:48,280 --> 01:11:54,080 again the first small talk was designed
1515 01:11:50,540 --> 01:11:57,350 more this way it was less procedural in
1516 01:11:54,080 --> 01:11:58,880 many ways and it was hoping to use a
1517 01:11:57,350 --> 01:12:01,639 control structure invented by Dave
1518 01:11:58,880 --> 01:12:03,409 Fisher who did a great thesis at
1519 01:12:01,639 --> 01:12:06,139 Carnegie in 1970 called the control
1520 01:12:03,409 --> 01:12:08,030 definition language that was one of the
1521 01:12:06,139 --> 01:12:10,790 that was one of the inputs to the design
1522 01:12:08,030 --> 01:12:12,050 of small talk and there he was very
1523 01:12:10,790 --> 01:12:16,340 interested in what you might call a
1524 01:12:12,050 --> 01:12:18,050 gorrik computing and the the current
1525 01:12:16,340 --> 01:12:19,610 stuff I've been fooling around with our
1526 01:12:18,050 --> 01:12:22,550 systems that don't send messages but
1527 01:12:19,610 --> 01:12:23,630 only receive in other words one of the
1528 01:12:22,550 --> 01:12:26,270 ways of getting around the control
1529 01:12:23,630 --> 01:12:27,650 problem is to if you're a module what
1530 01:12:26,270 --> 01:12:29,030 you do is let the system know what
1531 01:12:27,650 --> 01:12:30,679 you're interested in it's up to the
1532 01:12:29,030 --> 01:12:33,349 system to somehow get that in for
1533 01:12:30,679 --> 01:12:34,790 to you you don't care how what you don't
1534 01:12:33,349 --> 01:12:36,739 want to have is a system which every
1535 01:12:34,790 --> 01:12:38,239 time a new object goes into it some
1536 01:12:36,739 --> 01:12:40,130 other object has to know it should send
1537 01:12:38,239 --> 01:12:42,349 it a message to write because then
1538 01:12:40,130 --> 01:12:44,030 you're right back to something analogous
1539 01:12:42,349 --> 01:12:46,699 to the data structure problem having
1540 01:12:44,030 --> 01:12:48,619 random procedures understand the formats
1541 01:12:46,699 --> 01:12:50,179 of data structures and here we're
1542 01:12:48,619 --> 01:12:51,770 talking about having objects have to
1543 01:12:50,179 --> 01:12:56,690 haven't understand essentially control
1544 01:12:51,770 --> 01:13:00,199 formats so I've been working on a design
1545 01:12:56,690 --> 01:13:01,849 of a system that only receives but it
1546 01:13:00,199 --> 01:13:03,830 receives by indicating things that's
1547 01:13:01,849 --> 01:13:07,010 interesting interested in and then the
1548 01:13:03,830 --> 01:13:08,330 the system constructs a structure that
1549 01:13:07,010 --> 01:13:10,340 will guarantee to deliver that
1550 01:13:08,330 --> 01:13:13,250 information to it in a timely fashion
1551 01:13:10,340 --> 01:13:15,440 and again I think if you just get away
1552 01:13:13,250 --> 01:13:17,989 from software systems and think about
1553 01:13:15,440 --> 01:13:20,239 networks again it will tell you a lot
1554 01:13:17,989 --> 01:13:22,159 about what to do with objects because
1555 01:13:20,239 --> 01:13:23,389 you really you can't take objects
1556 01:13:22,159 --> 01:13:25,730 seriously unless you think of a
1557 01:13:23,389 --> 01:13:27,080 transmission line between them it's too
1558 01:13:25,730 --> 01:13:28,400 easy to just think of sending a
1559 01:13:27,080 --> 01:13:29,719 procedure call to them and you don't
1560 01:13:28,400 --> 01:13:31,639 have any of the interesting things that
1561 01:13:29,719 --> 01:13:34,130 have happened with concurrency and
1562 01:13:31,639 --> 01:13:35,900 synchronization and protection and all
1563 01:13:34,130 --> 01:13:40,030 of those things that are really going to
1564 01:13:35,900 --> 01:13:42,199 be a major part of just standard
1565 01:13:40,030 --> 01:13:43,639 programs that we're doing in the world
1566 01:13:42,199 --> 01:13:45,920 so I think you just think of it as being
1567 01:13:43,639 --> 01:13:47,960 a whole bunch of net networked computers
1568 01:13:45,920 --> 01:13:49,340 crying to cooperate and realize and what
1569 01:13:47,960 --> 01:13:51,530 the problems there and how you want to
1570 01:13:49,340 --> 01:13:53,239 write the code then I think it tells you
1571 01:13:51,530 --> 01:13:54,770 what to do with objects that was the way
1572 01:13:53,239 --> 01:13:59,320 the original small talk was designed
1573 01:13:54,770 --> 01:13:59,320 anyway yes
1574 01:14:06,059 --> 01:14:14,820 right good question the I don't actually
1575 01:14:12,059 --> 01:14:19,079 have any of those things in mind but
1576 01:14:14,820 --> 01:14:23,309 when when Smalltalk 72 was done 16 years
1577 01:14:19,079 --> 01:14:28,409 ago the idea back then was what
1578 01:14:23,309 --> 01:14:32,719 capabilities could do if abilities are a
1579 01:14:28,409 --> 01:14:35,570 short way of dealing with access rights
1580 01:14:32,719 --> 01:14:39,840 okay and the access rights there our
1581 01:14:35,570 --> 01:14:42,179 instance are at the instance level in
1582 01:14:39,840 --> 01:14:43,770 capability systems and I wouldn't think
1583 01:14:42,179 --> 01:14:46,469 that trying to protect at the class
1584 01:14:43,770 --> 01:14:48,030 level is C it's easy to protect the
1585 01:14:46,469 --> 01:14:49,349 class if you can protect at the instance
1586 01:14:48,030 --> 01:14:52,380 right because the class is an instance
1587 01:14:49,349 --> 01:14:53,820 of class class that's trivial to do it
1588 01:14:52,380 --> 01:14:57,539 so you want to protect at the instance
1589 01:14:53,820 --> 01:14:59,670 level its itself and protecting at the
1590 01:14:57,539 --> 01:15:01,340 instance level in capability systems is
1591 01:14:59,670 --> 01:15:03,750 tantamount to protecting each message
1592 01:15:01,340 --> 01:15:06,139 individually because that's what a what
1593 01:15:03,750 --> 01:15:10,489 a capability map actually does for you
1594 01:15:06,139 --> 01:15:10,489 so it's a very nice way of doing it yeah
1595 01:15:11,809 --> 01:15:17,239 sure
1596 01:15:13,729 --> 01:15:19,459 no I don't see any if you can deliver it
1597 01:15:17,239 --> 01:15:22,940 for that price I think he will sell a
1598 01:15:19,459 --> 01:15:25,340 few but as far as I can see there's no
1599 01:15:22,940 --> 01:15:27,920 in fact the interesting thing is the
1600 01:15:25,340 --> 01:15:30,619 user interface a lot of the things in
1601 01:15:27,920 --> 01:15:32,329 user interface are more like small talk
1602 01:15:30,619 --> 01:15:35,929 than than than the Mac he has
1603 01:15:32,329 --> 01:15:37,880 hierarchical browsers in it and the
1604 01:15:35,929 --> 01:15:41,780 proportional scroll bars and other kinds
1605 01:15:37,880 --> 01:15:45,409 of things that small talk and although
1606 01:15:41,780 --> 01:15:47,929 he has a very strange scroll nose we saw
1607 01:15:45,409 --> 01:15:49,519 at window resizing method apparently I
1608 01:15:47,929 --> 01:15:51,320 haven't actually used the machine yeah
1609 01:15:49,519 --> 01:15:52,909 but somebody told me you can only resize
1610 01:15:51,320 --> 01:15:56,420 one dimension of the window at a time
1611 01:15:52,909 --> 01:15:58,729 and he would would have known that Apple
1612 01:15:56,420 --> 01:16:01,749 didn't own that if he'd seen the the
1613 01:15:58,729 --> 01:16:01,749 Grail movie because
1614 01:16:09,239 --> 01:16:15,270 well again in the longer in a longer
1615 01:16:11,969 --> 01:16:17,820 talk what when I started thinking about
1616 01:16:15,270 --> 01:16:20,730 it I realized I didn't have not only
1617 01:16:17,820 --> 01:16:23,640 didn't have any good ideas about AI that
1618 01:16:20,730 --> 01:16:27,120 I'd never had I had had a good idea in
1619 01:16:23,640 --> 01:16:29,880 AI and I figured that was either because
1620 01:16:27,120 --> 01:16:31,880 I was completely stupid or else I was
1621 01:16:29,880 --> 01:16:35,520 thinking about it in a way that wasn't
1622 01:16:31,880 --> 01:16:37,200 terribly fruitful or the stuff that
1623 01:16:35,520 --> 01:16:39,630 people have been doing in AI didn't have
1624 01:16:37,200 --> 01:16:41,820 any good extrapolation into what would
1625 01:16:39,630 --> 01:16:45,120 be powerful I still don't know which of
1626 01:16:41,820 --> 01:16:47,070 those three is the is the case but I
1627 01:16:45,120 --> 01:16:48,300 have a couple of degrees in biology so I
1628 01:16:47,070 --> 01:16:53,580 started thinking about it from
1629 01:16:48,300 --> 01:16:56,460 biological stand the first thing that I
1630 01:16:53,580 --> 01:16:58,980 realized was that trying to essentially
1631 01:16:56,460 --> 01:17:00,000 do a Beethoven which has been one of the
1632 01:16:58,980 --> 01:17:02,340 main aims of AI
1633 01:17:00,000 --> 01:17:03,989 who knows to do some superhuman
1634 01:17:02,340 --> 01:17:06,330 intelligence right off the bath to
1635 01:17:03,989 --> 01:17:09,719 impress the Pentagon sponsors is a real
1636 01:17:06,330 --> 01:17:17,160 loser because we can't even do a decent
1637 01:17:09,719 --> 01:17:18,360 ant and so I got basically I got
1638 01:17:17,160 --> 01:17:19,830 interested in thinking about what would
1639 01:17:18,360 --> 01:17:21,570 it be like if you forgot about forget
1640 01:17:19,830 --> 01:17:24,630 about Beethoven for a while what would
1641 01:17:21,570 --> 01:17:26,910 it be like to just try and understand a
1642 01:17:24,630 --> 01:17:29,880 I as an architectural problem which I I
1643 01:17:26,910 --> 01:17:32,550 do this is I think of life as an
1644 01:17:29,880 --> 01:17:34,080 architecture right the material moves
1645 01:17:32,550 --> 01:17:35,850 through us we recycle the atoms in our
1646 01:17:34,080 --> 01:17:38,370 bodies every seven years or so but the
1647 01:17:35,850 --> 01:17:40,830 pattern remains some kind of a weird
1648 01:17:38,370 --> 01:17:43,980 feeling to think of matter passing
1649 01:17:40,830 --> 01:17:47,430 through this force field or so that
1650 01:17:43,980 --> 01:17:49,080 organizes it and the same same thing is
1651 01:17:47,430 --> 01:17:50,790 likely to be true for intelligence it's
1652 01:17:49,080 --> 01:17:52,290 it's an architecture and when you're
1653 01:17:50,790 --> 01:17:54,840 doing doing architecture you have to
1654 01:17:52,290 --> 01:17:59,070 start building things and seeing which
1655 01:17:54,840 --> 01:18:00,630 cathedrals fall down and you're really
1656 01:17:59,070 --> 01:18:02,280 in bad shape in architecture if you
1657 01:18:00,630 --> 01:18:04,620 build dog houses because you can build a
1658 01:18:02,280 --> 01:18:06,450 doghouse out of almost anything and it
1659 01:18:04,620 --> 01:18:07,530 won't fall down and doesn't scale you
1660 01:18:06,450 --> 01:18:10,140 know the big problem with our whole
1661 01:18:07,530 --> 01:18:13,290 field is big good ideas don't often
1662 01:18:10,140 --> 01:18:14,850 scale and we always get screwed when
1663 01:18:13,290 --> 01:18:16,380 somebody has a good idea that works in
1664 01:18:14,850 --> 01:18:18,120 the small and then they try and scale it
1665 01:18:16,380 --> 01:18:18,980 off by a factor of thousand and all of a
1666 01:18:18,120 --> 01:18:22,370 sudden
1667 01:18:18,980 --> 01:18:23,780 anymore so the to me it seemed like the
1668 01:18:22,370 --> 01:18:26,450 an interesting thing to do would be to
1669 01:18:23,780 --> 01:18:30,440 try and build some biologically relevant
1670 01:18:26,450 --> 01:18:32,330 models of animal intelligence and pick
1671 01:18:30,440 --> 01:18:35,120 at a bunch of different levels so that
1672 01:18:32,330 --> 01:18:36,170 you wouldn't get into the scaling bug so
1673 01:18:35,120 --> 01:18:39,140 that you actually thought you were
1674 01:18:36,170 --> 01:18:40,970 developing some something that might
1675 01:18:39,140 --> 01:18:43,070 give you a few hints as to what the what
1676 01:18:40,970 --> 01:18:44,989 a good architecture for intelligence is
1677 01:18:43,070 --> 01:18:47,780 I joined up forces with Marvin Minsky at
1678 01:18:44,989 --> 01:18:49,910 MIT set up a project called the vivarium
1679 01:18:47,780 --> 01:18:51,770 which it involves children because the
1680 01:18:49,910 --> 01:18:53,570 again it's it's hard to design for
1681 01:18:51,770 --> 01:18:57,110 adults it gets boring after a while so
1682 01:18:53,570 --> 01:18:58,910 the project for children wound up being
1683 01:18:57,110 --> 01:19:01,190 saying what would it be like for
1684 01:18:58,910 --> 01:19:04,340 children to actually build these animals
1685 01:19:01,190 --> 01:19:08,450 what would it be like for a child to sit
1686 01:19:04,340 --> 01:19:10,100 down and build up a both a physical
1687 01:19:08,450 --> 01:19:11,989 animal and a mental animal that you
1688 01:19:10,100 --> 01:19:13,460 could put into a big environment if we
1689 01:19:11,989 --> 01:19:16,190 have one more second I can show you a
1690 01:19:13,460 --> 01:19:19,250 little clip of some of the work that
1691 01:19:16,190 --> 01:19:28,300 we've been doing this is will be taped
1692 01:19:19,250 --> 01:19:30,770 six and what it is is before you show it
1693 01:19:28,300 --> 01:19:33,230 what it is is some real stuff and some
1694 01:19:30,770 --> 01:19:35,270 fake stuff the real stuff is all of the
1695 01:19:33,230 --> 01:19:37,940 3d graphics that are in it which we did
1696 01:19:35,270 --> 01:19:40,220 in real time on a an Evans & Sutherland
1697 01:19:37,940 --> 01:19:43,750 flight simulator this is the machine
1698 01:19:40,220 --> 01:19:47,540 that has something like 3.5 gigaflops of
1699 01:19:43,750 --> 01:19:53,030 computation it's about six to eight Cray
1700 01:19:47,540 --> 01:19:56,930 XMP 48 worth of stuff so it can actually
1701 01:19:53,030 --> 01:19:59,739 generate on a database that has some sub
1702 01:19:56,930 --> 01:20:01,690 planetary in size
1703 01:19:59,739 --> 01:20:05,400 you know because you have to have to fly
1704 01:20:01,690 --> 01:20:09,730 over hundreds of miles of it at Mach 3
1705 01:20:05,400 --> 01:20:12,099 and it's able to perfect anti rastering
1706 01:20:09,730 --> 01:20:16,210 perfect texture mapping on the thing and
1707 01:20:12,099 --> 01:20:18,550 it has it has the ability to have as
1708 01:20:16,210 --> 01:20:20,800 many as thirty two independent cameras
1709 01:20:18,550 --> 01:20:22,449 at once so you can see look into the
1710 01:20:20,800 --> 01:20:25,749 same database from multiple points of
1711 01:20:22,449 --> 01:20:28,480 view so all the stuff that you see in in
1712 01:20:25,749 --> 01:20:29,920 this user interface at that level is
1713 01:20:28,480 --> 01:20:32,380 real and then what we did is a little
1714 01:20:29,920 --> 01:20:33,670 mock-up to see what the user interface
1715 01:20:32,380 --> 01:20:36,190 some of the elements of the user
1716 01:20:33,670 --> 01:20:38,010 interface might be for children we're
1717 01:20:36,190 --> 01:20:40,869 using elementary school children so
1718 01:20:38,010 --> 01:20:42,280 they're both visual and very tactile so
1719 01:20:40,869 --> 01:20:43,809 we got very interested in what would a
1720 01:20:42,280 --> 01:20:46,360 tactile kind of user interface be
1721 01:20:43,809 --> 01:20:49,389 particularly one without any menus in it
1722 01:20:46,360 --> 01:20:50,590 so when you so I think you'll be able to
1723 01:20:49,389 --> 01:21:00,429 tell the difference between the two so
1724 01:20:50,590 --> 01:21:03,249 let's roll that tape number six so here
1725 01:21:00,429 --> 01:21:06,190 just turn out the lights so here we have
1726 01:21:03,249 --> 01:21:07,510 actually four desktops in operation
1727 01:21:06,190 --> 01:21:11,889 under projects and we go into the
1728 01:21:07,510 --> 01:21:13,840 vivarium one and here's the flight
1729 01:21:11,889 --> 01:21:18,760 simulator we have two different points
1730 01:21:13,840 --> 01:21:22,320 of view two camera controls as you see
1731 01:21:18,760 --> 01:21:24,369 there so this is 60 frames a second
1732 01:21:22,320 --> 01:21:27,780 real-time computer we wanted to do it
1733 01:21:24,369 --> 01:21:29,920 all in real time to keep honest about it
1734 01:21:27,780 --> 01:21:31,719 and one nice thing about real-time
1735 01:21:29,920 --> 01:21:37,420 graphics is you want three minutes of
1736 01:21:31,719 --> 01:21:41,170 real-time graphics you it only takes
1737 01:21:37,420 --> 01:21:45,400 three minutes to generate so here's the
1738 01:21:41,170 --> 01:21:47,739 little kids notebook going rockfish you
1739 01:21:45,400 --> 01:21:50,499 see the real real crab over there and
1740 01:21:47,739 --> 01:21:55,570 the simulated crab and the crab model
1741 01:21:50,499 --> 01:22:00,519 that the kids working on here's the sea
1742 01:21:55,570 --> 01:22:04,559 snail weird color it has is actually the
1743 01:22:00,519 --> 01:22:04,559 color that's how we do scrolling
1744 01:22:04,810 --> 01:22:10,460 and here's an avoidance reaction this is
1745 01:22:07,550 --> 01:22:16,010 what a real one looks like really an
1746 01:22:10,460 --> 01:22:19,550 amazing amazing color and down in the
1747 01:22:16,010 --> 01:22:25,489 sales simulation here it's just chucking
1748 01:22:19,550 --> 01:22:27,710 along on its basic movement cycle these
1749 01:22:25,489 --> 01:22:30,830 these snails these particular ones have
1750 01:22:27,710 --> 01:22:38,710 only about 2,000 neurons so here we open
1751 01:22:30,830 --> 01:22:38,710 it up a little bit kids love that
1752 01:22:39,040 --> 01:22:45,170 various brain models there's three or
1753 01:22:41,449 --> 01:22:46,699 four different points of view here's the
1754 01:22:45,170 --> 01:22:50,120 one that they would use to program it
1755 01:22:46,699 --> 01:22:52,730 with all the sensors and now if we put
1756 01:22:50,120 --> 01:22:54,530 them all to work get to see what the
1757 01:22:52,730 --> 01:22:56,920 whole environment actually looks like
1758 01:22:54,530 --> 01:22:56,920 here
1759 01:22:59,440 --> 01:23:04,960 [Music]
1760 01:23:19,920 --> 01:23:32,220 [Music]
1761 01:23:38,380 --> 01:23:48,060 [Music]
1762 01:23:50,560 --> 01:24:12,079 [Music]
1763 01:24:27,050 --> 01:24:38,119 [Music]
1764 01:24:42,250 --> 01:24:59,010 [Music]
1765 01:25:02,040 --> 01:25:14,860 [Music]
1766 01:25:11,830 --> 01:25:17,840 this about two years into a six-year
1767 01:25:14,860 --> 01:25:22,640 project where we basically built all
1768 01:25:17,840 --> 01:25:25,120 this stuff by bite simulator brains of
1769 01:25:22,640 --> 01:25:27,800 the animals we built with a bunch of
1770 01:25:25,120 --> 01:25:30,020 thesis projects at MIT that Marvin
1771 01:25:27,800 --> 01:25:32,960 Minsky and I are supervising the next
1772 01:25:30,020 --> 01:25:35,690 phase of the thing is to do a system now
1773 01:25:32,960 --> 01:25:39,070 that children can actually build the the
1774 01:25:35,690 --> 01:25:42,110 animals and put the brains and so we're
1775 01:25:39,070 --> 01:25:44,720 now the the idea is about two years from
1776 01:25:42,110 --> 01:25:47,240 now that is to start testing that aspect
1777 01:25:44,720 --> 01:25:50,030 of it by the end of the six years is to
1778 01:25:47,240 --> 01:25:53,030 exhibit sort of an animal building kit
1779 01:25:50,030 --> 01:25:55,340 with brain models that ethologists would
1780 01:25:53,030 --> 01:25:56,340 not turn up their noses at thank you
1781 01:25:55,340 --> 01:26:01,430 very much
1782 01:25:56,340 --> 01:26:07,489 [Applause]
1783 01:26:01,430 --> 01:26:07,489 [Music]
1784 01:26:08,900 --> 01:26:17,570 [Applause]
1785 01:26:13,930 --> 01:26:20,750 we're gonna take a break and it'll be
1786 01:26:17,570 --> 01:26:23,200 ten minutes please return in ten minutes
1787 01:26:20,750 --> 01:26:23,200 thanks
1788 01:26:23,380 --> 01:26:44,159 [Music]