Back to the Future of Software Development (2003)
From Viewpoints Intelligent Archive
								
												
				okay anyway welcome
 everyone to the April do in SD forums future of
 software development lecture series co-hosted
 by the compter History Museum Sanford
 rockowitz chair of the series um
 first all Laura Merling executive director of of
 SD form is going to say a few words about the organization
 or
um
 hello everyone thanks for coming I think many of you have been to
few of the series I see some familiar faces out there
 um at first I want to thank Sandy
 for all of his work for these the entire
why I'm doing that is there's probably only a couple more
 left for this particular series and we're looking for the next
 series um so if you have thoughts or ideas I think
 Sandy would love love the input and I know we would as well
 do we continue this do you have other topics where else would you like us
 to go um but um anyway for those of you
 that don't know who a software development form
 is uh we focus on emerging technology Trends and
education to you and the rest of the community to
 try to say hey what's going on whether it's
 wireless intelligence whether it's grid Computing whatever
topics and Technologies are so again if you have ideas
 we like to hear them um but that said I and
announcement I have is announcement that I'm gonna do for Bill Gro
 very quickly um next week on
 Tuesday we have a home uh home networking
 Expo uh kind of the connected home uh
 so it's a series of two tracks one's on content one's on infrastructure
 within the home and it's addressing different topics like I
TBO is coming to show their developer toolkit and talk about
 connecting uh your PC to too and things
 like that um we have a Broadband panel Microsoft's coming
 to do a keynote on the future future of the home eight years from
and where it'll be so there's some interesting things coming that's next
Tuesday the 29th all right I'm done Sandy your turn I'm done than
k you everyone well we're
 delighted that the Computer History Museum is uh co-hosting
 this series and as many of you know the
 museum is uh videotaping the talks in the series
 for their archives and John tul the the executive director
 of the museum is going to say a few
 words keep very
 but I want to really thank every everyone and it's been a real honor
development Forum we really have a lot of synergy
 while this is about the future we're about the history
the authentic history we have a great great uh
 program ourselves with a lecture which we We join with with
folks in having our next lecture will be in our new
 phase one or Alpha phase building at
 1401 North Shoreline Boulevard in our new Auditorium
 on June 10th it'll be Jurassic software the
origins of consumer software Stuart alsup
 Scott Cook uh uh and and a whole bunch of folks
 that are going to be at that that particular lecture but our role
 is really to preserve the history authentically and to
 really make that happen we have Hardware artifacts to go back 25
 years we've got software artifacts to go back 25
 years we're putting together over the period of the next three or
 five years are really first class worldclass
 exhibition for people to really enjoy and to understand what
 it was all about in the innovators like we're going to hear about tonight
it's particularly happy tonight because Allen is one of our Museum
 fellows and it's a pleasure to be here and it's a pleasure
 to work with the software development Forum thank
you well as
 as many of you know the talks in this series are intended to
 answer from a variety of perspectives
 the larger issues of software development
 and to this end we've enlisted uh
 distinguished uh figures in software
 development who can share with us their thoughts and
 insights how on how software can should
 and will be developed and the Technologies by which this
 will happen um
 simply put the talks in the series are intended to
 answer the following question what is it that leading Ed
attention to
 and why is it important now
 as Laura said we're coming to the close of this lecture
 series we expect we'll have one more talk either
 the uh final Thursday of May or the 1
 of June and we would very much like
 your feedback um
 on what's worked for you in the series what
 You' thought has been valuable what might have been done
 better um and looking forward to the coming
 year what might we look at for
 in terms of a of a series uh address
 to a tech a senior technical audience
 um what what who what
 what people would you like to see what topics would
 you like to see address and um
 I know if some of you might have caught the slideshow that was
here earlier on as you were coming in it included my email
 address which is uh rockowitz
 r c wi TZ
 at moft m n soft.com
 and and I'd very much appreciate
 hearing from you um your thoughts on what
 we might do as a follow-up series next
year our speaker tonight
 is is truly a seminal
pardon
 it's a with Alan K it is a true challenge to
 keep it short uh Xerox fellow
 Atari Chief scientist Apple fellow Disney
 fellow HP fellow president viewpoints
 Research Institute um the list
 goes on and the awards goes on
 um alen has said that the best way to predict the
 future is to invent it and my God has
 he talked his he walked the
 talk um his image of the
 D book um sort of in
 way back when computers filled rooms sort of clued
 us into what computers might be what a personal computer
 might be one of the creators of small talk the
 first uh Dynamic o o
 system he developed key aspects
 of the window user interface that we
 all know so it's a real honor uh to welcome Alan Kay
 here this evening
[Applause]
you
 yeah thanks um
 you know it's it's great to be back at Park
 but of course this part of Park never existed when we were
 we were here was built after a whole bunch
 of us left so this is actually a new part
 of Park and since
 this is uh
 Forum has kind of the fabulous
 Paradox of being about the future
 software but sponsored by the Computer
History Museum uh
 it opens a very wide range of possibilities for
 giving a talk and so what I what I
 thought would be interesting is to
 start off uh with maybe
 a little bit of a CET about the
 uh last 20 years years or so of of non-development
 in so many areas take a
 look at some of the there's some interesting
 40th birthdays this year there's a really
 interesting 35th birthday this year there's
 a 30th birthday this year that are all I think
 have something to do with the future software
 uh development and uh
 many of these uh are what
 I would call really promising roads
 um not actually taken
 roads that had
 tremendous potential and actually paid
 off uh tremendously well many years
 ago and then the vicissitudes of various things including
 the way commercialization got done these roads
 were not taken over the last 20 years or so and I
 think to the detriment of most software
 so the the KET is a simple
 one and actually this KET is pretty much
 the same about the last 20 years and
plus years ago we made the same one because this
 was kind of um IBM
 and looking at business and thinking
 of business as the ultimate Target for trying to
 sell computers and the problem with
 uh business
 and um organizations of
 this ilk is that they are
 kind of an epitome of two
 conservative uh properties that most human beings
 have um not
 just in advanced uh societies
 but in traditional societies as well and one one of these
is called instrumental reasoning instrumental
 reasoning is a form of reasoning
 by which when a person is presented with an idea
 or tool they judge this idea or tool
 solely on the basis of whether it contributes to
 some goal they already have
 okay and I think if you think about that you can see that many
 many people you know are basically instrumental
 reasoners um
 only as far as we can tell from working with children only about 5%
of children are not instrumental reasoners
basically built
 um built in a person who's not an instrumental Reasoner
 when presented with a new idea or a tool will actually
transform themselves in the presence of the idea and
 the tool and so these are people
 are called uh early adopters
 that aren't just fists some early adopters
 just want to be early so they don't have much taste
 but there are other people who respond actually
 to the to the new idea and these
 people are to be found in each era and often they
 are the ones who come up with
 things that are thought of as far-reaching Visions
 um that then
 unaccountably take many decades to actually spread
generally even if they were a good idea in the first place
 this happens over and over again um
 and the other uh
 Allied idea is that
 um we humans are very
 very uh prone to do case-based
 reasoning it's the main
 kind of reasoning built into our nervous system
 so it's a compartmentalized
 U way of dealing with past experience our
 legal system is very case-based
 engineering happened thousands of years before
 science because it was case based
have to have a great theory if you're Gathering up things
 that worked so you tend to make cookbooks
 of things and you always basically start off that way
 uh the problem is is that you start losing it's a
 great first order Theory and a bad second order
 Theory so when the commercialization of
 PCS happened a little over 20
 years ago and it was aimed at business was basically
a customer that didn't really even want the computer that
much and when they did want it they wanted it for
 automating paper so as mclen said we were
 moving quicker and quicker into the future but steering only
 by looking in the rearview mirror and
 this commercialization um
 almost completely occupied the
 space so we'll come back
little bit and of course this has happened in history
 so uh when the printing press got
 invented and for
 the next 100 years or so
 much of the printing that was done was to automate
done by manuscript
 uh U with monks many
 of them religious tracks and the if you've seen a Gutenberg
 Bible you will have
been astonished at how much it looked like a handdrawn
 book Gutenberg actually had more than 250
 character characters in his font because he wanted
 not just to do the upper and lower case
 but every ligature every abbreviation
medieval scribes used he wanted to duplicate those
 exactly so he carved not just
 the 50 or 60 things that he needed he carved
 253 and then they
 brought in people after they had saved all his
printing they brought in people to hand illuminate
 the books so they looked real
 now and the books were big
 like this and the reason is nobody knew what a
 book looked like should look like
 the only thing they had as a model with these old manuscripts 50
 years later Alis who is a printer
 in Venice is his uh last name was
maker was eldest
 Manus and actually I his Italian name is Aldo
 and I think of him as as uh Aldo
 minu so it sounds more friendly than
 Aldis minucius and he wanted
 to do a portable library um
 around 1500 and went out in the streets
 of Venice measuring saddle bags to see how big
 the books should be if they were going to be portable
 and the answer he came up with was the size book we use today
 as our main size book and now you'll never forget
 that because it's such a wonderful
that Aldis actually went out and did user centered design
 to make his portable
 library but in spite of
 people like Aldis and Rasmus understanding what the book
 was going to become the actual
printing Revolution didn't happen till about 150 or
 maybe even 200 years later if you look at it from the
 standpoint of the way the printing medium was
 used to argue rhetoric
 gradually changed to the rhetoric that we
 view as modern rhetoric for arguing about politics and about
