Difference between revisions of "Alan Kay Turing Award Lecture (2004)"

From Viewpoints Intelligent Archive
Jump to: navigation, search
Line 62: Line 62:
 
<subtitle id="0:1:23"> personal computing  let's give a warm welcome</subtitle>
 
<subtitle id="0:1:23"> personal computing  let's give a warm welcome</subtitle>
  
 +
<note for="0:1:47">
 +
<slide for="0:1:47" name="TitleSlide.png"/>
 +
</note>
 
<subtitle id="0:1:47">of</subtitle>
 
<subtitle id="0:1:47">of</subtitle>
  

Revision as of 03:30, 10 December 2017

association for computing Machinery's  touring award lecture
the Turing award  is
ACMs most prestigious technical
award  if you look at past Turing laureates
  it'll read like a who's who of computer
  science the Turing award is
given out  annually to an individual
who has  contributed
has given
contributions of  lasting and major technical importance
  to the field and the
Turing laureate is  invited to
give a talk on whatever
topic  they'd like at any
ACM conference during  the year and we
are privileged to have  this year's
laureate choose oops law as  their venue
so without further ado I'd  like to
introduce dr. Alan Kay the he's  a senior
fellow at Hewlett Packard he's  president
of viewpoints Research  Institute and the
Turing award was given  to him for pioneering
many of the ideas  at the root of contemporary
  object-oriented programming languages  for leading
the team that developed  small talk and four
fundamental compute  contributions to
personal computing  let's give a warm welcome
(time: 0:1:47)
of
course one of the funny things
about  the larger citation was it also
said for  coming up and
helping to come up with  many of the ideas that eventually led to  C++
and Java
and
the reminded me of Tony  whores in
his Turing lecture
which was  quite a bit of which was
about Al Gore  he pointed out that algo is
a great  improvement especially on its successors
o about a year
ago I got asked by Sigma  C to
come and give a talk here which  happened yesterday
about early  experiences
in computing
primarily for  high school and to
some extent for first  year college
and I wasn't of course  expecting
to get this award and I
was  had spent a fair amount of time trying
to think about the high school and  college
situation since I had no
real  experience doing a first course
and I  certainly didn't like what
I found when  I went out and read
books and the AP
  stuff and so
forth but I figured nobody
  wants to hear anybody complain even
if  they're telling the truth for an hour so
  what I decided to do was to see if I  were going to
teach a first course in  high school
or college what would it be  like and that was the talk I gave
  yesterday and I
wound up thinking that
  perhaps a slightly different version
of  this would make a reasonable
Turing  lecture so
(time: 0:3:53)
here it is and first I want
  to start off with a Don quote  he
has lots of them but this is my  favorite one of his beware
the above code  I've only proved it correct
not tried it
his is
the perfect antidote to what  what you might call the academy's
ation  of the field which quite
a bit of which  has been an attempt to use classical
  mathematics to deal
with a new  mathematics that requires a new math
to  help describe it so what
new field  I believe
math simple
statement about  our field is that math wins
basically  every time you can do something
reasonably mathematical what we're  trying to do we
make great advances but  it's
rare that old math wins
because we  have a
new way of dealing with things  our
theorems are not short and they're
  not about infinite things
which is what  classical math is generally about the
  equivalent of our theorems and proofs  are
very very long things about finite
  structures and so
different way of doing about and hence  Dawn's quote
which i think is absolutely
  perfect and because our
(time: 0:5:23)
field is the way  it is everything
we do is done within a  community and nobody
has benefited more  from their community than I
have over  the years and
for the stuff I'm
going to  talk about and show tonight a lot of  people contributed
especially over the  last few weeks putting
together some of  these examples
and these are some of the  people
some of them you notice have gray  hair
  this guy I know is here Dan angles and
  who's the the
actual creator of small
  talk I just wrote the math part and
Dan  was the guy who actually made it work so
  we should give him a round of applause
so
(time: 0:6:20)
I guess the first thing to think  about here is we
have these terms  computer science and software  engineering
I happen to be around
both of these terms were made up al  Perlas made up the term
computer science  absolutely
not implying that we had one  but
as something
to actually aspire to  and he I
think he immediately regretted  it even
in the first few years  afterwards because what happened
was  what some people have sometimes
called  physics Envy basically everybody
who  dabbles in the sciences wants
to be a  physicist because
they deal with the  absolute foundations
of the universe and  they do it with serious
math and serious  and experiments so
physics Envy is  science Envy
is often found when fields  wind
up having science in their name
so  library science
social science
computer  science
interesting physics chemistry  and biology don't
have science in their  name
so I
think there can be a science of  computing
similar to science of bridge  building
and in fact Simon
pointed out  in his book called
the science of  Sciences of the artificial
that you
can  have a science about artifacts like
a  science of bridge building build a
  bridge by any means whatsoever stress
