Extracting Energy from the Turing Tarpit (2012)

From Viewpoints Intelligent Archive
Jump to: navigation, search
about
two minutes to set this up
okay  now is it I
love that we are the
testers  for these microphones so I'd like
the AV people to turn off the video  there take
take me about one minute to
  set things up here
because this is  actually in the
nature of a pep talk  and
it's an optimistic
pep talk about
  about software and it's based
on the  work of many people
here I should  mention that
many of my heroes are
in  this room and not just the people
who  got the Turing Awards but some
colleagues I've worked with over the  years are
my heroes I think
we wind up
  making Ecology's when we're
trying to do things this is sometimes  been
been mentioned and these
ecologies  are critical
because they actually  require a wide variety
of different  talents I've always felt that
Turing  exemplified
a wide variety of talents
  inside himself just pretty darn amazing
  I
probably forgot something but okay  let's let's
start here
so this pep
talk  is about the Turing tarpit
and what we  might do with it and about
it and I
don't know where the I was a big fan of  L perlis
as a fantastic guy
who was the  first Turing Award winner and early
he said beware of the Turing tarpit  where ever
  as possible but nothing is easy and
what's interesting about he was talking  about programming languages
but in fact  this is true the computer itself
that's  the problem it's got all these
wonderful  degrees of freedom and we
glorify in those because that's what  makes it the
most interesting machine  that anybody has ever invented
and of  course the the
problem here is  oops and
fallen and perish now I did
a  little research on Tar Pits and
I could
  not find anywhere that
any humans were  ever found in
a tar pit that were not  put there specifically
as a ritual  burial so
it seems like humans are a lot  smarter than sloths
sometimes you never  can
tell but in fact it
humans were pretty good at avoiding the  tar pit but
we created a different kind  we realized
oh there's there are all  these hydrocarbons
and fossil fuels and  we wind up with this and
oh this and one  of the slums in
Rio de Janeiro my two  favorite pictures
of what I think of as  software today
and
the problem is we  can't see them we can only see 30
or 40  lines of code at a time and there's
this  enormous festering whatever
it is and
so  this goes from loops to a yikes
the tendency we
country is to beat everything to death  with the club and
what what happens is  the sub goals
become the goals so at  some point just building
refineries  become the goals we're
really what we  wanted is energy and
it happens that 67%
of fossil fuels are burnt to make  electricity and
well if we want  electricity there are other
ways of  doing it for instance photosynthesis is
  pretty nice I used to be a biologist
and  what happens
is through a beautiful  series
of chemical reactions and some  physical pathways
it's pretty darn  efficient at getting electrons
and  electrons or what we want so
we get a  yay on that and there
are a lot of  organisms that do this and
the ones that  don't feed on the ones that do
and it  happens that the metabolism
basal  metabolism in all living
cells is  somewhat similar and it's looking
from the energetic standpoint it's  really about just transferring electrons
  around and
so there are a lot of  electrons there and in fact recently it
  was discovered that many bacteria
extend  microtubules between
each other not for  the purposes of sex but
for the purpose  of exchanging electrons
that incredible  so
they can get a kind of a feeding from
  each other they share it's a socialized  electrons
and because
there are so many  of these there Adam
favorite engineers who's also a  biologist
says hey just stick
things into the ground anywhere on the  earth including
the Sahara Desert and  you've got a fuel cell
made out of  living microbes that are just
happened  to be there by the billions and  trillions and
so in fact you can pretty  much any
bucket of dirt that you get  outside you can run in a 60 watt
bulb  just by having
the right kinds of things  that you stick in there it doesn't  require any
additional power  this is kind of a metaphor
for I think  what we should be thinking
software we have to think about what it  is that we actually want
to do and I  don't think our main goal is writing  millions
of lines of code what we want  it is for to
do something so
we've heard  this in various ways today
this idea of let's try a science and  math
let's not beat it to death and
idea  number two here is this
distinction  between tactics and strategies when
we're building things and tactical stuff  is usually pretty
incremental and  somewhat similar to where you were
so  bricks lead to piles
and stacks and if  you scale them up
you get pyramids and  walls and they
have a certain simplicity  to them anybody can learn how
to be a  bricklayer and so this has
a lot going  for it it's very transferable and so
  forth but it has some limitations and so
  there's a strategic direction we could  go which
