Directions in Object-Oriented Programming From Actions to Agents

From Viewpoints Intelligent Archive
Revision as of 20:22, 5 December 2017 by Ohshima (talk | contribs)
Jump to: navigation, search

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]