it  in various ways analyze it come up with
a theory of build bridge building build  some more bridges
and so forth and in  many ways physics has
found itself  becoming a science
of the artificial  because a lot of physics
is actually all  about the science of
building  accelerators and detectors and
trying to  figure out just exactly what
it is that  those needle swings actually
mean  software
engineering actually was a term  that came about for
a conference like
in  68 and garmisch Germany
and again the  people who went to that conference  except for
a few did not think there was  anything remotely like a
software  engineering at that time and
in fact the  slide shows kind
of a from
the depths to  something that we
might call engineering  today of the difference
between a  pyramid made out of bricks with
no  architecture just a garbage dump with
a  nice limestone cover
made by slaves  sounds like something
that happens a few  miles south of here actually
I can just I can just imagine some
  veronik architect
at some conference  announcing their
new pyramid
on the  other side of the scale we have one of  my
favorite artifacts the Empire State
  Building which is well documented and I  urge every
single one of you who has  aspirations to be an engineer
to read  the
three or four excellent recent books  about
the Empire State Building one of  them is the actual log
by the foreman a  basically
the Empire State Building was  constructed
from start to finish that is
  from carrying down the buildings that  were there
to occupancy in less than 11  months
by less than 3,000 people
  the flooring itself went
up at the rate  of almost two stories a day and the
  steel was still warm about a hundred
  degrees warm from the steel mills in  Pittsburgh
where it came from this is  one of the greatest organized
projects  and the Starrett brothers who did the  Empire State
Building knew they were  making a statement because
the  Depression had just happened everything
was set up to do this thing they had  already done a couple
of skyscrapers and  they had a feeling this might be the  last skyscraper
for a while and so they  decided to
to make it an expression of
what it meant to be able to make a  skyscraper so it's just the
greatest  thing but I think if we look at
our own  field we cannot find any instance of  3,000
people being put together to
something incredible in less than 11  months and have it
work so whatever it  is that we've got
in engineering it  might be closer to Egyptian
or  Babylonian engineering
now somewhere
in
  the middle things with archers
appearing an actual architecture  appeared
interesting thing that  happened some
years before the Gothic  cathedrals was the Pantheon
in Rome  which has this clear span
the dome clear  span of fourteen
stories made out of the  best reinforced
ever known  but two thousand
years ago that was  amazing be
her been in there it looks  like it was made yesterday so
I think  the best practice that we have right
now  in our field as
far as engineering is a  little bit like a Gothic cathedral
  sometimes our projects take a hundred
  years but we
can aspire to build rather
  large structures by the standards
of the  Middle Ages out of
much much less  material than the Egyptians
needed so
  little progress is being made but I
  think that whenever we say computer
  science or software engineering the
specially whenever we think we're  teaching it the
worst thing we could  ever do is to pretend to the students
  that we know what it is because the
  students are
going to be the only ones  that are going to save us
so we should  teach the students
what I was taught  when I was in graduate school in the
sixties and that is it isn't done yet  it's not
even close to done you have to  understand
what the actual scope of  computing is going
to be and you have to  help us invent it  and
in fact in those years
in the ARPA  community the PhDs were given out for
actual advances in the state of the art  as
opposed for as opposed to  commentaries
and small additions to the  state
of the art so it's a very  different time back then but it's a lot  simpler
(time: 0:13:32)
so
I could
give a whole talk  maybe not terribly
successfully about  motivations in
the end everything we do  is
being subject to other people's
interface  I feel particularly
in education but I  thought I'd show
a much simpler model
than we use but it's only a  two-dimensional model and
just have us  all ponder
it for a bit so one dimension
  is in the reasoning and change area
is  the incredible
disparity between the  percentage
of human beings who are  basically instrumental reasoner's
and  those who are basically interested
in  ideas so this has been studied
in a  variety of different ways and it seems  like
the the normal us
normal human  beings are basically instrumental reason
isn't an instrumental reason er as a  person who judges
any new tool or idea  by
how well that tular idea contributes  to his
or her current goal
so most of we're very goal-oriented  we're working
on things somebody comes  up with something new and
our ability
to  accept it or reject it if we're  instrumental
reasoner's depends on  whether we can see it contributing to  our current
goal so the other 5% are  primarily
motivated by ideas so when a  new idea
comes along that appeals to  them they will transform
themselves and  their goals in the presence
of that idea  needless to say the
5% are much easier  to teach
particular if you're trying to  teach
them things that were inventions  rather than things
that are built into  human beings so if you're trying to  teach
something really weird like  science it is not an
easy thing because  you're dealing with a
set of very  practical
and pragmatic kinds of people  so now
the other dimension here is
between basically about reward
inner  motivated versus outer motivated
about  85 percent of us are motivated
by things  outside of
ourselves about 15 percent  motivated by things
inside ourselves and
  so that's kind of interesting and