is before we build things out  of the materials
let's think of things  we can make out of the materials that
  will be new materials so in
architecture  let's make some arches that's
where the  term came from and these things are
  incredibly efficient the
Romans made  such good cement aluminum
silicates plus  compaction
that many of these structures  built thousands
of years ago still  survived today
if you've been in the  pantheon looks like it
was built  yesterday instead of 2,000 years ago
in fact it looks like is made out of  granite rather
than the best reinforced  concrete anybody has ever made
by the  way the frost giants in the
vogner  operas came out of the inability
of the  Goths and the Visigoths to tear down  these
aqueducts  in
the Dark Ages they concluded only  Giants could
have built them but in fact  it was just
people like us with some  technique
and the same thing is true in  computers
our building block is a  comparison
we could call it the  scheffers stroke if you want
  and again we can go tactically
in  calculators we can add
a strategic  element the stored program I loves
  jacquard looms and this
notion of  storage models
of computing is  recapitulated through many of our
  languages and predominant
amount of programming today  despite
some fringe areas is actually
done using this storage model in a wide  variety of
forms including so-called  object-oriented languages
so this is  kind of the general thing you find
today  most universities train towards
these  and so we we're talking
about Turing  really
interesting idea is this brick  ideas yeah
you can program a computer to  make something that's like the
computer  you're on but you can also make
something a computer that is very  different from the computer
it's on and  the first one of these that I ever saw  was ivan
sutherland sketchpad and it
definitely a computer it was  programmable it
wasn't programmable like  any other computer had ever been and
was completely different than the  enormous tx2
computer that it that it  ran on and
one way of thinking about it  and EDD Feigenbaum
blazed the trail here  is that
a lot of computing today is done  in terms of house and
as far back
as 50  and 60 years ago people were already  starting
about can't we just program in  terms of what's another
one was john  mccarthy
whose early paper on the advice
  taker a an intelligent
terminal agent  that you could give advice
to that could  deal with things in common
sense terms  lisp was
actually invented to be a  programming language to make that that
  was an early idea and of course Marvin  Minsky
and Ed Fagin bellman and so forth  have
talked about intelligent systems as
  terminal agents I'm going to focus not
  so much on AI here but just
this notion  of what do we get if we can find
think in terms of  and we got a Marvin
call the semantic  information process
processing I'm gonna  focus on sketchpad here because
it's not  only Turing's 100th
birthday it happens  to be the 50th birthday of sketchpad
this year and I'm sure Ivan has  forgotten
this because he's famous of  forgetting things like this
yes because  he refuses to talk about
sketchpad I  thought I would say a few words about it
  so it's
famous for being the invention  of interactive
computer graphics it's
less known that it was really the invent  really the first
object-oriented system  that had the
abstraction technique
of  objects masters and instances
you can  make a master rivet
and create instances  from it and the
big knockout on  sketchpad was the programming of it
was  not done in terms of anything
like a  storage model but was done by telling  sketchpad
goals that
achieve and it had three spot home  solvers in
it they would achieve those  goals and one of the famous
examples  here is this truss bridge
and it happens  that there is
no movie available of this  truss bridge and
the reason is that
tx2  took awhile to settle
the constraints on  this bridge I believe
but because it's  the 50th anniversary of
sketchpad we  have recreated the
sketchpad display and  this twinkling
ivan will recognize  because it
actually plotted points and  they had to be
randomized throughout  core you go crazy
with vertigo on it and
  so with sketch pad you could
you know
  add a truss in here