real world and Science and
 all of this new way of expression and the
 new way of using the printing press was done by children
 because 150 years later nobody who was involved
 in the invention of the original technology was still alive
 and the people who understood back then
 what the book was going to be had also
 died right so the
 people who stood the great idea
 uh were uh did understand it
 back then but the the large group of humanity
 actually had to grow up into it several Generations over
 before the children actually found this thing I think
 this is what's going to happen with uh
 Computing because we have a similar kind of thing sort
millions of dollars thing is kind
 kind of mainframes owned only by
 institutions and the desktop computer workstation
 is kind of in it Gutenberg Bibles by the
 way cost about $60,000
 three years of a Clerk's wages
 the nurenberg book fair proclaimed them
 and they were all marvelously similar the
 advertisement said they showed 24 of these books
 that were as similar as they could possibly
 be um so this is like a
 workstation here and here's our
 little notebooks designed to be portable
 and this is not hard to figure out because of
 Moore's law but the thing it's hard to figure out is
when are we going to get something that is
 equivalent in the large dimensions
omething closer to Universal literacy
 only one person in a 100 in Europe could read back
 here um 80 and 100 could read
 a little in here uh schools
 had developed to teach reading to everyone
 by here reading and writing
 thinking about the ideas in a new way and so
 forth so when you look back
 40 years
 you can see a lot of promising stuff
 that happened then we'll talk about it a little bit because
 it's it's worthwhile thinking about how
 some of this great stuff got started and then when commercialization
 happened uh it kind of died
 away this may be overly
 harsh but if
 we take a look at 140th anniversary
 this happens to be the 40th anniversary of the funding of project
 Mac
 and uh Doug engelbart's
 proposal to arpa was done in
 62 right before so it was just starting
 to happen here and lick
 lier and this is a picture of him actually
 from that era when he was
 the perceptual psychologist went to Washington
 they had some money left over from the space program
 as it went over to NASA and they decided to give it to him to do
 with whatever he wanted and he decided to
 try and deal with this idea that he' had
 about man machine symbiosis and he wasn't the only one who had it
 but he had a nice phrase he said not too
many years human brains and Computing machines will be coupled together
tightly and the resulting partnership will think as no
 human brain has ever thought so if we look at
 where we are today it just hasn't happened
 yet it's happened in the Sciences
 The Sciences particularly the physical sciences have been
 absolutely transformed by the computer
scientists are thinking in ways that no scientist ever thought before
 because there are computers but in general this is
 not true it has not happened yet
 so let's look at a couple of the arpa
goals um
 sorry
 one of them is this notion of end user computer
 computer literacy
and
 now last year was the actual I'm fudging a little
 here last year was the actual 40th anniversary of sketchpad
 but Ivan's thesis was signed in January
 63 so I'm claiming
 something here it's always worthwhile I always
find a way of playing this because it's worthwhile thinking
 about this period when uh
 we like to say there was only one personal computer
 and that was when Ivan was on a machine
 that was much larger than this room from 3 to 6 o00 every
morning
 so this machine did not even draw a lines and notice he's
 pointing to the segments here and he's
 saying uh now make everybody mutually perpendicular
 and sketchpad there just figured that out and
little flange so
 continuous zooming and clipping on this first
 this is the first actual window ever
 done this display could only plot
 points so I have an add uh
 write the line drawing routines as well so there the
 constraint was uh
 parallelism now the constraint is collinearity
 so he's using those solid lines as guidelines
 for drawing the dashes and then he'll make the solid lines
invisible
 so about half the capacity of this huge
 Sage uh computer the tx2
 was used for doing the
graphics
 okay now he's got the hole in the
flange and the actual sheet
 of virtual paper he's drawing on is about a third of a
 mile on a side so it's a continuous zooming
 interface this is why
 it was called sketch pad the idea was to just draw
 quickly
 an idea and then get the machine to clean up the drawings
 by telling it what the additional rules
 were so use the uh
 center of the Cross piece is there to for
 the center of the radius of the circle and so when he tells the thing to
 become mutually perpendicular that drags the
 circle and makes them a nice little rivet
 and so sketchpad is actually a
continuous nonlinear
 constraint solver so a little bit like a
 a graphical uh
 uh spreadsheet many
the spreadsheet because it
nonlinear problems like stresses and strains
 on Bridges and so forth
 now he's got himself a little rivet
here and
 here's one of the first ideas this ever appeared in software
 is a notion of making an
 instance so this is an instance
 of that rivet and you can rotate it and position
 it and scale it
individually
so he's going to Anchor it into the flange
there can see that
 the success of sketch pad led to a desire for nicer
displays and
 here's a very powerful idea one of the first times
 ever in software is the idea of multiple instances
 and then he notices whoops I've got that cross
 piece there let me go back to the master
 today we'd call a class let me make the cross
pieces transparent and now when I go out
drawing the instances have all felt that so this is a
 true object-oriented Software System I believe the
 first real one in all
 important
details and
 it's a prototype oriented system because when you make something
 so he's got this rivet in the flange
can make that into a a
 class or a master and now he's getting
 instances of that thing he just
constructed so this is dynamic
 objectoriented programming done by
continuous problem solving
could you possibly
 in one year have invented computer
 Graphics have invented
 um um
 object-oriented software and
 done the first real-time Problem Solver
and he looked at me and said well I didn't know it was
 hard so he had a tremendous advantage
 in that nothing was known about computer Graphics
 nobody had really done it in any interesting way
 and uh one of the wonderful things about his thesis
 which by the way is is available from
 MIT you get online and go to the Barton
 library or one of the library services in MIT
 you can get the PDF file for it and
 it is astounding I believe it is the closest thing
 to an act of a Newton in
 our field in the sense of Newton
 stuff was impressive in any age uh and maybe
most impressive from where we were before Newton to
 where we were after Newton and so
 Ivan here in one PhD
 thesis written in machine code on this
 huge ungainly machine sort of gave
ntire image of what it was like to be able to sit down
 and not just make pictures on a computer
 but make things that were simulations so this is
 in in many many ways everything uh certainly that
 I think I've been doing and a lot of
 us have been doing have been kind of footnotes or fleshing
 out this incredible
 uh vision and
 realization um unfortunately
 Ivan is too Restless to actually
 uh he you know he could do
 most unbelievable things in little fiveyear periods
 and he had to move on to something else and
 uh those of us who followed him um just simply
 lack uh his incredible talents
 so uh it's actually hard to go out and buy a system
 today that will do all the things that sketchpad could
 do back then kind of an interesting
 commentary so another paradigmatic
system is sort of the almost the opposite done exactly
 at the same time was the original video
done in the pdp1
 here it is if you ever programmed it is
 really one of the first machines that anybody would call
 a honey because uh
 it just right there it was sweet
 you could really make it do things and it had a
 uh one of the early Graphics displays from
deck on it and
 uh one of the first things they did on it was the one of the first
 Graphics text editors which they called uh
 expensive uh typewriter
 because it was basically a typewriter except it cost
 $110,000 or so
 and then uh pretty quickly Steve Russell had
 been reading the doc Smith lensman series
to take a shot at
 uh trying to do that and he came up with
 uh something like this this is a a
 kind of a recreation of it
 but the basic idea is you got F equal ma
going and so when you
h uh
 try and steer the thing you have the problem is you already
 have quite a bit of
 velocity built up
 and so if you want to uh stop this
 thing you have to point him away and try and kill off his
 velocity so it's
 quite interesting and challenging to use
 even before they put a sun in there with a gravity itational
 field that made it even more interesting
 so now space war is one of those
 things that was so
 simple so doable
pretty much every computer that had a graphics display
 on it somebody would sit down and uh
 figure out a way to do space war and one of the
 most important things about it it also use
 this object idea as you want wanted
have not just one spaceship but a space ship for each
 person playing it so it had many of the interesting elements
 of what we think of as computer Graphics
 today um and it's
fun
 okay so
 another part of uh the arper Dream
 from way back was the idea
 of being able to do group
 collaborations and this happened in two
 forms which later got combined one was this
 desire to do the intergalactic Network
 as lick called it back
 then um
 and uh from Doug engelbart's
 proposals about boosting the combined
intelligence of groups
 and so it just happens
 to be the 35th anniversary of
was ever given actually a little bit later in the year
 right bill so uh if you don't
 everybody here must know Bill English but bill raise your hand please
 because everybody's heard of Doug
angelar but Bill was the guy who made all the stuff
 work so he was
 the uh partner he was the co-inventor of
 the mouse which was invented in
 64 and this picture
 here is
 is a picture that uh could have been
 taken yesterday at somebody sitting at their
 desk but it goes all the way back to the 60s
 so this is kind of the birth of personal
 Computing the way I look at it
 whoops and do we have
 sound somebody giving me sound from this
thing
 let me look just that low let me stop this
 for a second this is one of
 the advantages here of having a system where the authoring
 is already always on is I can just uh
 rewind this
 guy let me just move him up to
 the about
here start
 him again so I can say all right I'd like to go to
 produce but I'd like
 go to produce they get big I'd like to say one
 branch only and uh let me look
 just that low and I see it oh
 I can say I'd like to see one line
 only I can see it but there's another
 thing I can do there's a root I said I have
here so here I'm afraid I'll need
ifferent picture The View so here's what
 I do with a picture drawing capability here it's a slight map
 if I start from work and here's the route I seem to have to go
 to to pick up all the materials and that's my plan for
