Alan Kay Turing Award Lecture (2004)
From Viewpoints Intelligent Archive
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