you could turn on  the constraints one of which is
gravity  and sketch pay I would compute
all of  the beams there and
we can see what  effect
this this one has of adding it  in here those
1962
and
a wait and
  another way and
there's twinkling and  stuff caused
a series of better displays  to be made
but it's interesting that in  many ways
the semantics are
xpressed here haven't been improved  much on although
if we come into modern  times we can make it look prettier
and  we
have this model as do two Yoshiki  Oshima and
Bert Freudenberg who made  this and
now in the modern version of  course
words
have weight so I'll say  Ivan
for inventing
this
and we're
constraints a little bit differently  here and
so we put them inside this  weight
here here's a couple of them so  here's
the spring constraint so the  beams are all Springs
here this is  gravity and this is the pinned  constraint
so if I turn gravity off the
  springs will pull it I
love the idea  just
the idea that a physical object is  actually a process
so it's gone to zero  I turn gravity
back on and
let's turn  off the
pin constraint the pins  constraint is what
is holding all of  these girders together at the at
the  joints here so just pull it off
okay
ou know we have all these useful  objects down there and
we know these are  these objects what we're seeing
are just costumes on these objects so  let's repurpose
them we'll give this  system a different set of constraints
and I'll use the little balloon here to  raise them up
okay
and we this is not  such a big news because we
do our layout  using constraints so
this is a user  interface of the system I'm actually  giving
this this talk in terms of
Steve  Jobs might like the steel look but
I  think being a little more colorful we  can
try
we
can try a blue look here that  looks
a little bit too much like a  company we're all familiar
with so the  system is a bit of a Frankenstein
  monster so I'll go for a Halloween theme  here
and
I've got a
this is kind of like a presentation
  system except I can program in it so  what I'm
going to what I'm going to do  here is just
go to the sort of a slide  presentation but
in fact I can still  interact with it because it's
this is  just a view there are no modes in
this  system and this brings
us to what I  think of as the third turning machine
we  talked about the first 2/3 Turing
machine was the machines he built out of  biology
and this is in fact the first  turing paper i wrote was
that I read  when I was a biologist was
morphogenesis paper and even though I  was a math major also
at that time I  will confess I did not
understand the  mathematics in it it was deep and
actually he warns in the beginning of  that paper of
what parts to read unless  you're really into mathematics
but one  of the ideas here is he
was trying to  show that relatively simple systems
of  gradients interacting with each other  can
give rise to an enormous number of  morphological
structures and these are  some
some from his original paper
and  these are computer generation of
some of  his models more recently
and
you can do  other things with these so
radiance we  can do something
that's kind of like  particles and fields here
we've got  little ants following the gradient and
they'll all eventually migrate their way  up into
that upper left-hand corner
it looks like they're somewhat  coordinated
but in fact they're all just  following their own
their own thing and  even
though we could build our text  handling
stuff in this form it
suggests  yeah
well why not make the letters ants
  and so if we tell these guys
to
interact  with each other and
by the way this  these three rules here
are the rules for  this text editor here
so you can sort of  see what that looks like
  and another little wrinkle in here
this  that was done by Ted kale or another  wrinkle
here is done by Erin Lindsay and
  it's that nowadays we have the computing  power
so that we don't have to compute  just one
version of something but we can  compute multiple version
so for instance  here are three
suggestions three views  of this paragraph
computed all at once  in different worlds
and we see the  outline super opposed
over it and we
can  sort of see how
this works and this  underlines that when you're
doing what  type programming you really want
to have  a user interface that is
giving you a  sense of what the possibilities are  going on
because the system is doing  more for you than when
you're doing  sequential programming
and of course  there's the question
of doing the  graphics here and so
dan amma liang did  the graphics for
this system and an  assemble way using mathematical
  relationships first here's a formula
