Alan Kay Turing Award Lecture (2004)

From Viewpoints Intelligent Archive
Revision as of 03:30, 10 December 2017 by Ohshima (talk | contribs)
Jump to navigation Jump to search

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