Extracting Energy from the Turing Tarpit (2012)
From Viewpoints Intelligent Archive
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