getting home tonight but if I want to I can say
 the line Library what am I supposed to pick up there I
 can just point to that and oh I see overdue
and all well there was a statement there with that name
 on it go back what if I what am I supposed to pick up
 the drugstore h i see very interesting
 all right Market
 can do things if I want to just say I'd like to
 Interchange produce and canned materials
 Pingo and they're all numbered right if
 I care to look interchanging them very quickly
 can are going to get interchanged with
 produce they do it and all it's re
 numbered so one of the nice
for showing this is
 you get a nice this is from the uh 68
 demo in San Francisco that I was very happy to
 be there was one of the run like
 a military campaign uh
 nothing was left to chance right bill
 was the most incredible thing you've ever seen and this
 that thing on the puny little thing
 there was bigger than this whole screen it was just this
 huge thing done by a
 uh you know one of the first light valves
 that was pretty much using an atomic bomb as a light
 source huge big
 situation display but one of the reasons I show
 that is the computer was actually down in Meno
 Park while angelart was giving this uh
 demo up in San Francisco and we'll talk about
 that in a second but if you look at the response on this system
notice the response was subsecond on
 all important interactions and I have to tell you the
was done on was about a half a MIP
 192k bytes
 and uh was time shared so
not the only user on this machine think about that for
 just a second and think about what we don't
 get off these several hundred
 MIP machines we do not get
 subs second response so how could these guys
 have possibly gotten subsecond response
 anybody got a
theoryof that's a necessary
 but not a sufficient
condition
 who's got a more a more close order
 Theory okay I'll tell you why the
is is because they wanted to get subsecond response
they were not going to be settled for anything less than subse
 response they worked their asses
get subsequent response because it was part of their image
 of what it meant to fly that was
 one of the metaphors to fly through n-dimensional
 thought vectors and concept space
 so this was a conception a grand
 conception about what it meant to
 have a corpus of knowledge that was useful to other
 people and also an understanding that in any retrieval operation
you're doing you're spending most of your time
 rejecting so the only way
 you can make something like this work whether you're
browsing or any kind of searching is you have to reject quickly
 so they had this thing set up it was just
incredible we could go on and on about it but it's
 worthwhile when you're thinking about the future of software
 you don't have to go much past this
 in 1968 to make your first
 list of 15 criteria for what you should do and what
you shouldn't do because they just really really
 went after it um
 and the next part of it is perhaps
 even more interesting and was part of the original
 conception as well so check this
out now computer do the automatic
switching that'll bring in a camera picture from the camera monitor
 on his console such as the camera monitor on mine
 is hi Bill that's great now we're
 connected audio you can see my words you can point
 at it and I can see your face and we can talk so bill is down
 collaborating go off to a
 a directive file and see what the directive
 is to get Roman numeral page
 numbers I'm into the file now here's the
 first level of the hierarchy let's open up
 page formatting this is angle we want
 page numbering so we'll open that up we find
 yes here it is Roman numerals we find
 out the directive y your bug's right on it already
D here directive we want so we worked down quite
 a way into a hierarchy as you can
 see okay so
 another part of this conception was that through every part of
 the system not as a feature added on from the outside but to be able to do
immersive collaboration of various
 forms and this was a a demo of
 it and they even had their meetings
 when they had a meeting in the same room they had the
 consoles down
 in this these sort of circular table Arrangements
had so that they were actually sharing the context and they
 were using this as a sharable Blackboard back then
 so um one of the nice things is you
 can get videos of
 these demos there's a lot of stuff written about it
 and um if you're interested in any kind
 of uh improving group
 process uh
 thinking about what criteria are for starting you
 you have to start here it's
 because uh most most of us aren't as smart as these
 guys were and the software that we are given
 today proves it because it was
who never looked at this stuff never understood
it so another thing that arpa was thinking
 about was kind of a
 form we saw one form
 of what the computer environment was
going to be like here's a here's another one from Rand
 was done about the same time and
 it interest it it superficially doesn't
 look that similar
 but it actually uh is remarkable in the
 points of similarity it has with the engelbart system
from a completely different point of view
 which is uh from the from the standpoint of the
 end users that they dealt with at Rand Corporation it's
 called Grail and uh it's one of
amazing coincidences uh that both
 the tablet and the mouse were invented in the same year
so it's part I didn't know whether you knew that bill but it was
 so Tom Ellis did this these tablets
 were actually kind of like a sign
 that you were a real graphics person back
cost $118,000 in
 1968 which is like like
 $100,000 today to get when they're made by
 hand so they're probably less than
 50 of them made in total so take a look at this
 end user
system
 first we erase a clow Arrow then
move the connector out of the way so that we may draw a box in
 its place but recognize he wants
 box and makes one now it's recognizing his handwriting
printing in the box is being used as commentary
 only in this case the box is slightly
 too large so we may change its size where
 Modern Window Control came from literally then draw a
 flow from the connector to the
Box attach a decision
 element to the box and draw a flow from it
 to scan we then erase
 the flow arrows attached to the process post new
 area and move the box to a new
position this allows us to
box so you get
it so
 question that one could reasonably ask in the year 2003
 is why the heck can't we do that on our
 pdas and the answer is
 that nobody who's making pdas has the faintest idea
that this is would even be neat to do
 they just can't imagine that it's anything
 but a little tapping thing
 and it is truly amazing to me that
 graffiti is not as good
 as this recognizer was back then and in
 fact this recognizer was published in a paper
uh in 1966 by Gabe
 Groner for just anybody who wanted to know how to do
 a single stroke almost perfect character
 recognizer it's been in the literature since
 1966 but the people who did
today absolutely did not we're not going to go back and read
 anything that those old people did hey
 we're just as good if not better
 so this is to me the real difficulty
 with getting software into the future
 is that software can't even use the
 past and so we basically have millions
of people now who are programmers and by the law the bell
 curve most of them are average or
[Applause] worse in fact if you think
bell curve is 83%
 are Caesar worse so if you
 throw a bell curve on programmers and you basically
 have a tyranny of the majority that
 uh winds up you know full of Sound and Fury signifying
 nothing so this is a huge
 huge problem so one of the biggest
 first things that we could do to get ahead in software is
 to at least start with best
practice and the other thing was nice about this recognizer
 was only about 8K of
 code because it ran on a really small
 machine that is the machine
 was an IBM 360 Model
 44 but it was pretty Tiny
 from the standpoint of bits and
bites okay
 and then sort of the
 more indirect thing that arpa had a huge part
 in was in trying to get real
 computer science and engineering invented
 now we claim this hasn't really happened
 very well yet but there are some really
 interesting uh stabs at it
 my favorite one what I think of
 as the best thing ever done
 having to do with programming language was McCarthy's
 invention of Lis and it was done
 kind of in a typical way that these things get done is that
 McCarthy was basically a mathematician
 and so he was able to do this
 when he was thinking about a universal way of doing
 Computing this is kind of the Maxwell's computer
 uh Maxwell's equations of programming
 it's the bottom half of page 13 in the
 list 1.5 manual and pretty much
 everything that
 uh is good about programming is in those few lines
 so it really has a lot of the Maxwell's
 equations then Steve Russell again the guy who did space
 war was the person who coded this up and
 made it into a real language called lisp then many other
 people work with it um that
 happened a few years earlier but this
 year and I just sent an email to Peter Deutsch
 uh yesterday to confirm
 that this is indeed the 40th annivers iary of
 a truly remarkable version of this which was the
 first interactive uh
 lisp on a standalone machine and
 it was also its own operating system it was done by Peter when he was
 only 16 years old so if you've ever
 puzzled through trying to understand
 the lisp eval
 uh imagine a 16-year-old boy being able to
 understand it and writing one of the most beautiful machine
 code programs ever for
 this uh for this machine and
many of the things that we wound up doing after this
 were based on the fact that this stuff had been
 done tiny little machine actually
 ran in uh what was called a four
 core machine which is uh 4,8
 bit words so it's a little over 8K
 9k or so so The
Interpreter was about 2k and you had the rest for doing
 Computing in
ow for me
 my background is in math and biology and
 my first collision with this stuff was in
 running into sketch pad and then simula seeing
 the similarity to U biological
 cells as a universal building block and
 thinking up the idea of dynamic
 objects then we tried this as an operating
 system on this little machine called the flex machine
 early desktop machine
 the uh I later
 saw this wonderful Grail system
 and the same year I saw early flat panel
 display at the University of Illinois
 so we started thinking about the prospect of
 putting the transistors in this machine on the back of one of these
 displays so you could do this
 and that same year
 of 68 I saw Seymour paper
 who had had a tremendous Insight involved ining children
 that certain really important forms
 of U advanced mathematics
 particular uh Vector differential
 geometry uh was akin to
 the child's own way of thinking about itself in the
 world so the child is the zero
the child goes it's at the center of the of the
 universe the narcissistic coordinate
 system and that if you know differential
 geometry you know that's the coordinate system that differential geometry
 uses it's always what is the geometry
 like from where you are and so for instance
 a circle is just go a little turn a little over and over
 again you don't need any x^2 + y^2
 = R2 or any of that stuff so when I saw
 that it blew my mind completely and that got
 me thinking about this little computer for
 children and my image of
 it was uh 12 and 13
 year olds here would actually sit down and program
 their own game of space War learn about
 Newtonian Dynamics in the process and have fun
 playing and uh those of us who are
 around uh a long time ago will remember
 and in the computer museum has it parked outside
 its old building is the old SRI bread truck
 how many people remember the mobile
 radio packet radio stuff yeah John shock
 does You' says this I think it
 was a 40 conine van or something was packed
 full of stuff and one of the uh frivolous
 things that happened back then was one of the first
 emails ever sent from the
 beer joint called rosatis up in the hill
 they drove this Econoline fan
 up there they had not
 even a line of sight I guess to but it was back at switching
 to Sri and then into the arpanet into Washington
 meanwhile they there swizzling down beer
 with their terminal at the on the the one of the outside
 rosatti picnic tables so we knew that
 uh Wireless Computing was going to
 come and this kind of packaged up
 um the idealizations of all
 of this stuff into this one idea I called the dnab