what  we have
here if we look at this is we  have a kind of an interesting category
  of people who are in term ohta vated and
  interested in ideas I'll leave it for  you to
figure out who those people are  an interesting
category number two is  people who are out are
motivated and  interested in ideas the
people who are  in are motivated and not interested
in  ideas tend to be dangerous and
caused a  lot of trouble a
lot
of corporate  executives
up in there
but basically
our  field is a
field that's the next great  500
year idea after the printing press  and so
we should all be properly  concerned with something quite
different  that
is we have to be concerned with how  the entire
bulk of humanity is going
to  respond and deal with the things that we
  do so it's extremely interesting to
  consider the 80% here
that our outer  moat evaded and basically
practical and  a fair
amount is known about this 80  percent
in the past I've used the term  voting
but
(time: 0:17:35)
you
know this group does not  go to the polls to vote on
the things  they believe in it takes
them a long  time to change what they believe in but  the
way they do it is kind of  interesting and it's
a kind of a  consensus
that is gradual
it's a seeping  kind of consensus
and it has many of the  same characteristics
as a model of a  forest fire
so I have a little particle
  system here and the
percentage of
  trees - the percentage of clearing
here  is just 50/50 so
if I say okay let's see  if if we can spread the fire
throughout  the forest here with a 50%
so I didn't  initialize that
let's try again  so
here's 50%
so surprising that he  doesn't try
let's try go
up to 50 60 % let's say
you  can think of the 60% as
people who are  almost ready to agree people
are  essentially there
so 10% more
it spreads better
try  another one
each time the placement
random so you got a slightly different  behavior
yeah so that's about what you get
babe
  rings itself out so if we go up to like
  66 percent or so 67 66
yeah
so in these contagion models
you  can think of this as spreading means if  you will
roughly two-thirds of
this 80%  has to pretty
much be there before you  can get them
to agree and do something  because they just won't
do it unless  everybody else is doing it
and this  model works really great
for even weird  things like wearing baseball
caps  backwards and girls
showing their belly  buttons
if you trace the girls showing  their belly buttons
over the years  you'll see how gradual
this change was  until suddenly it was
okay and the thing  is if it's okay now
was always okay so  what's the problem well
the problem was  that this group generally
didn't think  it was okay it wasn't okay until about  two-thirds
of them thought it was okay  and then all of a sudden it became okay  so
you're trying to reform education
or  you're trying to get a group of
to understand real object-oriented  programming or
any other new kind of  thing that comes along
you get this  incredible disparity
which in computing  there
are many many instances of roughly
  30-year lags from when
an idea was  really proved out to
when it gets  generally accepted but nobody knows
whether this thirty years actually means  anything or
not but it's it's  interesting to look at the
case of UNIX  and all
of its different adventures
over  the years and finally
being accepted  even though it has
a basically late 60s  architecture
which is better than the  architecture of some of
the operating  systems that are around
  but still it's a fairly old architecture
  and so I'm desperately
trying to hold on  to life until
at least 2007 or
eight  because some quite a bit of
the work at  Parc peaked 30 years ago
and I'm curious to see whether those  ideas will
actually be accepted
(time: 0:22:05)
however  if you look at an extreme case
Doug  Engelbart who had some of the best
ideas  ever I think he was on a different plane
  his ideas are now
getting closer and  closer to being 40
years old in their  articulate
expression and most people  still don't understand what
it was that  he was trying to do I


(time: 0:22:29)
think an ancillary
  problem is that
our field and
people in general take great delight in  complexity
seems
like you go to schools
  is remarkable
how much work they make  the poor kids do
when if they taught the  math
better and differently the kids  would have to do
much less work but in  fact I
think people the light in  complexity
and think that putting  immense
amounts of hard work in even if  there's an easier
way is actually  there's
something morally good about it  and
so I think for our field
one of the  hardest things is the delight and
  complexity because of the many levels of
  structure in computing and
the  difficulty of going from one level
to  another pretty much everyone
who gets  interested in computing and a successful
  Abbot is a person who has mastered  staggering
amounts of complexity now
believe that most of those complexity is  absolutely
unnecessary and I believe it  can be proved that
it's unnecessary  so
(time: 0:23:53)
what we really want is
to find the  joy of simplicity a lot of
this talk is  almost a living cliche
in the sense that
  very little of what I'm going to say  here
is stuff that you don't already  know
but when I started thinking about  what should
I say at this talk  simplicity just kept on coming back
the  all the projects
I've been involved in  that have been successful have been
  successful because the people who worked
  in them put quite