for  the involvement of a polygon
with with a  pixel and then
he made a mathematical  language
that allows us to express
in a form that runs so you can think of  this as kind
of a specification that  actually runs and in
previous discussions I'd say my  prejudices
are to make our specification
language something that we can debug and  then ship
because the problem is you're  always involved
in not just programming  something but
you also have to do all  the reasons
for the programming and  those can have bugs also
so I kind of  like this way but I happen to agree with  Butler
that sometimes trying to make  things clean
is difficult but on the  other hand think about
wonderful it is  when you can make them clean so
that  does things
like that and then we have  Willian compositing
rules but there they  all are just
95 lines of code
  we have pen stroking and
like this and
  we
have gradients
and texturing and  stuff and the best way to show that is  to go
back here and I'll just pick  something in the user interface because
  the whole system is live I'll say okay  gradient
fill and I'll just wreak ustym
  eyes my little in thing here
because  that's the live thing
that goes along  with that okay
and then back
up and then  bitmap filters
and everything and so in  this form all of
we're familiar with on a personal  computer is
435 lines of code and yeah
you have to learn a language that's a  little bit like AP element
meets  Christopher stray key but in
compactness of it and the  understandability
of it is fantastic
and  in order to make languages like that
fast  we made a metal language
Alex Wirth did  this and it makes
converts expressions  into
object relationships that you can
  do things like compile with or interpret  or you
can do something really  interesting
and illuminating with it as  Brett
vicar young fantastic user  interface
designer Brett would say yeah  that's not really
interaction you need  to continuously experience
the meaning  of your meanings not just hit
and have them happen and this is  possible in
this graphics language  because it's actually a
data flow system  as well as as
well as a very high higher  level language
and so the
oops
sorry  so
here's an example of
the letter D and  here's
what bread has done he has  automatically
gone through those that  code that
I showed you and he has built  this visualization
over here  automatically from it  so
just so here's a Bezier curve
can edit this letter D here and you  notice everything
else is reacting here  the six
bezzie A's that becomes
the  input of the rasterizer
that produces 49
  span coverages and I can
from  I can
open these up and
what
it does is  it takes me on a tour automatically  through the
code forwards and backwards  and shows me what's
going on and of  course the next step 2 after this would
be instead of writing this stuff over on  the right first you
might want to start  off with your examples first and develop
  the stuff on the right
okay and so in
architecture for this is somewhat  similar to things have been talked
about  for a while this is Ellen
Hossam Savini  who have been
working on this and basic  ideas whenever you can stay
up at the  what level the constraint level the  meaning
level the relational level  things are generally
good and you'd
like  to have a language or two not
too many  of them that really allows you to
  express these not just for special cases
  I mean one of the points of this is it's  time
to start thinking of doing what  programming for systems
programming  making operating systems and basic
  elements out of it where
the system is  in charge of doing the house
the solvers  the optimizations the pragmatics
and  there's zillions of these
we want to
work up here this is kind of sketchpad  like it's gets bad
I had three of these  we actually need a lot of them
  in between we need something that is
not  just a kind of a chooser but also kind  of an
expert system that knows about  this idea
that can make judicious  choices
and maybe even parallel choices  to tie this together
so when
I look out  on the world here  and somebody
asked me about the Turing  tarpit I think
it's a Turing opportunity  and
if there's a tarp it around  I
think it's inside of our own heads  thank you very much
great so we'll take questions
you  pointed someone and I'll run a mic to  them and
we have about five minutes for  questions
questions anyway I'm always
  very great Butler always reminds me  that's that
Butler gives great talks and  he actually gets
done when he's supposed  to and he's I'm
just grateful that he  went on before I do because it reminded
  me I should get done good Alex Wolff
hi  Alex Wolff
aren't yesterday's what's
  today's house on ad
infinitum
aren't
  yesterday's what's today's house odd
  infinitum
I'm
gonna let Alan repeat okay  okay
shall I saying it again  but the point is that you
know we don't  know how to do something
we we then know  how to do it yeah I
got it  and then we complain about it yes
well  actually some people even regarded  Fortran
as an AI program back then  because
it did something that only  humans could do and people
complain that every time a problem gets  solved it's
removed from the domain of  ai ai ai never
gets any credit for it  because it just goes into engineering
  yeah there's something to be said about  that and