ook
 and so if you take this arper dream
 um it took shape for me when
children came into the picture because
 um I really didn't know how to design for a adults I wasn't very
 adult myself I didn't have
 any real contact with that world but
 the improving the child's condition for learning
something that really appealed to me so I got very interested
 in it and
 I have to thank Bill English once more it's great that bill is here because
 I rarely get a chance to thank him in public
 but um Bill actually took me under
 his wing when we started here at Xerox Park a long
 time ago and and one of the things
me is Alan maybe maybe you should write a budget
 and I'm afraid I really did say to Bill Bill
 what's a budget remember
 that Bill said well you put
 this number here and you put this number here
 um so this is actually the 30th anniversary
Chuck ther's Alto
 here it is and so
Milestone it went along with a whole bunch of other
 stuff that we did and
historically it had an interesting parallel with the
 pdp1 lisp thing because it
 was the the strength
 of what McCarthy had done
 um because I'm I'm basically a
 mathematician not a programmer I program a little
 bit but I don't consider myself a programmer
 but I felt I could do the same thing for an object-oriented language
 that McCarthy had done for lisp and this is
 one version of it and Dan Eng Les who is
your hand
 so Dan uh was the reality guy
 he took this little paper thing
 and made it into uh a succession of small
 talks that uh uh lived to
 this day and Chuck
 uh uh fashioned this uh first
and from our standpoint what we're really trying to
 do was to get
machines built so we could take them down into schools
 and start working on this is Adell Goldberg
Here and Now up to the
 present I'm just going to show you a few of
things that we've been doing
 um so squeak is
 kind of an outgrowth of some of the stuff
did at zerox Park and we
 don't think of systems like this as
 goals they it's hard to
 Define uh but it's relatively easy to
 Define uh computer systems as
 vehicles or media so you sit down
 because you're basically trying to make
 models in it and you get ideas
kinds of models and so you have to use the modeling material
 to make the uh different kinds of modeling
 material to make the models and so forth
 so this system uh is a wide
it's been implemented on
 many many different kinds of platforms bit
o explain a little bit of that because I think it's
 very very important for
future software especially having to do with the internet
 uh it's also of interest because it was basically done
 by this small group of people here here's Dan
Engles again Scott Wallace Ted Kaylor John Maloney
 and Andreas Rob uh
 so it's an example of a system that involves its
 own operating system and many many things that
 uh we think of as applications done by a
number of people rather than the hundreds of people
 that you think of uh needing it so there's interesting
questions about well how is this actually possible
 has a very flexible
 object system so if we take a this
 is kind of a cute little demo here if you take a paragraph
 doing word wrap um and you're in
 a real object system then
 uh you can just let those guys
 wander around here and if you think
 about what do they have to actually do
 they kind of have to follow the
leader
 all right can get them to go
faster
 and the algorithm we usually think of is kind of
 the one that is done between frame times
 so it's actually doing the same thing there but between
frame times it looks like it's happening instantly that is
programing because it's basically just four little
 rules to do it there's many kinds of media in
 here I'll show you just one other uh thing
 here
and so
 we live in a world of applications
 but if you think about it applications are one of the worst ideas anybody
 had and we thought we'd gotten rid of them here at Park
 in the 70s because
 applications kind of draw
a barrier around your ability to do things
 what you really want is to gather the resources
 that you need to you and make the things that you want
 out of them uh so for instance
 one of the ways of thinking of desktop publishing is
 that it's just uh Graphics done
 right right because you basically
to be able to make almost any kind of graphic construction
 on the screen you want it to be able to react to
 things and you want the elements to be
 uh not confined in the bounds of an application
 but be uh be part of something else so
 you should be able to uh have primary
 and secondary reactions so here I'm
drawing through text just
 as you would expect but I should also be able to hop
 the fence here and for instance drag this guy
 out like this
 and but I should be able to do this without destroying
 so you see if I'm SC scrolling here it's scrolling
 there and flowing through
these objects interact with each other to the extent
 that they need to but no more so and you kind of get desktop publishing
 for free or any kind of media
composition and actually
 one other thing I should show you here
 as long as we're talking about this is an idea that I spent
 12 years at Apple intermittently trying to get them
 to adopt which is the idea of unlimited desktops
 and Small Talk At zerox Park
 had this and the squeak system here has
 this and what I mean by that is that
 each time I decide I want to do
 something I really want a separate work area
 to work on and I like these work areas to persist
 over time and we've been looking at them so there's no
separate presentation uh thing
 there's nothing like uh postcript here
like uh PowerPoint
 so if we look at the projects that are in
uh in this guy here we
 can see the presentation that I've given so far
 right here's where we are right now
here's the next thing I'm going to show and I decided
 i' really rather show this thing
 and each talk that I give is
 a sorting of the projects that I have so the
 idea is you never have to go to anything weaker like PowerPoint to give a
 presentation you just link up the various things that you've been
 working on and U and show them
are also the things we ship around the web
 instead of uh web
pages okay
so just a word
 about how the porting is done it's kind of
 cute so here's the the
 thing that I I think
 is actually known but is not
 well dealt with in software and that is
 that um for
 decades software has been specified
 using paper documents people have tried
 to implement to those paper documents and then they've tried
a benchmark Suite of some
 kind to validate the Imp uh implementation
 and to my knowledge it has never succeeded in producing
compatible implementations
 across platforms Fortran is
 famous for the exceptions
 and even C
 is not exactly the same across platforms
 so that is really a shame
 so a different way of doing it though is
 to make a model of your kernel
 that can be debugged so
 it's not a paper model so when we decided to do
 squeak um there had been some experience
 in
 um doing various kinds of small talks at zerox
 Park and afterwards so the idea was to
 found an old Mac that would run an old Apple
 version of small talk
 and we'd written a book 20
 20 years ago 20th anniversary of this book
 now this book had in it among other things
the VM
 of uh Small Talk written in
 itself so if you type that in
 and get it running you have a simulator the VM
you could treat that simulator as the spec
 and say okay that's the only
 uh uh validation
 and specification of the system that
 we're going to have and we'll debug
 this and when we get it running we will have the definition
 of the VM that we're hoping for now of
 course this doesn't do you any good because it's running glacially
 slowly so next thing you have to do is write a
 translator of that and this work was primarily
 for squeak was primarily done by uh Dan Engles
 and John Maloney um
 a translator and this
 translator should
 with without changing the meaning of what the simulation
 does translated into a lower
 level form that can be put on another machine
 like we we chose a subset of C
 as the lower level form to go for a Target
 the subset of C that tries to be compatible across
 platforms so all of a sudden now you have a power PC
 VM and this top
 stuff uh is machine independent
 so all of a sudden uh we were now off
 the old Mac and onto the power PC
 and since it contains all of this stuff you can use it
 to improve itself um about
 a month and a half after after we put it out on the net
 guy in Germany we'd never heard
 of before sent us uh a version
 for all the Intel PCS and that's what we run
 today and it now runs on 30 platforms bit
 identically because the key idea here
 is the debugging of this complex thing and
 then having a mathematically sound translation
 that pre preserves the actual
 meaning so in many
think of this is an old technology or new technology
 but very few people are doing this today
trying to run on many different platforms
internet I'll show you the relationship of
squeak
 so there's this nice malleable stuff called
 CPU and memory and then there are
 bad defacto standards called operating systems that
 take away most of the degrees of freedom
 and the internet with tcpip
 is really great then there's a really
de facto standard called the worldwide web
you want to do
 so we actually when we're running on a machine like I'm running
and we have a couple of different PCS
 here we actually have our own operating system
 but we contact the existing operating system at a single
 point equals about a thousand lines
 of code because we have to share the display
 we we want to do this without killing the existing operating
 system but all of our own tools are inside of
squeak and these are go portable with the rest of the
 stuff and the same thing with our
socket system for handling the internet this gives you a completely
 portable uh system
 that uh can go across a wide variety of platforms and
 usually takes just a week or two at the most to uh
the port something to think about for
software
okay so let's take a look at the
 present I found uh doing these things
howing some of the kids stuff
 uh makes most of the points in a way that's easy to
 understand um
 nice thing about working with kids is
 um when you give them something
 they feel quite free to reject it
 it's hard doing tests with adults and companies
 because adults have been trained trained for 25 years to
 take  for
money
 but most kids haven't learned that yet
 so what the kids really want to do is have some fun so
 like a fun project for them is to design a
 car that they can learn how to
 drive paint it it's
 like a 10-year-old kid
here put in some
 nice little specular Reflections that we learned