a bit of effort into  keeping things to be
simple and this  community of ARPA
(time: 0:24:35)
and then Xerox PARC  was
outstanding at being
simple and
this  is a very very confident
group of people
  but surprisingly I
won't use the word  modest because I don't think
anybody  would recognize that word applied
to  these people but I would say we
very  very respectful of these grand
ideas  they are trying to do Butler
Lampson  here was
always pounding for simplicity
  Chuck Thacker we
did the alto and just  three months was
a master of simplicity  dan angles master
of simplicity so and
  Metcalf and Boggs
that calf tells a  great great
stories about how he didn't  actually
how many things he'd actually  didn't understand and
it was incredibly  important that he
of those things else he never would have  been able to
invent the ethernet very
Starkweather who did the laser printer  first
laser printer was a page a second  500
pixels to the inch faster
than most  laser printers today
was about  three-quarters made with
got from Edmunds  typic hobby
catalog because
they were  cheap so he could get many
of them and  try them out and so forth
so this
this  particular
way of looking at things  which was basically
Hayward basically  the this
group said we're just nowhere  near as smart as IBM
claims to be  they're always
announcing some new  complicated network architecture
that we  can't see how to make it work and
so  we'll just stick to our old full
duplex  ideas and retransmission and
put a few  other things in there and it
may not  work as well as what IBM claims it's  going to do
but it's probably gonna work  and
funny thing is the network's we use  today are those
terribly designed
  unbelievably inefficient stochastic
  networks that are
far from perfect but  what's great is that they
eventually get  that packet through perfectly you
just  have to be willing to wait so
(time: 0:27:14)
the other  thing that this group
was really good at  was what I call
a different kind of  simplicity
so it's it's hard to claim  that Maxwell's
equations here is simple  because
they're all that work you have  to do
to understand vectors and curl
and  divergence and gradient but
hing about it is once you've done that  work it shrinks
down to something that's  just a simple eyeful
the Constitution
the United States is one of my favorite  systems design
think of it millions
and  millions of mutually incompatible parts
  running without completely breaking for  more
than 200 years pretty amazing
can hold it in your hand the reason you  can hold it in your
hand is there a wise  not to put any laws in it
so it was not  a law based thing it's not a case
based  thing it was a principle based thing  was a kernel
so these
are the kinds of  things that appeal to me greatly
over  the years and
I think trying to give  beginners
at computing a taste for
the  power of the particular kind of  simplicity
that works so well is what we  should do
(time: 0:28:35)
now the other thing I've  noticed in
talking with younger people
  and teaching a course upper
division  course UCLA once a year and
that is that  the it's not so much that the
juniors  and seniors don't
know that much they  actually don't know
that much for being  close
to graduating from college but the  thing that is the
stressing about them  is that the
things that they do know  they know very badly as
they know them  in ways that are almost
  counterproductive for their thinking
and  so I think in a first course
at anything  you have a real chance
to not just teach
  the one subject but in the first
you can actually touch on a lot of  subjects so
for instance I think math  and science should always be
taught  together in the beginning they
came  about that way one is a language
one is  a process I think
systems and computing  should be taught together
I think the  four of them should be taught together
  there arts we should teach you art
and  engineering and why
not throw in a  little bit about how these unusual
ways  of looking at the world have affected
  civilization I think the other
thing  that is so critical and
so absent in  most of our undergraduate computer
  science curricula is the failure to
  think what we're doing as
a kind of  literacy literacy
is something that  comes up about when
you have first ideas  that are worthwhile talking about you
  have a way of writing down those ideas  and discussing
them that gives  literature and literacy is
the ability  to deal with both the spoken
and the  written forms of these
ideas so when we  teach an English class our first
English  class in college we're not aiming
class at people who are going to become  professional writers
when they graduate  four years later
we actually think of  the impact
of the printing press and the  new
rhetorics and new ways of arguing  that came with a printing
press as  something that is
larger than
becoming a  professional reader or writer I
think  the same thing is true of computing
  fifty years from now this will not be
  controversial so right now it's thought
  of as even in mighty Stanford with
its  great endowment as basically vocational  training
in Java and it's primarily  thought
of as teaching kids programming
  and it's absolutely important
to learn  how to program but
computer science and  software engineering
are not the same as  programming any
more than building  Chartres Cathedral is the same as Brick  Lane
you have to understand one
the other but they're very different I  think this
is absolutely critical  because the picture on this little
slide  here is Konrad Lorenz
out swimming in  the pond with his ducks following
  remember of Lorentz
