Honorary Doctorate Speech at Kyoto University
From Viewpoints Intelligent Archive
so thank you very much I
don't understand
Japanese so it was very easy to
sit through the introduction
as
I mentioned a little while ago during the
ceremony this
day is a day in remembrance
of our friend Minko kambayashi
who just
a few days from now
five years ago died
suddenly of a cerebral hemorrhage and
shocked all
of us who knew him and loved him and
I
gave the title of this talk before
I prepared it and when I started
actually turned into a somewhat different talk
so hopefully you'll
like the talk i'm going to give rather
than the one I'm not going to give
and our
friend kambayashi San was a
man who improved
the present and looked into
the future and tried to help it grow and
besides
his great interest in children he was Dean
of informatics here and a computer
scientist for for many years and
one of the things that we wonder about in computing
is does computer science
itself have a future and
what I mean by that is not whether
computing has a future because it is obviously
inserted itself into every part of
the lives of ever
more people on the on the planet
but whether the
forward-looking
study and understanding and
invent of computing
that's another story because
in fact compared
to much of the work that was going on in the 60s
and 70s when people were actively trying to
find out what a computer science could
mean much less of that kind
of inquiry is going on today and
by this I mean little science
word in computer
science come to mean something like
the other real sciences or
will it be like the science and library science or
social science which means
a gathering of knowledge but not in
the principled way that physics and chemistry
and biology have
been able to revolutionize our understanding of
phenomena by using very different
techniques than simply the gathering of knowledge and
similarly
we have a term called software engineering
which was also an aspiration
in the late 60s and
the aspiration was to be
a discipline like that which
caused the empire state building
to be built in less than a year including
the demolishing of
the original site less than
a year demolish build the empire state building and
start occupying it done by
a little less than 3,000 people I
don't think there is any large-scale
venture we could do in computing today that
could organize 3,000 people to do something
as involved
in complex an artifact as the
Empire State Building so both these cases the
Science in Computer
Sciences and aspiration and the engineering and software
engineering is an aspiration and the question is
whether these aspirations can be turned into something
or whether what we have right
now will be deemed
good enough and I don't think it I don't think it
is good enough so here's a one way to
think about one or two of
the problems a
400-page book is about twenty thousand
lines of some language and
the foot of books is about
fifteen books and about
three hundred thousand lines in some
language and the Empire State Building is about
twenty two thousand books high or about
440 million lines in some language
and seems like a lot
but consider that just
Microsoft Vista and the microsoft
office together are
about 260 million lines
of code that's about thirteen thousand books
nobody has ever read those books I
don't think anybody at Microsoft
could tell you exactly what that code does
could tell you how to fix it could tell
you how to improve it and
so we take two extremes
looking at these figures one extreme
says well that's the size that's the actual
complexity of the functionality delivered
here that
in functionality by the way required me
to reboot my computer before
giving this talk because it couldn't adjust the software
on it couldn't adjust to the projector in
such a way to allow the application to display
the full screen correctly so
in those two hundred sixty million lines of code at least that
feature is not in there yet
so that will probably require an
a million lines of code or
the other extreme is that
this 260 million
lines of code is grossly
bloated
that very
little that contributes to any kind of functionality whatsoever
and it's really kind of a mess
n I'm not really just picking on
Microsoft because a very large worldwide
company I call it lfp for
large financial product company
their suite of products
comes to about 350 million
lines of code or about 17,000
books and their user interface has a
grand total of one hundred and forty five thousand
different screens they use
that term screens because i think they are still
living back in the days of the IBM 3270 where
that term was actually invented so
I doubt seriously whether the functionality
actually delivered is in any way
commensurate with the amount of code that
people have to deal with and of course that code is not
organized nearly as nicely as a book that
actually looks more like like this looks like kind of like a garbage
dump that's kind of what it is and
it's the kind of thing that would be condemned
if anybody could ever look at it but
if you look at a garbage dump through
a window about this big a little
part of it only looks slightly messy
if you could look at the entire garbage
dump of code I think we would be horrified
that's not really a dumb
because people have to live
with this people usually don't live on a dump so
perhaps this is a city after
a great disaster where people
are still forced to live
and part of this I think comes
from the small horizons that
our brains naturally
have our brains
are set up to worry about what's going to happen
the next few minutes and next few hours and we
can remember fairly vividly the things that happened a
few minutes ago and a few years ago
but everything else is kind of blurry and
because nothing
much happened 100,000 years ago
the evolution
didn't make our brains
to be in tune with the idea of progress as
our brains are made for coping not for
progression and so if there is a change it's a little
change one way or the other or a complete disaster but
the idea of making things remarkably better
in some way is not in our common
sense reasoning the problem is we live
in a time where this little window of
a few years behind 1970
and a few years ahead of 1970 it
actually part of a progression looks kind of like this
partly caused by Moore's Law
and partly caused by the Industrial
Revolution and a number of other factors
and the problem
is is that when you look at a small
exponential curve that can look linear and our
brains love linear things and so
we actually have to focus our will on
change
to try and understand whether
this change is actually really a linear change
like our brains wanted to or whether it's one of these horrible
so
again because our our brains are so
limited whenever we have
to deal with very large things
we're just overwhelmed by them and we start
turning large things into religions
so instead of thinking about the
content of 10,000 books we start believing
it so 200 million lines of
code is too large for us and most
people have never read a thousand
books so 20
million lines of something is a lot and
if somebody were to present
us with a hundred books worth of something that's a lot
10 books
we can get through 10 books is maybe what
we're supposed to read in a in a year at college
so that's one thousandth the 200
million lines there and one book is
omething we could probably handle twenty
thousand lines of something we could handle if you could imagine a large
software system
that could be expressed in twenty thousand
lines of something that
would actually be something like a Moore's law for software
right now we have an inverse Moore's law
for software because as the
positive Moore's law for software for
hardware is chugging along we have the interesting
property that but much of the applications
we use on this machine anyway actually
take longer now to load than they did 20 years ago
so what it means is is that
no matter
how much the
silicon factories in the world are
improving the speed and
capacity the software people are actually taking
that speed in capacity away
now of course this might be necessary I've
met many people who think this is a necessary thing
that actually what we have today is the best
of all possible worlds so we'll we'll
see whether that's really true now the other
problem is that 20,000 things
can be too much so here are 20,000
wires this is a real picture and on a staged
picture I'll not tell you where it this
picture was taken but the
person who started this off did it very innocently
one place had to be connected to another place and
person got a wire and connected it up and another
place had to be connected to another place and so
that person or another person got a wire and connected it
up and pretty much pretty soon they had this
and this is kind of the way most software grows
simple
little things can be handled but if
those things don't scale you wind up with this and
the
couple of years I've been asked embarrassing questions by
my wife who is a writer and a
an artist and here
is a actual screen
shot of her cinema sighs display
at her home and
I just segregated the software
questions about so as one kind of software on
the Left can sort of see what it is and there's
another kind of software on the right and her question
is well in these apps here
on the Left like Microsoft Word and
photoshop and so forth I can
she says I can see and do WYSIWYG authoring so
the stuff is right there and I
can make a change in it and it shows me the change and it's
fairly easy to work with but
right all the stuff that has to do with the web well
it isn't WYSIWYG and so
I have to go into special editing modes I have to
use the wiki I have to edit through a keyhole I have
to do many different kinds of
things well it's embarrassing enough for
her to ask me about that
what's even more embarrassing is the stuff
she likes was invented in the 70s the
stuff she didn't like was invented in the 1990s
about 20 years later so
in fact a large percentage of
software a lot of people used today because it's connected
to the web is actually inferior
to stuff that was done before and for
no good reason whatsoever
there was nothing about the
web that prevents
it from being WYSIWYG and easy to use
it was the people's attitudes
who did the web browsers that prevented this not
anything technical and so
we call lists reinventing the flat tire
in most sciences
your cautioned against reinventing the wheel
because you're supposed to have read
about what people have done before and
but it happens but
it's really bad when the reinvention of
stuff is worse than the original stuff because
people have paid attention to what's what's
been going on and so
basically we could say the present
doesn't compute we're in a
situation where the hardware capacity
allows a lot of stuff that
doesn't scale very well to barely survived
but in fact it survives
at the expense of being able to improve
it make changes understand
forth so this is what we want to look at in this
little talk today
when way of looking at this is when a new
idea appears like the printing press there
are two separate ways of looking at this new
idea one is as news news
is incremental to what you already know and so
when the people saw the Gutenberg
Bible their reaction
was oh this is I understand this
this is doing much more
cheaply a much more quickly what the monks did
by hand so this is an improvement to
what I already know and in fact the Catholic Church
did not think to suppress the printing press because
it seemed to be working
for them who's making more
Bibles but along with news if
the idea has some
potency there's also new and
what was knew about the printing press was going
to be in about a hundred years or so was
the invention of science and the invention of new ways
of governance so Kings were on their
way out and the power of the Catholic Church
was on its way out and nobody realized it because they
didn't think about what was knew about the printing press and
usually when something new comes along there's
a change in outlook it's not just
something incremental there's a different way of looking at things and
in this case the outlook shifted from a
world that believed things to
a world in which people started learning
how to argue about things how
to be suspicious of things rather than believing
things and the
problem with ideas is
that our brains are set up for News News
is simple news
is incremental it can be told very quickly we've
been doing it for a hundred thousand years but new
might require you learn something
for five years before you can truly appreciate
the new idea sonu
is not very popular most things
that are new are converted into news or done away with
entirely they're modified
in some form that tries to
kill off what's new and just use it as something
that's a mere improvement rather than a change
everybody likes change if
you talk to them everybody likes
change except for the change part so
people are talking about change all the time but the
the actual ability
face of a new I is very difficult for
most people in our favor
Canadian Marshall McLuhan said
this about goldfish I don't know who discovered
water but it wasn't a fish but he meant we are the fish
and the water the fish is swimming in is
our beliefs most
of our beliefs we can't see we can't even remember that
we have them because we treat our beliefs as reality
rather than
arbitrary things that
we just happen to learn because we grew
up one place and not another I McLuhan
was very good at pointing out the
difference between news and new
so one of the things he pointed out about news is
that the present for most people is only seen
in terms of the past it's
interpreted by what people already
know and it's thought of as reality
well it seems reasonable I mean that's
all we bring isn't it into each present
moment is the sum
total of what we have been how can we deal with
the President and nettie in any other way
one of his great lines was
he said until I believe it I can't even see it
another thing
McLuhan said is that you
shouldn't try
to worry about whether something is true or false
or good
or bad when you first encounter it because
if you do you're bringing your
past to make that judgment instead
of worrying about things are good or bad true
or false you should simply try and
find out what is going on and he meant try to look
at the present as it is
so this is a new idea for humans
because most humans are brought up in a culture and
they think of new as
something that is damaging
to their reality
rather than thinking of their reality
as a construct an ax and a perspective
and McLuhan pointed
out that artists and scientists can see some
of the present for itself and they do this in different ways
and because they can see the present a little bit they
can also see a little bit of the future that
is basically what we have to do in
our field and also for our children
now why is this difficult
it has to do with the makeup of human
genetics across the planet
we can learn new behaviors
but part of our behaviors come out of what
we are as human beings for instance if you look at
human beings across the planet and give
them present them with a new tool or a new idea
about ninety-five percent of them will
evaluate that new tool or idea as to
whether it contributes to
their current goals so most people are already working
things they have plans they have goals and
they stick to those plans and goals very strongly and
if the new tool or new idea doesn't contribute
to those plans or goals they will reject
it but about five percent of its look
at it in a different way five percent of
human beings might change their current plans and goals
in the presence of a new idea so it's one in
20 now if we look at human beings in
a different way eighty-five percent of
us do most things
because
other people deemed them and important doesn't
call outer directed the
goals that are chosen the rewards that are gotten
our gotten by living in a society makes sense because
we're social animals about fifteen percent
of us have more inner rewards
or less affected by what
other people think and if you combine these two
ways of looking at things you got a picture that looks a
bit like this where only one percent
of us is inter directed
and interested in ideas and tools and
the other extreme is that eighty percent
of us is outer directed and
very conservative
holding on to our goals and very instrumental in our thinking
these are the two
dominant reasons why new ideas have a hard
time penetrating and the newer an idea
is the more unusual it is the
more difficult it is because the eighty percent of us
actually doesn't think about the ideas so
much as looks for consensus and so
a typical time even
for trivial ideas to reach
consensus for the eighty percent is about
thirty years and more complicated
ideas may take 50 years or
even longer so for this group
change has to be more or less almost agreed
on by everybody before the change happens
and then four
percent of us think a lot of engineers
are in this group are interested in
ideas and tools and want
to work on problems the society deems important and
about fourteen percent of us is very
dangerous if you think
about what it means to be inter
directed and very stubborn in your own
pursuit of goals this group
makes a lot of politicians and
managers and so forth
so they this is a tough group to
with so this is a very simple way of looking
at human beings but it
gives a lot of explanation as to why though
is relatively simple to come up with brand new ideas
that are very powerful it is very very difficult
to disseminate those ideas
so we go back to 1970 and take
a look about what was news back then it was mainframes
the spinning tape drives
big computers owned by companies sort
of factory models of computing
and a strong belief that
you should always get hardware and your operating
programming language and your tools and your user
interface from a vendor they should
not try to make your own and many of these
ideas are still very prevalent today
for instance cloud computing and
dealing with vendors covers the space very
well and
then right at the same time about
two dozen people from a community of several hundred
at xerox parc were doing
things that were completely at odds with the news
so personal computing
distributed networks
making
your own tools doing everything
that was new and the
focus was not on factory computing but
on but on end users so
these are if you will this is the eighty percent versus
the one percent and the
outlook of
the
this group is
a little too complicated to try and sum
up in a talk so I just picked one
one part of the outlook that I think
is kind of a good way of thinking
about the way this research
community thought and that is it was a no
centers outlook that
is no discernible center no
hierarchy and
because this group was also responsible for
inventing the internet
simple way of thinking about this is that everything
is kind of like the internet so
the network's themselves were distributed
whether it was a ethernet or an Internet
inside the computers there was no operating
system there was what you might think of
internet all the way down it's kind of interesting to think about a
machine like this in
which if you calculate it
out it has about the capacity and the entire computing
power of the entire Internet in the
80s Moore's
law and so you'd expect if you looked inside
here you'd find something that had thousands
of virtual machines and dozens
of physical processors acting
very much like your own local internet
in fact being a cash for
the process he's running on the internet that's kind
of the way we thought of it back then but instead
what you find is something from the 60s called an
operating system that essentially stovepipes
most things in a very very bad
way makes it very difficult
to integrate things whereas it's very easy to integrate
on the internet
and of course if you have a distributed
physical
or virtual object system sending
messages around you don't need a programming language
because you're already sending
in a programming language and that context
is simply putting some sort of reasonable syntax on
the messages now just think if the
people who many years later did HTTP
realize what they were doing they
could have come up with some conventions for using HTTP
which would have made it the programming language of
the entire internet that would be incredibly
useful instead of the ad hoc set
of know 20,000
wires or the garbage dump that
we have today but they didn't realize
what it was that they were doing and
of course people talk a lot about mash mash
ups but in fact that was
the way things were done back in the 70s
because that's what you get when you have objects
that integrate through a user interface
so and the
inner the user interface does not care where
is that's actually generating these things it's a
way of presenting a whole bunch of things that
same I'm in
some relationship and these relationships
can be driven by by
making relationships between them and
so what we would call an application would
actually be just a set of useful objects working
together with no stovepiping like we have today
then finally the idea was let's not
have any mainframes let's just make zillions
of personal computers and
these personal computers themselves had
virtual processors so the original Alto at
xerox parc had 16 virtual processors
so the whole thing was done without
centers from top to bottom the
hardware and the software and of course some
of these ideas came out into the 80s
and we use them today but what's interesting is
what ideas did come out
which were mainly the ones that had no competitors like
the ethernet there just wasn't anything that competed with it and
to a much smaller extent the user interface
but in fact as
programming techniques and the architectural techniques
almost none of it came out what
we got is what we had in
the early 60s and pretty much what we have today
and underneath this is this
glorious thing called the internet which now has
several billion knows has never broken has
never had to be stopped in order to be fixed all of those
things that could be possible with the software
systems of today but because of the way they're made
simply aren't have never
happened and it'll be very hard to make happen in the future
so one of the
ways you get rid of 20,000 something's is
by finding an abstraction that
will deal with what what this
thing is doing what this thing is doing is simply getting
messages to go from one place to another and
the being able to string a wire from
one place to another means that at some point you have to
being able to send a message from any one node to another
node and by the way that's just what the
ethernet and the internet do but
they did it by virtualizing what
used to be switches into a message
passing situation and so
instead of having an increment that doesn't scale
you can almost always make something
that scales very very well by completely
virtualizing the computer you have into
some new kind of computer that's kind of the message
of this talk so
when computers came about
they had features let's
make more of them the
message of personal computing was the it's the end user
that's the important part of this because
a human is going to wind up using them and therefore
the hard part of the design problem has to do
with how you deal with the end user
one of my favorite
people on the planet is Jeanette wing
she is
great computer scientist theoretical
computer scientist the Dean of computer science
at CMU and she's currently the funder of most
he computer science funding in the United States and
you can see she has a very unique way
of teaching because she is a black belt in
karate and I understand the
students in her class really listen when
she talks and her
definition about computing
is it's the automation of abstractions which i think is a pretty
good sentence
but we have
to think about that for a second because
what if you were born in
10,000 BC with an IQ of 500
or what if you were born Leonardo
in the 15th century
leonardo was smarter than anybody in this room but
he couldn't invent a single motor for
any of his vehicles that he wanted so
even though he was smarter than most of the people who have ever
lived on the planet he wasn't smart enough he
to be born into a different century
here's a guy who wasn't nearly as smart as
Leonardo Henry Ford but
he was born at the right time when there is knowledge
that came out of science and
the improvements in engineering to
start inventing internal
combustion engines which had been invented a few years
before in Germany and all of a sudden that
plus the Industrial Revolution allowed
Henry Ford to make vehicles that Leonardo
could only dream of by the millions so
knowledge generally Trump's IQ
if you know a lot it helps
mart but if you're smart and you don't know a lot it
doesn't help much and finally
what's more important than knowledge is
outlook I realized when I was explaining
this talk this morning that I should have put Isaac Newton
in there because it was Newton more than any
other single person that made Henry Ford possible
by completely changing
outlook on what the physical universe was like as
far as European civilization
was concerned what outlook does
is to give you a stronger way
of looking at things by
changing your point of view and that point of view informs
every part of it it tells you what kind of knowledge to
get and it also makes you
appear to be much smarter so
a person with relatively normal IQ plus
the calculus is smarter than our committee Archimedes
was in ancient Greece
so I like to say knowledge is silver but
outlook is gold I dare
say that in most schools in the United
States most universities and most graduate schools
attempt to teach knowledge
rather than outlook and yet
we live in a world that has been changing out from
under US and its outlook that we need to deal
with that and by contrast to these two IQ
is just a big lump of lead
it's one of the worst things in
field that we have clever people in it because
like Leonardo none of us is clever
enough to deal with the scaling problems that that we're dealing
with so we need to be less clever and be
look at things from better points of view so
if we go back to Jeanette here what we really
want to say is computing is the automation of abstractions
in powerful outlooks we
must find those also now
if we go back to reinventing the flat tire question
what's in the browser
well JavaScript it's a programming
language the do em
and other graphics not very good
but what's interesting is the two of these together
is
more powerful
computationally than the alto was it park in the 70s
and the alto could do all of these things
user interface and the development
system and desktop publishing all of that stuff WYSIWYG
in about 10,000 lines of code
it's not a
lot of code this
code was virtualized and so if
we go back to the browser again we
could say well why don't we just do it Xerox
PARC let's let's forget about JavaScript and
just use JavaScript as an alto it's actually faster than
an alto but let's not let
JavaScript seep into the better
architecture we need to do
our WYSIWYG
environment inside a browser so
going to draw a line there and we're going to say okay this
is machine code here it's not
the way we want a program but we can make something out of it
so we get the guy who did this at
xerox parc originally dan ingles and on
top of that we put a real architecture
known to be able to build these kinds of environments and lo
and behold if you go to
lively
colonel type lively colonel into
google and do it in Safari especially you'll
get to see an entire WYSIWYG environment
done completely in the browser without any downloadable
executables this has always been possible
and I believe it is a
black mark against our field that even
though it has always been possible almost nobody who's working
with this modern software realizes
it's impossible or realizes how to do it this
don't think we quite have a real field now
I believe we're in danger of losing computer science completely
so one way of looking at it is
the simple way of looking at computers is they
can be programmed and people
are incrementing this by making systems using
programs that are kind of like the computer that are programming
language their programming with
but in fact the computer is more interesting
than that it can be programmed to be like any mechanism
you want including a completely different
kind of computer completely different kind of programming language and
that's what we should be doing I believe
most of the sludge most of the bloat has
to do with trying
to make very very large structures out of
just bricks rather than trying to invent arches
so
inventing abstraction here is something
that we have to be very careful with we don't
want to take the news the
abstractions that come to mind when you think of
aggregating blick bricks you get piles
and walls and what we need are
these non-obvious structures that
give us enormous ability to scale
without having
to use lots of material
and in fact abstractions that
have great power tend to be able to go on t-shirts
so Maxwell's
equations it's not it's not a complete test
but generally speaking if
you have a good idea you should be able to invent the mathematics
express that idea so Maxwell's
equations works pretty well equals mc-squared
works pretty well you
can put the American Constitution on a t-shirt and
you can put the
programming language and maybe still the greatest of all
time
something like a system psychology in that