Disney
 and we found that both boys and girls love to
 put on big powerful off-road tires on
 their vehicles so their vehicles
 wind up looking a lot like this
 usually and we got a little graphic object
 and in this system
 and this is an Insight that goes back a long ways to the days of Xerox
 Park was I think after one of our beer Buss
 at the black forest or something
 I was blury looking at the screen in my office
 and I realized that to an end user there were only smart
 rectangles floating around on the screen all
 the crap that we had underneath all of the inheritance
 all of the other stuff was totally invisible
 to a naive end user it was just smart
 rectangles if you start thinking that way you start thinking
about gee what I really H want to have is uni
 Universal objects that can wear costumes
 and I'll give them a little bit of idiosyncratic behavior
 and try and build my system out of that so here's our little
car
 and it's a graphic object but
 it has another view of it which is uh
 symbolic I'll call this
 car the kids like this and
to teach the math so we want to get them interested in this
 so for example if we look at this property
called cars heading and start it counting up
 car turns
heading changing
 here's a behavioral property forwarding
 binging turn
 binging make a script just drag out a
tile hit the
 clock start it running
 and of course I can steer by just changing the numbers
 here the good one is zero Which
 car goes straight negative numbers it
 turns the other way that's not really like driving a
 car so we say okay make make yourself
wheel
 I always do a blue
 one it's just another little costume
one of these guys
 look inside of it call it
 wheel it's got a heading
 you look at that number there on heading it
positive and negative as I turn the wheel
 positive and negative numbers here influence the
invitation to pick up the name of the numbers coming out
 of the wheel just drop them in there
 and I should be able to control the car
 now so it's sort of for the kids it's
 one step learning about what a variable actually
 is generally one of the harder concepts
 for kids to grock but it's very easy
 here because it's operationally in their
 space and the system is just recompiling
and recompiling and recompiling as we go every time we make
 a change so these scripts actually run as fast as
underlying squeak scripts they are the underlying squeak scripts
very fast things as we'll see in in a little
 bit okay
 so once they've done some of that stuff we can
 investigate the real world using
 our ability to make models now
 say sound please keep the sound
on
 both hands oh do not pay any attention to
[Music]
else who's got
Apple
 that's a
jamer
 what you get what' you get try use
stockes
 together so put
 spongeball I think we should do the shot foot
 and the spongeball because they're
 two totally different weights and if you
drop them at the same time maybe they'll drop at the
 same speed drop
 [Music]
 so so the average of galileos
 per class is usually about
 one for 30 kids or so
 this little girl cut right to the chase you realized the stopwatches
bad because you couldn't tell when the janitor is dropping it's hard
 to whole thing takes about a second or so
 and so she just thought well all we have to do is
 listen when they hit if we can hear two hits then they're falling at a
different rate if we hear one hit so this is Galileo's insight
 back when uh it was hard to time things
 so children can actually think about this stuff operationally
 very well and as we'll see in a second
 they can do better than most college
students so the way to actually investigate this is
 to take a video of the dropping ball
 here and
 um hard to see what's going on by
 looking at the video but
 um these frames are actually part of the objects
can do things so we can just pull frames out
 we can stack up every fifth frame here we can
 stack them up vertically and we can start
 measuring them so
 one of the ways of measuring these is to
 take the make the height of a
rectangle
 go from the bottom of the ball
and one frame to the bottom of the ball in the
 next frame that vertical drop
 is actually the velocity because it's a distance
 traveled in unit time
 you can see the velocity is
 increasing we'd like to know how the velocity
 is increasing here doing this a little bit too
 quickly but so one of the
 ways we can get a qualitative look at it is simply by stacking
 these guys
up Galileo had
 a very interesting way of doing this himself and
 if we we look at this we see oh the change in velocity looks
 constant change in velocity is acceleration
 it looks like constant acceleration so the little script
 that they write looks like this they make
 a simulated ball
 and have a variable called speed and they say let's
 increase the speed by minus5 a constant
 each time and then let's change the ball's position by
speed right so that's a second order differential equation
 done by 11 year olds and we
 let Tyrone tell you how he did his and to make
 sure that I was sound please just right
 I got a magnifier which would
 help me figure out if the size
 was just right after I had done that
 I would go and click on
 the little basic category button and
 then a little menu would pop up and
 one of the categories would be geometry so
 I click on that and here it has
 many things that have to do with the size and
 shape of the
 rectangle so I would see what the height
 is and I kept going along the process
 until I had them all lined up with their height
 I subtracted the smaller ones hyp from the bigger one
 to see if there was a kind of pattern
 anywhere that could help me and my best guess
 work so in order to show
 that it was working I decided to leave a DOT copy
 so that it would show that the ball was going at the
 exact leaving a little cookie acceleration
 behind to show that it matches up with where
 the thing is in the frame another one that the kids did is running
 the movie against their simulation like
this
 to show that they've got the
nailed
 that cool
 so if you know anything about this this is one of the most studied
 difficulties that
in science there
 are literally hundreds of papers that give
 the every kind of statistic you
 could you ever hope for but the most interesting one is that 70%
 of college students who
 encounter this in college uh uh can
 conclusively prove that they don't understand
it so this is one
 of these point of views is worth adiq points thing
because the form of the math that's used in college
 is not the best kind of math this is a really great kind of math
 for this because it's a state space math
at gets rid of all the multiplications and makes them into additions
you've got the looping adding up
 the additions into the multiplications that are in the standard
 formulas and it's just a simple
 two stage if you
 our old enough digital differential
 analyzer um that does this stuff and
 it's just right there and immediately the
 kids use it to start doing things they can shove things off
 cliffs they can uh fire water
 balloons they can make uh a lunar lander
 game so here's the little
 two-stage thing drops the
 spaceship down there
 so gravity eats velocity the motor
 of the spaceship
 uh U produces velocity
 this little script makes a flame appear when the
motor is on this is the one that crashes you if you're going
 too fast so lunar lander game looks
 like this so I can
 toss the thing up on its
jet
down people used to spend money
 for that game
 and of course in the spirit of this thing
 uh have to do space war and again we have
 a way of doing the sketch pad
 kind of prototyping so here's a here's a
 spaceship with its acceleration
 variable because now we're not worrying about
just vertical stuff we have to worry about vectors velocity
 variable the joystick and so forth and
want to be able to make several of them we can just copy these
Green Copy button
 here put these spaceships into the
 Universe here we can differentiate
 say this guy by
U
color and we can start them both
going right so this is kind of what I was talking about
hat you have to write in order to do this and that is the
 only only program that you have to
 do so the interesting thing about
 most software
 is that
he
 mathematics you can think about what the
 actual Prime relationships
 are of
 what you're trying to do
 uh you realize they're tiny almost always compared
 to the code that you wind up writing there are many
reasons for this and we should talk about them a bit right now
 I want to move I just want to move you through
a few more examples and then show you some Edge of-the-art stuff we've been
 working on uh and then
 have some time for questions so here's a
 fun program now thinking about feedback done by
 these two 11y old girls the idea is
 have the car uh be able to stay on the middle
 of the road as a robot car if you look at this little
 script you can see uh when the sensor is
 touching the middle of the road color it's it's going to go
 forward and no other condition
 when it's touching the green curb it's going
it's touching the yellow curb is going to turn the other
 way so these are
 they an analyze this into three separate cases
 and you can see it's quite smart because when it
runs into a sharp turn it really doesn't go forward it just
 turns its way around and when questioned
 the girls realized said that yes of course
 this will work even if we don't draw the lanes
well because the plus4 and the minus four will cancel each other out
 and so even if all three of these guys are
 firing uh it'll work just fine
the kind of mathematics that you're hoping
 children are actually able to do
 okay here's another example
 remember I said these things have costumes so
 here's a bunch of objects drawn by Sam
 and he's increasing the cursor
 by one over and over again so we can see it
 going through there and then he's telling this guy
 to look like the the costume that's
 down here learn a little bit about rates
 by putting like for instance a two in
here
 1.5 is
interesting
0.5 and the kids realize
 immediately well gee that's all a movie is movie players
 just two lines of this
tuff then there's
didn't suspect that when you say something into a
microphone the system gives it back to you as a bunch of little
 rectangles in one of these very same holder
 guys here and here's a cursor
 when we move the cursor we have we have a little program
 that's going to move the speaker this graphic speaker
 here is actually connected to the real speaker
 in the machine so if we turn this
 on as the cursor goes
 by we're reading the numbers here and we're animating this thing
 you might say well why can't I hear it the answer
 is it's going way too slow
 but this stuff runs as fast as the adult
 stuff so I can actually speed
 it up by a factor of 10,000
 Tom
 Tom and I can play the same
 games what if I put a two in
[Music]
 here
0.5 and 1
point2
 come and say
 1.5 so the
 the children very quickly realize
that the $300 they just talked their
parents out of for synthesizer is actually paying for two lines of
 code and some recordings
 and they quickly just make buttons
 and the button has the the action
 of putting the magic number into a variable and
over again they have a little synthesizer so
 the the point here I'm not trying to get you interest of course
I am trying to get you interested in the kids stuff because not enough
 adults uh realize
 that the kids are going to be the ones who invent this
 stuff the last 20 years have proved that adults
 are hopeless at invent inventing this stuff so
 we should pay more attention to the kids but
 what I'm trying to show you here is that the models
 what you might think of is the thep mathematical
 models for things that are considered to be very complicated
 phenomena in programs are actually extremely
 simple so if you actually make a software system
 is able to deal with those models directly and abstracts
 into a different place the
 uh optimizations you get a very very powerful
 very very simple way of
 programming okay just a couple more
 um the
 if we take the feedback stuff and apply
 it to looking for Shades of lightness and
 darkness we can do a salmon swimming
 Upstream what it does is it
 circles until it finds
 something darker so it's continuously acquiring and