found that whatever  moved
near a duckling during one little  critical period
of a few hours was taken  thereafter
by that duckling to be its  mother and
it would follow even into  adulthood that that
person and rents
found that they would follow him even  more happily if he jumped
into the water  so there he is so
I think whenever we're  introducing somebody to something we
  have to realize that we are going to be  a con
if we're successful we're going to  be a kind of Konrad Lorenz and
we should  take great care to
what we're going to  imprint them on but we don't want to  imprint
them on for God's sakes  his data structures and
algorithms that  was a
great idea in the 50s and
you had  to understand it and it's still useful
  today for optimization and other
of things but it is not the center of  the field
for a long time  and what's
worse about it it doesn't  scale those
very little systems aspect  in way
the data structures and  algorithms are taught and so
I believe  that we have to do
is give the students  a real taste what
the whole deal is and  so they have to
start thinking in  systems ways thinking
in math and  alkaway scientific ways as
we go along  this is a tall order
obviously now we  could all remember
our Conrad Lorentz  and
mine
happened after I'd been a  programmer for five years
(time: 0:33:38)
a journeyman  programmer putting myself through
school  went to graduate school and
was given  Ivan
Sutherlands thesis by Dave Evans  and
Dave said read it
then come back and  talk with me about it
  and it was big thick
thing and but I saw  that his thesis
advisor was a guy by the  name of Claude e Shannon
and I'd heard  of Shannon I thought well
boy if Shannon  signed this thing maybe I should read it
  and I discovered that it
was the most  amazing thing that I
had ever heard of  being done with a computer
up to that  point and
just show
you a little bit of  the idea
of it so this this
which is about the size of this  auditorium
had only one guy on it from 3  o'clock
the morning you know as he just sketched  in something
there then told those edges  to become usually
perpendicular and  sketchpad figured out how to do that for  him
first system to have a clipping
window  are you actually drawing on this huge
  virtual sheet of paper Danny
draw  quickly point to these two
guys and say  okay become parallel figures
out how to  do that now
he's saying be collinear
to  lay yourself over
these lines and of  course
this display on this machine only  plotted points
about half the capacity  of this machine
I'm about here over to  the air it
was just to put these little  dots up on the screen and pretend
it was  a line drawing display
now he's got a  hole in the flange
okay
and he wants to  make a rivet
got some
more ink  notice that the two-handed user  interface
as all user interfaces should  be
put
that other hand is for point
he center of the cross piece there to  get the center
of the arc and again  let's
do the mutually perpendicular  trick
that drags the center guys which  drags the
art guys we got a nice little  symmetric rivet
and he could tell it to  be
in some ratio the
two sides of the  vertical part
of the rivet here he's  just showing it us that will do another  solution
and
now he's going to go
back  to the original form and
show us one  other interesting thing
which
is he can  make instances of this guy
they gets
a instance of the rivet here I  can move it around
and see the success  of sketchpad
led to a desire for a  better looking displays
actually
those  twinkling is they
discovered right away  that you got seasick unless
they  randomly plotted the dots so
mething's being done in there they're  actually sorting half
the memory of the  machine to keep the dot display random
  so it wouldn't swim around much more  than
it it is here
he's
got four  instances now and he says whoops I
  forgot about the cross piece so it goes  to the master
which we would call a  class makes
the cross pieces transparent  and
we see the instances all feel that
so now he
's going to
take this thing that  he just made and make
it into a master  so the new construction
is a master and  now he can get some instances of this
  flange here so the
the
range of  sketchpad was surprising so
by the end  of 1962 he
could not only do stuff like  this but
he decided okay I need
letters  and numbers so he
letters and numbers  were actually made out of the sketchpad
  stuff directly by drawing them in so
f the captions on all of his drawings  and his thesis
were made by the system  as well and
then he realized oh yeah I  can actually do a bridge
because the  bridge actually acts a
little bit like a  very stiff set of Springs and
I can tell  sketchpad
to try and keep these
guys  constant when something is trying to  force
them to move and I can measure the
  disparity the strain
on each one of  these guys and I actually can show
those labels on all of these guys and I  get a simulation
of a bridge without  sketchpad
ever having heard about a  bridge and he realized
oh I can do that  with EMF also I can make
circuits and  the constraints will
actually drive all  of these simulations so
in my career I  think
what I've been doing for the last  forty years is
trying to get the next  version of sketch pad
out because if you  think about what this
thing is this is  kind of what we want we
want something  in which anything that we are
interested  in especially
dynamic things that were  interested in we
can simply draw them in  there
put in the relationships that we  understand
piece by piece and have the  system synthesize all
this into a  dynamic simulation of astounding
range  so it's just beautiful
if they're I  don't know whether our field
Newton  yeah I
knew then
I think it would have  to be ivan sutherland
because the where
the field was before I even came on the  scene and after it was fantastic
so I  want to ask Ivan
how could you possibly  in one
year in machine code
on this big
  but rather slow machine with
