Back to the Future of Software Development (2003)

From Viewpoints Intelligent Archive
Jump to: navigation, search
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