losing and it only has one little piece of memory
 from the last time it it looked
 in the water to get it to follow this
 gradient clownish does the same thing with the
 circular gradient from the Cen enemy
okay and once you
that
 then you can use this these ideas that we'
 adapted from star logo
 which is to
 this is like a zillion little salmon but they're ants
 the ants wander around randomly when they find the food
 they pick up a particle go
they leave a scent trail behind it's about 10,000
 patches Computing in parallel here
 uh diffusing the Fones
evaporating them and this is kind
because you see very quickly
 uh a large percentage of the ants have been organized
 by this loose coupling this is a loose coupling
architecture
 even though the ants aren't communica ating directly with
 each other here's one where they' run out of food
but they're still scent so it's kind of like
Street that's kind of interesting
learned about epidemics if you take
 the particles and apply gravity to them you
 get buoyancy this is truly
 beautiful little things so they have thousands of particles
 here and if you ever wondered where does the upward Force comes from that floats
 things it comes from the force of gravity
 on a liquid or a gas that's
 confined you don't confine it it just spreads
 out so it's the putting it into
something that has walls of some kind including a
 circular spherical Earth
 that makes it impossible for the
particles to spread out sideways they start piling
 up and they start exerting
 uh an upward Force that's uh
 proportional to how many things that are piled on top of
 them and you get this model very very nicely and we can change
 the mass of the sphere here make it
 a hundred times more massive so I'll change this to
thousand
 and actually it's not going to sink all once it gets into equilibrium
 it'll still be boyed up a little bit
 it's not quite massive enough to sink all the way to
 the bottom and if I turn Gra gravity off I get
 another interesting
thing which is when it
 stabilizes I get Brownie in motion and we're less still less
 than a hundred years away from Einstein's
 original paper
 which was written in 1905 back in those
 days they could only see the blue guys so
 I one of the best Arguments for the existence of atoms was
Einstein showing the kinetic theory of heat
 on small particles
 um moving around would cause larger
particles to move in the way that was observed
 it's a per perfect way of actually
 understanding this
tuff okay
 so now let's uh we're going to look at some collaborative
 stuff going to go to some so here's where I want
 to uh Booth switch over to
 this guy
okay what
up
oh it just wasn't showing
 up
okay okay just a
 slight pause here
 so I'll tell you a little bit about the
 problem which is that
when the internet
 was worked on it was trying to solve an N squared
problem
 and which was how to be able to
get any node to communicate with any other node
 without having to make the crossbar switch
 in between so that was done by a peer-peer endtoend
 way of doing things and one
with that solution was
 that it uh uh
 yeah you can connect me up too
 one of the problems with that solution was
 that it made
 it very difficult to do what angelart had shown us how to do in the
 60s which is to do immersive
 collaboration because the problem is is that there
 for n people on a network there are two to the end
subgroups and you really can't allocate a server
 as engelbart's group was using
 to solve this problem so this is a
 catastrophic exponential that you have to
 deal with so various people including Dave
Reed years ago
 uh started thinking about how could you do a peer-peer
 uh solution to this which
 gave you the equivalent of something like EverQuest
 but without having any Central server at all
 and we'll talk a little bit about the solution the solution
 is basically you have a distributed
 replication of objects
 that has uh uh realtime
 uh transactions over a slow Network
 I we'll sort of give you a sense of of
 uh what this is maybe we could dim the lights a little
bit
 and this is uh my friend Dave Smith uh
 who's the guy who did the original first 3D
 game on a PC long time ago and Vera
 walkth through and many other kinds of things and
 uh uh this system which is
 called croquet was basically done by three
 people with a little kibitzing from me Dave
 Smith Andreas Rob and David Reed and
 Dave go why don't you I'll be your slave
 here hear
 can we turn me on somehow just
 a switch here hello
 you're on good um
 c as said is collaboration environment
 what you're looking at right now essentially a 2d
 display uh
looking at is not what you think you're looking at
 back away from
this I'll back away from mine
 so Alan's the the White Rabbit and
 I'm I'm Alice and if you look I am the guy
 on the right hand side Alan's the one on the
left
 okay hello hello sounds the same to me oh there he goes
 wow all right so I go over here and
 show off a few things yeah I'm going to follow most of
time here I'm going to follow and see what Alice does
 um this is a mirror uh and
 uh so I'm actually looking at myself
and the white rabbit standing behind me but it's a mirror that can move
 it's a window floating in space
 uh I can resize it
 uh I can pick it up and move it around
 just like you'd expect I should be able to right there's nothing
 special about it uh in fact this is a portal
into the current space we I can grab it too so he grabbed
 it over there so essentially what's nice about is any of
any activity can be done by one guy can be done by any person
 so these are essentially objects that you know are
xhibiting a certain set of behaviors but uh
 we we we can use those objects in any way we want to
 uh any person can use them that way here's another
 object this little uh pyramid
 this is actually a zarinsky pyramid so I can
 actually model ify its uh
depth I'm
sorry oh yeah yeah that's
 a that's that's easy actually ask you do
the time right
 that's a good one to ask I I can uh modify this thing
 also give
it but essentially it's
 it's totally um
 that's me right
 another thing over here is Allen again
 and uh just putting a little bit
of a just so there's no distinction between 2D and
 3D first accurate rendering of my actual state
right and now we're going to go into
 a uh another portal but this time into a portal
 into a different space besides the one we're we're actually in
 this is actually a little a martian
 landscape now as I spin this
around it's like picking up a shoe box and looking around inside
 of it now Alan's going to watch me walk into it so
you pay attention kind of to both of those what's going to
 happen is this is actually think of this as a hyperlink on
the net by the way exactly this is like a web page
 better so I just dropped
 in do you see I'm inside
 that world if I turn around now
 and I watch Allan come in there
is okay it's a
 door over here we have a little robot
 that's in both of our spaces and what I'm going to
 do I'm gonna get up on the Rock here so I can see you
 is uh have it start moving around
 so I'm controlling and giving a little bit of a velocity
and I can I can turn it's kind of like the car that Allan
 showed uh it's got inverse
 kinematics yeah notice the wheels are following the
terrain which I I I find very
cool and I can attach myself
 to that frame or I can drive
 it from behind
 uh so I'm literally like sitting right behind the thing and driving it
 around around
Mars uh actually yes let me show you that
 I can get on it now Alan
able to see me
 now how cool is that all right
 I I'll get on again
 there we go H something's
 uh I keep hitting something no
 it's uh it should I should be able to stay on it
 I'm not but that's all right who cares it should work and we'll show you something
 in a little bit that uh illustrates that better
 so next thing
 is find the way out of here oh there is
 um by way this is another one of those windows this is
 identical to the ones that we saw
move this around just like we did and we jump out
 here's another portal to yet another space
 we'll jump into this one I'll go
 the other way and what we're going to see over
 here is another portal into this
 world what we have going on here is this
 uh neat little flag now this is actually the first thing I
 ever did in in squeak uh
 and uh this is actually a full mesh
 uh physics trans uh it's it's a mass spring
 model and just to prove it that we're not this isn't the canned
 simulation I'm going to remove release the top
 of the flag so I'll jump in here so I can watch you
doing this and then I'm gonna start pulling it back
 like it's a rope back onto the thing
 now this is a lot like the particle system stuff
 except the particles are constrained now I'm
 actually standing on that little um so I
can grab it here and give you a little toss
 so I'm I'm on the little Carousel
 now spinning around
 as you can see what's really neat about
 that to me is that he's actually controlling my
 position in the world remotely
 I mean it's it's literally uh yeah it's
 like he's changing my state in a dramatic way it's
 just a fundamental thing that's just really
 fun um but dizzy
 um over here we have a a little tribute to Scott
 fiser and and U Warren Robin at
 the the little escalator and this escalator actually works
 I can get on it no hands look I'm being picked
 up and
if you recall
 let me uh close this
guy
 um what's next do we go close
 this guy should we go to let see we should
 go to the viian world
 oh that's I gez I knew it was something I forgot
 um this is our good friend Andreas Rob
 one of the co-creators of the system and what we have
 here is an underwater land now what's interesting about
jump into this
 uh I I actually turned it into fish but what we're gonna do is watch Allen
do the same whoops you went to the wrong place
ah
that
now watch as you'll see Allen
 uh come through see him
into a fish um
 now what we're going to do is populate this there's
 a few fish swimming around but we'd like our own yeah
 go up go up closer up here yeah go up there
 yeah if I go too close it'll the fish will show up under the
 rock ground so what I'm going to do is
 draw one and literally
paint package
 and uh I'm just going to do a quick and dirty fish
 here so this is a
 u derived from a master's thesis by
 Teo igarashi who's now a professor at
 uh University of Tokyo
 was originally called Teddy you can look it up on the net
 is really very cool this is
 one sort of one more advanced version of it
 so what I did was I drew a quick and dirty M of a fish which
 any child could and should be able to do but guess
 what he's uh
 inflated and what you'll see in just a
 second if he's not already there
 there he is both sides so essentially we're able to
 collaborate I can pick him up and so Allen's moving
 around uh so alen's gonna make some seaweed
 so here's
 a this is
 a real challenge for this thing that none of us
but I think it was uh
 Dave's what 5-year-old son or something thought about
 making something like this and this if you know what
algorithm does this
 is kind of
 frightening because the the algorithm has to
 figure out the major and minor axes of