no graphics  display on it have done
the first  graphics system the
first  object-oriented software system and the
  first dynamic problem-solving system
and  I even looked at me said well
I didn't  know it was hard
so the period by
way this thesis is available from MIT  should
get it and read it my favorite  line
from it is he says that his hope  that future work will far surpass this
  effort
so
that was my first day
in graduate  school
(time: 0:41:14)
and second day I found out about
hat I was actually in the middle of the  ARPA community which I had no
  realization about and look
lighter was
  not the funder in 1966 it
was Bob Taylor  and they
were just starting to talk  about doing what Licklider called the
  intergalactic Network and the reason he  called it
that is he didn't want people  to design a small network
those original  theory was wherever
electricity plug on the face of the  earth there should be
can plug into this into like  intergalactic
network that the thing had
  the scale at least up to 500 million
to  a billion users so
people were starting  to think about that
in a couple of days  later I got
a tape and some
documents  about a language called Simula from  Norway
by Dahl
here and Nygaard and
it's  very hard to understand and after a lot  of
work and looking at the listings we  realize well this is a programming
  language that is dealing with the same  kind
of structures as sketchpad by
the  way I should mention the you know the  name the
term object predates
  object-oriented programming object
in  the early 60s was a general term
was used to describe compound data  structures especially
if they had  pointers in them there was none
paraphernalia of what we think about as  object native
programming today object  was just a general
term you'll find it  lots of old papers
and the
realization  that you could write procedures
for  dealing with
at sketchpad was doing was very  liberating because
even though it was  ugly compared
to what sketch patters  gets bad was just unbelievably elegant
but nobody knew how to scale that's  Oliver
  in fact that problem has not been solved
  today yet but by
going to the less  elegant
way of being able to write code
  against these structures we
all got  excited about the possibilities of being  able to do
in a system like Simula the
kinds of graphic and interaction  manipulation and
my background coming  into this was
in molecular biology and
  mathematics and
particularly sketchpad  just hit me
right here as one
of these  kernels and the
thing I suddenly  realized was that
if you were  sufficiently
abstract if you ignored  what
these systems were trying to do
if  you just thought of
them as being cheap
versions of all these little computers  on the ARPANET
you could
solve the same  scaling problem in software
then you  could actually subsume
everything in  computing with just one kind of idea  which
is essentially a little software  computer
not a procedure not a data
  structure but a whole computer a lot of  the development
of OOP was
software  engineering after that
interesting things to me in the  development of
who the Elven of  practical as it wound up in spark
was  very similar to
what happened in Lisp  earlier which is boy
we've got this  incredibly elegant wonderful
thing too  bad it runs so slow
but what if we could  make it run
faster in a way that doesn't  get in the users
way then we would have  something really really nice and some
the best actually I just talked the guy  Steele
who is one of the people who
helped make Lisp into something really  special
to use as well as to contemplate
  and so the image here was
WOW it's all  about mess  the
reasons about messages are not about  objects
so much is that the messages are  the abstractions
we spend
time in our field worrying about what  the objects are
so
(time: 0:45:53)
I need to move along a
bazillion  prejudices  I
love parallelism because
I learned how to program plug  boards before
programming a computer and  the beauty
about those things was you  could make a kind
of a machine it was  highly parallel
I loved
hardware like  the B 5000 all of our
today that we use came out of the  hardware of
that machine never
saw fit  to learn anything about
software make  our
lives much simpler  I love
Lisp everybody should understand
  it the giass was
programming language ever done it could  hardly do anything but
it did it  beautifully
so
it's an interesting  challenge to take something of this  level
of beauty and try to scale it you  combine these
two together you got the  original logo that's how logo came
about  attempt to take Lisp and
have something  prettier especially for kids
  I love APL all
of these all of these  systems I think can be done in
a  different way but basically
the love of  these things is because these guys
got  to some special kernel I love what  Engelbart
did a lot of spreadsheets I  loved HyperCard
suppose you could  amalgamate
all these wonderful things  into
a simple system that regular people  can
(time: 0:47:32)
use and now let's talk about the
the  why of
what we're doing why do people
do  things well Frank Oppenheimer in the
  Exploratorium
made 500 exhibits to teach  just one idea the world
is not as it  seems they asked him
why and he said  well every child is different we
have  2,000 children in here bumping against  500
different exhibits there's a good  chance that a child
will find the  exhibit that speaks
to them  clearly about this first important
about science  so he
said 500 of them and I think if  you're going to teach a course in this
  you need
you need
20 to 30 projects or
  so for each area to give the