maybe one way of looking at  this is saying hey it's a
it's not that  it people haven't been working on what's  for
50 or 60 years but I think it's
way  out of balance if you look at where
the  programming is going and I believe
that  the time is ripe now over
the next five  to eight years to actually
do something  serious at this
level that is
sort of in  between specifications
requirements  prototyping and making
something that  can be delivered with perhaps by
adding  optimizations that don't get
into the  the the meaningful part
hat's why this is a pep talk it's  come
on funders start funding the next  revolution in
being able to do serious  program not
just a special case program  okay so there's a question over
here  we're good
so tell us who
you are my  name is Ken Pierre Allen
I'm surrounded  by Dinah books got a little
one of my  hand it's
been it's been 40 years and  we've been talking
all day about  predictions what are yours
well the  easiest
you know there's a there's a  saying that will go
on my tombstone but  if you think about it the the
easiest  way to predict the future is to prevent  it so
one of the one of the ways of  looking at today is
the discouraging  amount of
stuff that's still around that  was
barely scaling when it was invented  and I so
it's easy to predict that a lot  of that will be around real question
in  I think in the experience
of many of us  takes critical masses of
different kinds  of people funded well to
actually make  serious breakthroughs because
ideas are  not
enough there are plenty of good
  ideas around but I came greatly
to  appreciate the
qualities of people who  can turn ideas
into reality and so it's  really the combination
of them this is  what is so difficult for
instance from  NSF funding as funding
projects large  enough to do the engineering aspects
as  well as the the ideational aspects
good  we're gonna squeeze in one last question
  how about something from over here
god  what a bunch of wimps nobody's got
a  hand up there weird oh okay I'll be  right there
  put your hand up
again good and tell us  who you
are  Simon cuskey from citrus
leaf Ellen you  talked about preventing and
you showed  us this nice WYSIWYG live very
few lines  of code now the things that Ken
was just  talking about about all his dire
botnets  can you imagine using
those techniques  to deal with things once it gets
your your screen and starts going into  the real world where
there's spam and  malware and adversaries
yeah well I'm  I'm always accused
of being too  optimistic but and
to me the many
of the  protection aspects of things
I have a  probably an over simplistic way of  thinking
about it but I believe you have  to do the safety
and protection aspects  as the first part
of the design rather  than trying to tack them on
afterwards  and I
happen to like the internet a lot  I
think those guys did a fantastic job  and to
me it's the only real  object-oriented system on the
planet  because the machines themselves are
ncapsulated things and it is not  possible to send
a message on the  internet that will cause any machine
to  crash because it's true
because it's  only stupid software that other people
  put on the machine interpreting what is
a pure message interpreting that in some  stupid way
that allows that so to
Internet is a good model and it must  have a few billion
nodes by now it has  never had to be stopped
to be updated  it's probably
exchanged out most of its  atoms and
much of its bits at least once
  since say the late 60s when the
ARPANET  started so it it's the thing that is
like a living organism it's the thing  that is going
into the future it's the  thing that we have to look
at when we're  thinking about building systems
and so  on it's in a biological system the
the  entire dynamic
in biology is not being  correct
but in curtailing
error a lot of
the proteins made  a third of the 10,000
proteins we have  in each cell are there just
to correct  various kinds of damage to
DNA and other  important molecules that
are caused by  kinetic
energy of heat and some  carcinogens
and so it's not a question  of the thing being
perfect it's like the  Internet  it's
not just IP but it's having  something
like TCP that can make sure  the retransmissions
and other things  happen so you eventually
get the bits  that you want but
not you may not get  them for a while so it
becomes a kind of  a stochastic computing
and I think that  it
couples well to what Butler was  saying and also
this model I was showing  that it's it's
that the more we get into  the what's the more we can build systems
  that can do these stochastic convergent
  strategies that
will allow us to build  bigger systems on
that very optimistic  note thank you