things and
 then once having done that it uses that as a way of intuiting
 what the 3D shape is going to be so this is going to
 uh compute for a little bit
 Yeah figuring out what the
3D
 I'm always amazed when this uh that this
works there it
is there it
 is there it is a't that neat I I just think that's
 one of the yeah what's what we've got is the
 simplest 3D modeling tool ever built which
 is uh just for me just a joy
 this this thing is so much fun you have no idea when you start building
you start making yeah this stuff is scriptable just
 the way the the 2D world
 is okay let's chug our way out
 and of course when we go out if you watch me
 we uh return to our
 our normal normal forms okay there you are go ahead
 and I should be Alice there you are
 and you're the rabbit okay now we have to
 go to uh David's World right this
 this this little world do kind of show
 um uh a very
 Hefty kind of 3D
environment there's a little bit of a
texture problem with this I just got this machine and the drivers I don't
 think are quite ripe yet
 but uh still you see the the environment's
 pretty
rich what I'm going to do is go on top of the
 um this Aqueduct I'm literally going to walk
there
 and walk up onto this
 and Allan should be able to see me there you
are one of things that's cool here I just
 a little side comment is my machine
 I'm using for this is an ultral light from Japan
 so this is a two-b
 computer doing its
 stage of uh this
tuff and so we're basically at the point where two pound
 computers can uh do all of the Computing
 that uh a child could ever
 hope for to your right if you just
 look on the so are you
going to jump off actually what I'm going to do is one of the things about 3D
 is distance doesn't mean anything uh
in these virtual environments so actually I can jump to that window that
you see way way down at the bottom of my screen
 I'm just gonna just immediately go there like
 so I just did a a quick and of course I
 can jump right back up
 hey there oh what am I doing up there
 there you are okay anyway so I'm GNA jump
 through the window again and out
and back to where we started
 and what's neat
 is I can seal Allen in before gets out
 you got me in the little world
 okay so let's switch back
 okay last couple of things
here okay so here
 a couple of things about this system so
parts of the system were done by this group of about
 five people and
 virtually all of the 3D system
 uh that you saw there including the
 network stuff was done by just three
 people so the message here is besides
the fact that this is fun at least we think it is
 uh and that we think especially this kind
 of uh highly scalable
 uh stuff that doesn't require servers to do immersive
 stuff is a is a next interesting layer for
 the internet that if you think of it as a kind of an
 addition to tcpip as a way of handling
 N squared problems it's
interesting to people who are interested in the future
 of software that uh this
tuff was all done by a very small number of people
 and that means that there's powerful leverage
 underneath in this way of building software
 whatever way it is
 one one of the things we might talk about a bit is what way that is
 my favorite uh
 statistic here because this is a dynamic object
 system um I can use the
 dynamic objects as though they're a database so
have a retrieval basically a
 a an expression that's asking
 all the comp compiled methods in the
system to uh
 accumulate their size and bytes and add them
 up so this is so this will include the operating
 system all the applications that you saw
 the 3D stuff uh development systems and
 everything this is an interesting number
 so it's 2.8 megabytes for everything
 so that's a thing that's really
 worthwhile thinking about the number of
methods or things that are like subroutines there
 is uh
 uh about 50,000 which is
 too many if I divide
 these guys into these guys
 I get an interesting number
 uh which is an average of 56 bytes
 per uh
 average of 56 bytes per method
 in the system about 230,000 lines
 of code including the operating system
 and we think it could be a factor of 10
 smaller and one last
 little yeah see this
 is this is an interesting now this is a beer game
because um
 um I I only mentioned this a little bit
 because the one of the things that's fun about Computing
 is you don't have to uh do a lot
 of bullshitting because why not
 just write the the code and do the
 demos so so the interesting thing
 is that this system is 2.8 megabytes
 and 230,000 lines of code
 but you know in
 having Chinese uh lunches
 with the groups one of the one of the interesting things is to
 sit around and think about kind of what is the actual entropy
the code so for those of you
 who are like an easy one that's very
 suggestive if for those of you who are familiar with 3D
graphics and the math of 3D Graphics math of 3D
 Graphics can practically
 be written on a page
 because it's highly repetitive it's
basically uh has to do with being able to do a
 couple of different kinds of Matrix Transformations
 and uh the most
complicated part of it is the rendering
 stuff but if you write down the actual math of it it actually comes
 into this embarrassingly small part
 and almost everything else that you wind up writing in order
 to do this stuff uh is optimizations
 of various kinds so it's an interesting
 question of
 uh what does it actually take to prototype
 things if you could write the direct relationships
 and have those run fast enough to be interesting
 what if you could separate out the oper the
 optimizations in a way that they weren't co-mingled with the
 the actual meaning of the code so U
 one of our one of our uh projects
 that HP is going to fund next year
 is to try and take a whack at uh
 this actual question of how small could
 it actually be if you're able to actually go right
 at the thing and uh you had
 a a nicer architecture than say small talks
 for doing this
 um I guess the last slide
 is
 um I believe so software engineering right now is still
 an oxymoron it just
 isn't here because there's nothing comparable
 to
 uh for instance the Empire State
 Building was put up by
 uh less than uh 3,000 people in
 around 11 months that included
 demolishing the old Walder Historia which is on
 that site so we couldn't organize
 3,000 programmers to do some massive pro
 project in less than a year if we had to
 so there is just nothing if you use the
 word engineering as it's used today in civil engineering there
 just isn't anything comparable in what you know the
kind of engineering we do is more like the Egyptian pharaohs
 did of making large structures by piling
 up Rock and then Plastering it over with
 Limestone so but I believe
 that the Saving Grace for doing this stuff
 even more than the abstraction mechanisms is the ability
 to do late binding because late binding
 has this property that when you're
 just at this part
 of most effort in the in the system you get this horrible
 crash you finally understand
 what you needed to know when you did the system and
 if you're in an late binding system you can actually
 go back and make those changes right now
 and if you're in the way most people do
 software you cannot go back you say well we'll do that in the next
 system and you know what next system never happens
 because that system that took so much time and effort
hat people decide to patch it for the next 35
 years rather than doing this so I believe
 in order to deal with a learning curve in a reasonable
 way the number one thing and it's a thing that
 uh uh I think the world first learned
 from lisp the greatest
 single idea in programming languages was
 Lis for sure because of many many
but one of them is this notion of being able to late bind as
 many things as possible including your meta system
 and then the next thing
works for you is the abstractions
 and uh maybe above all is
to take heed from what the engelbart programmers did which
 is they just really wanted it to be that good
they were willing to work their asses off to make it that
 good so that's a very important part also
 so um time for questions any questions
 about this stuff what we'll do is we'll
 set up uh one microphone here one microphone
 okay up
right mic
 on yes uh
 the question that I had um I think that everything you're saying is
right on the money I do video games and I believe that objects
 should have behaviors to be able to communicate and
I've been writing books about it for a while how
 do you see though changing the entire Paradigm of how everybody
 else thinks to try and teach them and how long would
 that take see
 I I think one of the
 again I love these historical references
 I I just at the risk of telling a
 maybe two one of the most brilliant things ever done on
personal computer was a thing done by Warren Robinette
 called Rocky's boots anybody
 remember Rockies oh okay
 just one of the greatest things ever done on
an Apple two and what it was was a little
 was basically kind of a maze of rooms
 and you started off in a room and you had a couple of simple components
you had a little Thruster and a little sensor and you had
 a couple of and and or Gates and the
 objective was to get to wire up a little robot
 that would find its way out of this room and so if
get the robot to do that then you're in another room and it
 was harder to get out of that room
 and you just kept on doing this and by the time you at the end
 of this thing you were pretty darn good at
 uh digital logic it was just a fantastic
 fun thing and I have an apple too solely
 to be able to run this old software
 it's just great although these days you can get good
 emulators so the um
 a tremendous game that was derived
 from this that turned out to be a failure
 but just because of one slight flaw was called
 robot Odyssey so the idea there it's an adventure
 game you're stranded in this city and
have three robots to help you and you can program them
 and the adventure game is paced a little more
 like football so it's not continuous action
 you can use the robots to probe the next barrier
 you have to get through robots can communicate with
each other you can program the robots so you can make a strategy it's like a football
 play get the robots going and get to the next
 level and uh children
 can learn a lot from uh doing
 those kinds of programming
 um so
 the um the the stuff that we are primarily
 interested in is what we call hard
 fund so we're not as interested in
the game that's arriv
 as we are in the game that the child is
 a co-creator of
 what's going on so like for instance
 a game that we would do in this system you know other
 this system is quite General you can do EverQuest
 in it if you want to but a game that we
 might uh do would be one where the child
 has to create things give them behaviors
and stuff in order to get to the next step of the game and
 interact with other people in various ways so
 I think um if you look
 at that slide that I did about uh what happened
 with the printing press the
 it was Unthinkable in the year 1400
 uh when one person in 100 in Europe could
 read and write and the Vatican Library which is the largest
 library in Europe had 372 books
 and they knew there were 372 books in the Vatican
 library because you can count 372 things
 accurately but
 nobody knows how many books are in the Library of Congress
 right so the the change that happened was qualitative
 nobody expected that most people
 uh would actually learn how to read and write right and
 think in a different way because of this stuff so
 I I so my simple
 version of this stuff is that
 I think two things have to happen we have to
 uh help the children not invent television
 when they start taking over this thing
 because the biggest problem with the inventive skills of children
 is they tend to be trivial so like if you give them a
 piano they'll invent chopsticks on it
 but it took 200 years to develop real keyboard