children  the choice
I
won't
tell you what  quadrant they're in
so
(time: 0:48:59)
I think the  another important
idea is scratch  programming because
so much of computing  education
today is learning the library  and
I don't think beginners should ever  be shown the library
the programming  language can't do interesting
things  without the library then what is it
so I  think
it should be like a Model T Model  T has
about 350 parts and you could
take  it apart over a weekend and put it back  together
but it was a completely real  automobile
so a lot of what we're gonna
(time: 0:49:38)
  look at here in the next few minutes are
  sort of first-order ideas that might
say  some important things now a
good thing  is that many people have
written about  the
fun the beauty the romance what's  important
and about looking ahead in  computing
there's not just one book out  there
and there's less than 1% of
books about computing or worthwhile  reading
but it's not one book there are  dozens
of them and so there's plenty of  ideas
for how to do this stuff
(time: 0:50:17)
  the user interface had better not be
  like Microsoft's
caricature of the stuff
  that was done at Parc which is I always
have the feeling when I'm using Windows  that I'm
dealing with a somewhat  dangerous nuclear
reactor control panel
  and that I haven't had enough training
  on it whereas what I want is something  like
pencil and paper where although  there are things I can learn
about  pencil and paper what I what is most  important
about them is what I can do  without knowing much so
I can find out  the pencil and paper is fun
(time: 0:50:56)
and I want  an environment that
deals with a
set of  ideas in
a way that
gets me to lose  myself in
the ideas so my chick sandy hi
  here was one of our advisors had this  nice
model about this
balance between  our
abilities and the challenges and
he  said well if the challenges are higher
  than our abilities then we start getting  anxious
especially
if we're climbing up  a rock face
we're giving a talk in front  of an audience
  but if our abilities are greater
than  the challenge we start getting bored
so  these are the two main states that  humans
are in either anxious or bored
hard-to-get-to
is this flow state where  everything
is just working and
we like  to widen this flow State for a beginners
  so for example
one of the things we  could do to deal
with areas that where  the challenge is greater than
our  abilities is to increase the safety
  so having undo an environment
nice  most
programming environments don't have  much of an undo
and on the other hand  what because we get bored
so easily we  want something to help us pay attention
  better and a good user interface
basically deals with these things it  provides more safety
than most computer  people think an
ordinary person needs  and it provides more ways of attracting
  their attention than most of us
think  people need
so I just
want to show you a
(time: 0:52:56)

Alan is drawing a car, explain the viewer and some tiles.

  give you a little bit of a flavor about
  how children start
and then show you  where I think things are
actually going  to go so the work
we do with children we
want
them to have an experience that is
  basically thinking
about ideas making  pictures of
them so for example take
  something that most kids would like to  do for
one reason or another which is to
learn
how to drive their parents car
we  get them to design a car and
most kids
  boys and girls put on big off-road
tires  like this because
part of the deal is  feeling powerless and
wanting to feel  empowered this is something that video
  game manufacturers really understand
why  are those games so violent
and so
we have a little graphic object  here and
do things


to it we can open it  up and
see


a viewer of it I
people in the back can't see very well  so I'm looking
at a property here called  the heading of the thing and I'm gonna  count
up the number starts at zero and  as
I count it up you can see the little  car turning I've
got a behavioral  property here forward
I've got a
another  one called turn by and so
if I just drag  out the
lines
of script here and turn on  the
clock
then I've got my little car  going there
are many different kinds of  things
I can do with it  for the kids they want to learn a little
  bit about
driving the car so the first  experiment is
what happens if I click  this number it says turn by
now turn by  zero
it goes straight turn by negative
  I'll call this guy car keep
it straight  here that's a little bit like
kissing  your sister so because real
cars use  wheels so I want to make a wheel here
just draw
one
it's got the same user
  interface as the other one
is a system which is only one kind of  object
so it's exactly the opposite
of  the systems that you're used to that  have zillions
and zillions of classes  and subclasses and and
so forth and we  can talk a little
bit about it about  this in the question and answer system  if you
would like and so here's this  wheel it's
got a heading also and if
pick up the name of that heading and  just drag it over to the script
here so  it says car turned
by wheels heading now  I can just turn
the car around now  what's
important for ten-year olds that  they is that
they learn what a variable  is for the rest of their life from this  one shot
that's good and actually I  believe this
would be good for high  school and college kids too because  there's
quite a bit of evidence that  they they don't ever learn
much about  what a variable actually
is or does ways  of
thinking about it so there are many  different kinds of things here that
can  be done so having
(time: 0:56:50)

Open a viewer on the scriptor and rotate them.

one kind of object  that's kind of weird I
mean here's a a
  photograph which we can see has