technique so you have to help the children there but
 you don't want to help them so much that they become
 mired in your ideas
 the idea is to help them enough so that they have a sense
 of taste and threshold and then
 hope that the children will take it on to the the next
 level because I don't think that we can actually
 quite imagine what the next level should be our our Theory when
were here at Park was let's try and guess
 what the next literacy is going to be like and see
something like it and see if the kids can take it the rest of the
 way in some sense that's what I showed you today is
not what I think the next thing is going to be but our guess
 at the best thing we could do for children so that
 they can take it the next level
 it may not be a satisfying answer but that's my
 answer other questions
 yes as we go back in
 as we go back in the history of computing I'm always
astonished that it was the young kids that started it seeing
 photographs of Bill Gates at 16 and so
 on yeah and you're working with kids yeah
 is that environment possible today in 2003
 that some kids in a garage
 will again create our next level I know well this
 there are two myths there one is that Bill Gates had anything to
Computing he had a lot to do
 with the economics of it but I'm not aware
 of any advances that he ever made
um and the other thing is there's a myth about the garage which is the
 favorite American Myth of all times
 and the thing to realize is and this
 is a hard thing that Americans hate
 but like the two Steves in the
garage why were they able to do what they did in the
 garage because of all of the phds at Intel and
 Motorola who understood solid state
 physics it absolutely
 wasn't the way people loveed
 the
 garage thing the stuff that
 has happened happened primarily because of
 phds Park was full of phds
 and we worked with children
 because it was a perfect balance between the two
 things but it was not done by naive
 invention of tinkering things
 together at all because it just doesn't
 just doesn't work that way right
 so it was done by people who had as much knowledge as they could
 possibly put together and tried not
 to remember it most of the time
 but the the garage myth I think is
 uh I think it was true for certain kinds
of invention a long time ago but it certainly hasn't been true since
 silicon became a critical factor
 and since higher level languages became a higher fact
 so the interesting thing is is what the
 uh the children were able to do with real
 knowledge so for instance the Mac f ER
 Mac user interface was actually done by Bruce horn
 and Bruce started with us at Xerox Park when he was
 12 and when he was six years later when
 he was 18 he did the VM
 virtual machine for the Dorado for small
 talk which was a pretty hefty piece of work
 for an 18-year-old but I I still think
 Peter Deutsch's feet of understanding list
because most software people today don't understand lists
 of any age so to have a
16-year-old boy be able to understand it and implement it
 is to me one of the the most interesting things
 ever done by a teenager in Computing
 so other questions
yes um getting back to the kind of
 the technology behind all this stuff um I've noticed that the
 theme seems to be kind of higher and higher levels abstraction and
 US simple things like scripts and sketches to leverage these huge algorithms
 um underneath and so I was wondering ing um
 how you see almost inevitably Artificial Intelligence
coming into this to kind of fill in the gaps even more so things like neural nets for
 pattern recognition and fuz logic to make things more organic and all
 that you know well I think the I mean there's two
 things one is uh one of the things
think we were all hoping for was
 at least uh
 one of the one of the ways we thought computers could
 be different than a book and I still think this is true
 but it didn't happen and it's not not being funded
 now is uh
 um AI tutoring
 because you a book should I mean the computer
 should be the book that helps you learn how to read it
right it can reach out to you in a way that a a regular
 book can't and uh turned out to be
 a hard problem uh
 with some interesting special cases we're done
 but uh no General solution to it
 because uh
I think in certain cases it's worthwhile doing Brute Force
 versions of it like for certain things about physics that
you could spread out over billions of people why not spend
 you know uh a couple of million bucks
 for each little thing but that's been a
 real disappointment on the other hand I think
 that you know SE more pait's dictum
 was uh the question he asked was uh
the computer program the kid kid or should the kid
 program the computer so in our stuff
 the in spite of the fact that we
 abstract the optimizations away
 we don't abstract any of the mystery
 so basically everything is totally
 you know in the sense that math is completely understandable the
that we do is completely understandable there's no
 there's no nothing like an AI ghost
 helping behind the scenes so the children
 are very very anchored in the
cause effect relationships that they're dealing with with and they
 are the ones that do the heuristics like the little so when
 they they will program the feedback routines and they still know what
 it is that they're doing so it's not like the
 uh the invisible machine where or
 uh a much worse program like Sim City
 where it does things and you don't know why it's doing things
 you can't find out what it's doing and
cannot change those things those things are very bad
lead to Superstition
 like the real world
other questions
yes
 so going back to the example
 of the car so I'm
 wondering about um the I don't know how
 advanced the you know constraint solver or relationship
 maintenance uh system is
 um but how often I'm curious
 how often children must have some limit I mean there are
 fundamental we we don't use that at all
 the programming of the car is done just like logo it
 doesn't use any constraints at all right I mean they're
writing they're writing the relationships themselves right
 you can think of them as oneway constraints if you want
 okay so that's and do
 so and and do children ever try
 to get more find more advanced or or establish
advanced relationships that that bump into limits of the
 system sure because the
 you know the the essence of computing is
 nonlinearities whether you want them or not right
are temporal some things
 are batched in such a way that you don't see some of the ones
 you might see in other systems and
 sure and the
 but uh in the curriculum
 stuff that we do we made up you know like
 40 Projects of which
 12 worked out to be kind
 of the ER projects
 that are the first 12 that children generally do
 almost regardless of what their age is from
 10 10 on to even some eth
 graders do about 12
projects establish
 a couple of powerful ideas
 having like the the the three
powerful ideas that the children work with
 directly that are outside of the program pramming domain are
 this notion of increase by
 and that goes in state so that's a first order differential
 equation and if you do that into a variable
that variable and increase by into another one then you get a second
 order differential equation and second order
differential equations Model A lot of interesting
 phenomena so those and as I showed you you can
 use them in data structures as well as out in the physical
 world so you can do sampling like the
 first order thing gives you sampling s syis if you think
 about it a second order guide gives you FM
 synthesis right you have to modulate
that second guide because you have to speed up and slow
 down within the wavelength
 of the sample that you have but that's
 basically what FM is and if you look at
 it from the standpoint of phasers which is the way I happen
 to like to look at things then the entire
synthesis mechanism is just piling phasers on
 phasers and each one one of them is
 uh basically one of these incremental
 guys so so the idea is basically that
 um to take a few simple but powerful ideas
 and go deep on them in within
 these projects uh second one is the feedback
 idea which is a very nice one because it Bridges
 the mechanical and the biological world
 so there's a million feedback besides the gradient
 followings finding lights so feedback is kind of
 a general technique for making progress when
 you don't have complete information then the third one
Randomness and probability
 of being when you don't want to know what else to do you know
something like it's kind of like Monte Carlo there's a
 whole set of heuristics built around that
 if you think about that those are three if you had to
 pick three that Encompass a lot of what
science thinks about the world those three are
 it then of course there are powerful ideas
 from the programming itself like like the notion of a conditional
 the notion of a loop notion
 of a variable those are ideas that the
students haven't really encountered before
 um it's usually quite late
 before we reveal to them that every little
object in the system is a vector
 so if you plop one of those guys into its own
 little thing all of a sudden you can find that you can add
these things to each other so the thing you thought so you can add
 a car to a fire hydr and you
 get the vector sum of it but that isn't
 introduced early so you think about and this is
approach because in math you don't want to
 as aam said you don't want to multiply entities
 unnecessarily so the idea is you try
 and stick to a few simple operative principles
 that have great range that's why we call them powerful
ideas and
 um but the people who
 very very often run into to barriers of many different
 kinds are adults because adults when
 they adult teachers for instance when they learning if they've
 had a little bit of hypercard they try and do what they learned in
 hypercard and it's very difficult for them to
 sit down and just learn a new system as a new system
 they want to learn it as part of some other set of
knowledge they have regardless of whether that knowledge is powerful or not
 so they are the ones whose questions we answer all the kids are
 perfectly happy because from their standpoint
hey're basically playing creating their own toys
 and they're happy to work within any system that is powerful
them
 yes um
 one thing that I get a sense of you working with children um
 as adults we I guess when we get
 to be 20 25 we get very serious in life
 and I get a sense that by by working with children
 you brought play back into life at
 some level and and and that's
 an important part of the whole creative process plus enjoying
 life one of the things that uh I was
 sensing when you showed all this I could very easily see
 these these mirrors each different mirror let's say
one of the mirrors was Art and you you walk through the
 art art mirror and then you have all the different types
and you could you could visually go to different
 uh impressionism different types of art same thing
 with music so I could see very easily this could be
whole kind of knowledge base that you could walk through
 depending upon your level interest and start
 playing with these things in a way and even
because it's so visual you can start connecting
 these things maybe art to music to this and there's
whole connectivity factor that could take place
 that in a way could make for an explosion in creativity because
 we're all kind of focused in a particular Paradigm
 whichever we're in I just like your comments on any well I think that's
 a good articulation of what uh
 the um augmentation of
 human intellect Center was doing at SRI
 right look look at what these guys were doing
 and you can also ask Bill since he was there
 and responsible for a lot of it
 but basically the the idea
 was to try and make connections
 that when we did
 this system one of the things that was
 kind of both amusing and exciting
 was at some point I don't know whether it was you
 I think it was David because uh David
 had done a demo that was one of the greatest