the same  kind of feel here the
script is one of  these guys what if I open up its viewer
got
one called scripture here and I see
y'all look really the same kind of thing  so what
if I make a script on the script  here
and get
so I think about the implications of  this
means that wherever I go out
for  instance what if I go over here well


(time: 0:57:32)

Open a viewer on the pane in viewer and rotate them.

the  viewers got one of those things and so
  does this category so
and
(time: 0:57:41)

Open a viewer on the world, and show different panes.

this whole  outside
thing that I'm giving
the talk  in terms of is also
one of these things  so I look at its viewer the viewer of  the world
and
well it's got the same  kinds
of things here we looked at the  various traits
here this is like what  Nathaniel Charlie was talking about
  earlier this notion of
sideways  composition also goes back to park
back  back then in the 70s was called aspects
  but that word means something somewhat  different
now so we
various things you can see oh the thing  is a collection
it's got stuff about
its  colors and borders and other
kinds of  things here and what
here's one that  says as object now an
inheritance system  the object would be way up at
the end of  the inheritance system but in a sideways  composition
object system it's going to  be
one of the traits we're looking at  it's a view of the object
as an object  and we tried to think
about what would  be an interesting way of showing
this  idea of meta so
here's one where I'm  what I'm going to do is suppress all
the costumes on all the objects and I  think this will help you
see that  everything is sort of abstractly the  same
(time: 0:59:5)

Choose world useBluePrintCanvas: to change the look.

here ok so
basically I just turned  off the costume mechanism
now I have  this interesting problem of getting back
but that's why I left
my mouse here so  this is the guy who did it I'm gonna  click the
little carrot here which I  know is there
to make it false and then  we're gonna hit the
exclamation point to  turn everything back on again
you see  I'm talking about them basically
meta is  safe if you
can allow fence after fence  after fence after fence
now there are  many many
examples which have had
longer talk I'd show you but I wanted to  show you the last
set of ideas here so  if
we could just go to the video to  please in the
back ok
so return to  sketch pad here
and if we look at a more
  future oriented environment
we see that  we now have the
ability of doing much  more complicated
ways of thinking of  environments so
(time: 1:00:17)

Switch to a Croquet Image.

here I am in a 3d
environment that we built called croquet  by
the way the if your interests and the  kids stuff that's found on the website
  squeak LAN org and
this croquet  environment
this is all free software  croquet environment
is found on open  croquet org
and
so again this is a  completely
constructible environment  here but
what we did was
to do a
kind of  an interesting analogy to webpages
  so each 3d
world here is like a web page  and these portals are like a hyper
link  to them
so I'm just going to pop Alice  to enter this
guy here
I'm just going to  do a 360
this
is a Mars environment all
of these  environments are buildable
I'm just  going to show
one last thing so
I can end on time I
  kind of like bridges as an analogy here
  so we
have a bridge structure
and
I want  to show you what the kids scripting
  environment looks like for doing
bridge so the first thing we want to  look at is
the little script for Masse's  basically
what we have here is F equals  MA
acceleration is
the force divided by  the mass the velocity is
increasing by  the acceleration and
the location
of all  the little elements on here
is going to  increase by the velocity and
I'm going  to turn on the the
force here
to work
and say okay let's do do that
so this  bridge structures
feeling gravity
and  you can see it coming into equilibrium
  could have made it stiffer
but let's  look at the springs the
springs are  fairly stiff
K gets - 1400
here and so
what I'm going to what I'm going to do  here is to make
it - 400 tell
it to go  ahead that's going to let
it sag quite a  bit more then
we all remember the Tacoma  Narrows Bridge film
so of course we have  to have
some wind and
basically what I'm  going to do here
is turn on a variable
  gusting wind that's completely described  by
this script here and
okay so now it's  going to do
some Tacoma Narrows stuff
I need sound I noticed the
sound wasn't  working thank
you
let's take a look at  our
bridge
and you know it's funny when you
look at  a model of steel if
you remember that  Tacoma Narrows Bridge movie
it was  really like the bridge was made out of
  fabric of some kind and this has this
kind of same aspect and that gave us an  interesting idea here
so
I think a good way to end this talk  is just to
say that if
we can't get kids  interested in the romance why
this is  unbelievably beautiful new
art form then
  we're not living up
to what our duty is  of enjoying the
stuff ourselves we have  to reach deeply inside of
ourselves to  remember what it was that first got
us  interested in this wonderful new thing
  remember that it hasn't
even started yet  and it's
our duty to help the children  as young as
possible try and do a better  job of it than we have
thank you very  much
Thank You Alan
for a fantastic talk and  we
have a token of our affection here
as  well that concludes
our Turing
Award  lecture and you're welcome now
to go
get  dinner and
then afterwards at 8 o'clock  we'll
be beginning the last
thing on  this evenings agenda
the tenth  anniversary reunion