Waiting..
Auto Scroll
Sync
Top
Bottom
Select text to annotate, Click play in YouTube to begin
00:00:14
[Music] [Applause] [Music] [Applause]
00:00:31
[Music] thank you well I presume most of you have been up all night I can't imagine ever seeing this many programmers at 8 o'clock in the morning
00:00:58
guess this is the largest bathroom I've ever given a talk in so that was just a test to see if you could understand me I
00:01:10
can't actually understand myself up here now actually haven't been to ups less since the the first one and when I got
00:01:25
invited to give this talk I was thinking about well should I should I go or should I not or what should I do and it occurred to me that this conference on
00:01:40
this day is pretty much in the epicenter of the 25th anniversary of small talk the [Applause] the one-page interpreter scheme that I
00:02:03
wrote out was done just a few weeks ago 25 years ago and the first working version of it was done a few weeks from now 25 years ago so this is about in the
00:02:17
center and let me see if I can get our motto up on could I have that first slide please so now I thought one way I don't want it
00:02:31
I'm not going to give a historical talk because I finally discharged those obligations in the history of programming languages conference a couple of years ago but I thought it might be interesting interesting for
00:02:44
some of you who might not have been computing for the last 25 or 30 years to take a two minute trip and I believe that this set of images is basically
00:03:00
goes back to 1973 in 1974 at Xerox PARC shows some of the first children that we worked with the music that you'll hear on this clip was composed by one of the
00:03:13
members of our group Chris Jeffers it's called the happy hacker in case you want a theme song is played in the real-time FM synthesis that we
00:03:26
developed for the alto computer so this is the first the forerunner of the workstations and the Macintosh without any additional sound synthesis hardware
00:03:40
at all because why should you have that if your computer is designed well and you'll just get a I think you'll get a little picture of it before I turn on
00:03:52
that clip let's just for the heck of it see how many people are in this room today who dissipated in the Xerox PARC small talk experience between roughly
00:04:03
1971 and 1983 could you stand up let's see if we how many people are at we hear anybody without gray hair thank
00:04:19
you okay let's roll that that clip [Music]
00:05:19
well that was things as they existed about 25 years ago and the other thing I want to do in the beginning part of this
00:05:31
talk tried to figure out how to work my way into it and I finally remembered the paper that Dijkstra I don't know how many of you have ever met Dijkstra but
00:05:44
you probably know that arrogance in computer science is measured in Nano Dijkstra's [Applause] [Music]
00:05:58
and he once wrote a a paper of the kind that you like to write a lot of which had the title on the fact that the Atlantic has two sides and it was
00:06:13
basically all about how different the approaches to computing science were in Europe especially in in Holland and and in the United States and there many
00:06:27
interesting you know in the u.s. here we were not mathematical enough and Gian in Holland if you're a full professor you're actually appointed by the Queen
00:06:39
and there are many other important distinctions made between the the two cultures so I wrote a rebuttal paper just called on the fact that most of the
00:06:54
software in the world is written on one side of the Atlantic and it was basically about because I had a math
00:07:05
degree too was basically about that computers form a new kind of math you can't judge them they don't really fit well into classical math and people who try to do that are basically indulging
00:07:20
in a form of masturbation maybe even realizing it and it was about that was a kind of a practical math that was the balance was
00:07:36
between making structures that were supposed to be consistent of a much larger kind than classical math had ever come close to dreaming of attempting and
00:07:50
having to deal with exact same problems that classical math of any size has to deal with which is being able to be convincing about having covered all of
00:08:03
the cases there was a mathematician by the name of Euler whose speculations about what might be true formed 20 large
00:08:15
books and most of them were true most of them were right almost all of his proofs were wrong many PhDs in mathematics in the last and this century have been
00:08:27
formed by mathematicians going to Euler's books finding one of his proof showing it was a bad proof and then guessing that his insight was probably
00:08:41
correct and finding a much more convincing proof and so debugging actually goes on in mathematics as well and I think that the I think the main
00:08:54
thing about doing oop work or any kind of programming work is that there has to be some exquisite blend between beauty and practicality there's no reason to
00:09:10
sacrifice either one of those and people who are willing to sacrifice either one of those I don't think really get what computing is all about it's like saying I have really great ideas for paintings
00:09:23
but I'm just gonna use a brush but no paint you know so my ideas we'll be represented by the gestures I make over the paper and don't tell any
00:09:36
twentieth century artists that or they might decide to make a videotape of them doing that and put it in a museum so I thought I had this problem figuring out
00:09:49
what to talk about it's always difficult because technical people always seem to know so much but it's interesting to again to look at what's actually being
00:10:03
done out in the world under the name of OOP and I've been shown some very very strange-looking pieces of code over the
00:10:14
years by various people including people in universities that they have said is code and written in an OOP language and actually I made up the term
00:10:28
object-oriented and I can tell you I did not have C++ in mind [Applause] so the important thing here is I have
00:10:48
many of the same feelings about small talk that I'm going to try and extreme do small talk in here because I think there's one really important thing about
00:10:59
small talk and some of the languages like it that we should pay really really close attention to but it has almost nothing to do with either the syntax or
00:11:12
the accumulated superclass library both of which of these are taken as being the language as though it was issued from some gods on Olympus so I want to talk a
00:11:28
little bit more about my personal reaction to when I started thinking about it in the in the 60s and instead of making it a historical talk to try
00:11:41
and think about whether these reactions and an insights have any place today so let me I'll just move so I guess my slide thing doesn't work
00:12:02
maybe it does yeah just go to that there's a blank slide there just go to the next one so in the 60s things were
00:12:16
quite mechanical there's a sense of simple mechanism because computers of course were as large as this as its room some of them the one that Ivan Sutherland did sketchpad on was the size
00:12:30
of this room was one of the last computers in the u.s. large enough to have its own roof it was the building it was in but the programs were quite small
00:12:42
and they had a lot in common with their mathematical antecedents and one way of thinking about the semantics of of math
00:12:55
that is based on logic is as interlocking gears everything kind of has to fit together and if it does and everything's compatible at the end you get the the final turning of the shaft
00:13:09
that that you want and sort of a real world analogy and go the next slide please whoops so we missed the slide go back to slides
00:13:24
please there we go so an analogy to these programs of the 60s is a dog house you take any random boards nail and
00:13:39
hammer pound them together and you've got a structure that will stay up you don't have to know anything except how to pound a nail to do that now somebody could come along and look at this
00:13:51
doghouse and say wow if we could just expand that by a factor of 100 we could make ourselves a cathedral it's about three feet high that would give us something 30 stories high and that would
00:14:05
be really impressive we could get a lot of people in there and so the Carpenters would set to work blowing this thing up by a factor of a hundred now we all know being engineers
00:14:18
and scientists that when you blow something up by a factor of a hundred its mass goes up by a factor of a million and it's strength which is mostly due to cross-sections of things
00:14:29
only goes up by a factor of 10,000 so when you blow something up by a factor of 100 it gets about a factor of 100 weaker in its ability and in fact what will happen to this doghouse it will
00:14:43
just collapse into a pile of rubble and then there are two choices you can have when that happens the most popular one is to say well that was what we were
00:14:55
trying to do all along put more garbage on it plaster it over with limestone and say yes we were really trying to do
00:15:07
pyramids not Gothic cathedrals that in fact I think accounts for much of the structure of modern operating systems today or you can come up with a new concept
00:15:30
which the people who started getting interested in complex structures many years ago did they called it architecture literally the designing and
00:15:44
building of successful arches a non obvious nonlinear interaction between simple materials to give you non-obvious
00:15:55
synergies and a vast multiplication of of materials it's quite remarkable to people when I tell them that the amount of material in Chartres Cathedral which
00:16:10
is an enormous physical structure is less than the amount of material that was put into the Parthenon and the reason is it's almost all air and almost
00:16:24
all glass everything is cunningly organized in a beautiful structure to make the whole have much more integrity than any of its parts so that's the
00:16:37
other way you can go and part of the message of hoop was that as complexity starts becoming more and more important architecture is always going to dominate
00:16:48
material and in fact the sad fact I think about is people didn't get interested in architecture because of the beauty of it
00:17:03
they're only starting to get interested in architecture now and the Internet is forcing everybody to do it that's pretty pathetic so I'm gonna use a metaphor here for
00:17:20
this talk which is drawn from a wonderful book called the act of creation by arthur kessler kessler was a novelist who became a cognitive
00:17:32
scientist in his later years and one of the great books he wrote was about what might creativity be learning he realized that learning of course is an act of
00:17:46
creation itself because something happens in you that wasn't there before and used in a the metaphor of thoughts
00:17:59
as ants crawling on a plane this case it's a pink pink plane and there's a lot of things you can do on a pink plane you can have goals you can choose directions
00:18:14
you can move along but you're basically always in the pink context and if you think about that that means that progress in a fixed context is almost
00:18:29
always a form of optimization because if you are actually coming up with something new it wouldn't have been part of the the rules or the context for what
00:18:43
the pink plane is all about so creative acts generally are ones that don't stay in the in the same context that they are in so he says every once in a while even
00:19:00
though you've been taught carefully by parents and by school for many years you have a blue idea maybe when you're taking a shower maybe when you're out
00:19:12
jogging maybe when you're resting in an unguarded moment suddenly that thing that you were puzzling about wondering about looking at appears to you in a
00:19:25
completely different light as though it were some thing else and Kessler said the emotional reaction to this comes basically in three forms which is if you're telling a joke
00:19:38
it's haha if you're doing science its aha and if you're doing art its ah he says because in each case something very
00:19:50
similar is happening a joke takes you down the garden path and then suddenly reveals it's about something else and you get a very aggressive explosion and
00:20:01
science has much of the same feeling to it and often when you see something in science you start laughing because it was right there in front of you and it is a kind of a joke
00:20:14
and of course art is there to remind us great art is there to remind us that whatever context we think we're in there are other contexts art is always there to take us out of the context that we're
00:20:28
in and make us aware of other other contexts so this is a very simple you could even call it a simple-minded metaphor but it will certainly serve for
00:20:39
for this talk today and he also pointed out that you have to have something blue to have blue thoughts with and I think this is generally missed in people who
00:20:55
specialized to the extent of anything else when you specialize you're basically putting yourself into a mental state where optimization is pretty much
00:21:06
all you can do you have to learn lots of different kinds of things in order to have the start of these other contexts so
00:21:19
here's a couple of hit knocks on the head I I had over the years that I just want to tell them to you quickly this one I think you'll find interesting because it is the earliest known form of
00:21:33
what we call data abstraction it goes all the way back actually pre 1961 I I was in in the Air Force in 1961 and I saw it in 1961 and it probably goes back
00:21:47
one year before and so back then they didn't really have operating systems they had Air Training Command had to send tapes of many kinds of records
00:22:00
around from Air Force Base to Air Force Base there's a question of how could you deal with all of these things that used to be card images and then because tape had come in we're starting to be more
00:22:12
and more complicated formats and somebody almost certainly an enlisted man because officers didn't program back then came up with a fan coming up with a
00:22:26
following idea this person said on the third part of the record on this tape we'll put all of the records of this
00:22:38
particular type the second part the middle part we'll put all of the procedures that know how to deal with the format's on this third part of the
00:22:53
tape and in the first part we'll put pointers into the procedures and in fact let's make the first 10 or so pointers standard like reading and writing fields
00:23:08
and trying to print and let's have a standard vocabulary for the verse 10 of these and then we can have videos and kradic ones later on and so all you have to do to read a tape back in 1961 was to
00:23:22
read that the front part of a record one of these big records into core storage and start jumping in direct through the pointers and the procedures were there now really would like you to
00:23:36
contrast that with what you have to do with HTML on the Internet think about it HTML on the Internet has gone back to the dark ages because it presupposes that there should be a
00:23:49
browser that should understand its formats this has to be one of the worst ideas since the ms-dos this is really a
00:24:04
shame that's it's maybe what happens when you when physicists decide to play with computers I'm not sure and in fact we can see what's happening to the internet now is it's gradually getting
00:24:18
the two wars going on there's a set of browser wars which are 100% irrelevant they are basically an attempt either at demonstrating a non understanding of how
00:24:32
to build complex systems or a even cruder attempt simply to gather territory which I suspect Microsoft is in the latter camp here you don't need a
00:24:47
browser if you followed what this staff sergeant in the Air Force knew how to do in 1961 you just read it in it should
00:25:01
travel with all the things that it needs and you don't need anything more complex than something like X Windows hopefully better but basically you want to be able
00:25:15
to distribute all the knowledge of all of these things that are there and in fact the Internet is starting to move in that direction as people discover ever more complex HTML formats ever more
00:25:28
intractable this is this is one of these mistakes that has been recapitulated every generation and it's just simply not the way to do it so here's a great idea
00:25:40
by the way this this kind of programming was done before there were higher-level languages in the airforce and this but this approach to things was forced out
00:25:52
of the Air Force by COBOL when they standardized on Kobol Ivan Sutherlands sketchpad I've usually shown a movie of
00:26:04
what it was like I won't I won't today immensely sophisticated almost staggering in its conception of what it was able to do very much in an
00:26:17
object-oriented system it had an actual notion of classes and subclasses it had a notion of polymorphism even stronger
00:26:28
than the the eighth Air Training Command version next slide please now that I'd seen the idea three or four
00:26:46
times but wasn't til I had to figure out Simula we thought it was supposed to be an algal and it turned out the this pile
00:26:57
of tapes was a was the first Simula an algal that had been doctored by Case Western Reserve and the inventors of Simula Nygaard and Dahle in Norway and
00:27:13
distributed along with some incomprehensible documentation in 1966 and it was through trying to understand
00:27:23
what Simula was that finally I'm not sure exactly why it's just I think it's maybe if you see a good idea that's odd four times in four different costumes it
00:27:38
finally starts to make an impression and here's the the choice you have when you're faced with something new you can take this technological advance and you
00:27:51
could decide this is a better way of doing the stuff I'm doing now and I can use this to continue on the path that I'm going that's staying in the pink
00:28:05
playing or you can say this is not a better old thing this is almost a new thing and I wonder what that new thing is trying to be and if you do that there's a chance of actually perhaps
00:28:19
gaining some incredible leverage over simply optimizing something that can't be optimized very much so the choice
00:28:30
here was Simula came out of the world of data structures and procedures and had much of that flavor if you wanted to look at it that way but it had a way of
00:28:43
making relationships of the states of your computation with procedures that was extremely helpful and much better and more general than the what we call
00:28:57
own variables in Algol 60 so that was one way to think of it then there's this other question of if it was almost a new thing what kind of a new thing was it
00:29:10
well one of my undergraduate majors was in molecular biology in my particular interest was both in cell physiology and
00:29:21
in embryology morphogenesis they call it today in this book molecular biology of gene had just come out in 1965 and
00:29:36
wonderful book still in print and of course it's gone through many many editions and they're probably the only words that are common between the this book and the one of today are the are
00:29:48
the articles like the in and actually the word gene I think is still in there but it means something completely different now but one of the things that Watson did in this book was to make an
00:30:01
assay first assay of an entire living creature and that was the e.coli bacteria next slide please
00:30:20
so if you look inside one of these the complexity is staggering those popcorn things are protein molecules that have
00:30:32
about 5000 atoms in them and as you can see on the slide when you get rid of the small molecules like water and calcium ions and potassium ions and so forth its
00:30:47
constitute about 70% of the mass of this thing the the 30% that remains has about 120 million components that interact with each other in an informational way
00:31:02
and each one of these components have as carries quite a bit of information and you can think of it you know the simple simple-minded way of thinking of these
00:31:14
things is it works kind of like ops five there's a pattern match or and then there are things that happen if patterns are matched successfully so the state
00:31:29
that's involved in that is about a hundred gigs and you can multiply that out today it's only a only a hundred
00:31:41
desktops or so but still still pretty impressive as a as amount of computation and maybe the most interesting thing about this structure is that the
00:31:55
rapidity of computation seriously rivals that of computers today particularly when you're considering it's done in done in parallel for example one of those popcorn sized
00:32:09
things moves its own length in just two nanoseconds so one way of visualizing that is if an atom was the size of a tennis ball then one of these protein
00:32:22
molecules would be about the size of a Volkswagen and it's moving its own length in two nanoseconds that's a eight feet on our scale of things and
00:32:37
can anybody do the arithmetic to tell me what fraction of the speed of light moving eight feet in two nanoseconds is four times yeah four times the speed of
00:32:54
light scale so if you ever wondered why chemistry works this is why the thermal agitation down there is so unbelievably violent that we could not imagine it
00:33:07
even with the aid of computers there's nothing to be seen inside one of these things until you kill it because it is just a complete blur of activity and in
00:33:20
under good conditions that only takes about 15 to 18 minutes for one of these two completely duped hiriam of course
00:33:31
lots more is known today then another fact to relay this to us is that these bacteria at one five hundredth the size of the cells in our bodies which instead
00:33:46
of a hundred and twenty million informational components have about 60 billion and we have between ten to the twelfth and ten to the thirteenth maybe
00:33:59
even more of these cells in our body and yet only fifty cell divisions happen in
00:34:12
a nine month pregnancy only takes fifty cell divisions to make a baby actually if you multiply it out you realize you only need around 40 and the extra ten
00:34:27
powers of ten are there because during the embryo logical process many of the cells that are not fit in one way or another for the organism as a whole are
00:34:39
killed so things are done by over proliferating testing and trimming to this much larger plan and then of course each one of these structures us
00:34:53
is embedded in an enormous biomass so to a person who's blue contexts might have been biology something like a computer
00:35:06
could not possibly be regarded as being particularly complex or large or fast slow small stupid that's what computers
00:35:21
are so the question is how can we get them to realize their destiny next slide please
00:35:41
as we're using a form of technology that thatman apollyon used which remember those semaphore is across France so that
00:35:55
the shift in point of view here is from mechanic's oh there's this problem if you take things like dog houses they don't scale by a factor of 100 very well if you take things like clocks they
00:36:08
don't scale by a factor of a hundred very well take things like cells they not a new scale by factors of 100 but by factors of a trillion and the question
00:36:22
is how do they do it and how might we adapt this idea for building complex systems okay this is the simple one this
00:36:34
is one by the way that C++ is still not figured out though there's no idea so simple and powerful that you can't get zillions of people to misunderstand it
00:36:50
so you must must must not allow the interior of any one of these things to be a factor in the computation of the whole okay and this is only part of the
00:37:06
story it's not just the cell cell membrane is there to keep most things out as much as it is there to keep certain things in and a lot of I think
00:37:20
our confusion with objects is the problem that in our Western culture we have a language that has very hard nouns and verbs in it so we our process words
00:37:35
stink so it's much easier for us when we think of an object and I'm I have apologized profusely over the last 20 years for making up the term
00:37:48
object-oriented because as soon as it started to be Mis applied I realized that I should have used a much more process-oriented term for it now the Japanese have an
00:38:05
interesting word which is called ma spelled in English just ma ma and ma is the stuff in between what we call
00:38:16
objects it's the stuff we don't see because we're focused on the nowness of things rather than the process this of things whereas the in japanese has a
00:38:30
more processed feel oriented way of looking at how things relate to each other you can always tell that by looking at the size of a word it takes to express something that is important
00:38:42
so ma is very short we have to use words like interstitial or worse to approximate what what the Japanese are
00:38:54
talking about so the realization here and it's not possible to assign this realization to any particular person
00:39:06
because it is in the seeds of sketchpad and in the seeds of the 8th Air Training Command file system and in the seeds of Simula and that is that once you have
00:39:21
encapsulated in such a way that there is an interface between the inside and the outside it is possible to make an object to act like anything and the reason is simply this that what you have
00:39:35
encapsulated is a computer so you've done a powerful thing in computer science which is to take the powerful thing you're working on and not lose it by partitioning up your design space
00:39:50
this is the bug and data procedures data and procedure languages and I think this is the most pernicious thing about languages like C++ and Java is that they
00:40:02
think they're helping the programmer Buy in by looking as much like the old thing as possible but in fact they're hurting the programmer terribly by making it difficult for the programmer to understand what's really powerful about
00:40:16
this new metaphor so that now and again people who are doing time sharing systems had already figured this out as well Butler Lampson thesis in 1965 was about
00:40:31
that what you want to give a person on a time sharing system is something that is now called a virtual machine which is and not that not the same as what the
00:40:42
Java VM is but something something that is as much like the physical computer as possible but give one separately to everybody UNIX had that sense about it and the
00:40:56
biggest problem with that scheme is that a UNIX process had an overhead of about two thousand bytes just to have a process and so there's going to be very
00:41:10
difficult in UNIX to let a UNIX process just be the number three so you'd be going from three bits to a couple of thousand bytes and you have this problem with scaling so a lot of the problem
00:41:22
here is both deciding that the biological metaphor is the one that is going to win out over the next 25 years or so and then committing to it enough
00:41:36
to get it so it can be practical at all the levels of scale that we actually need then we have one trick we can do that biology doesn't know how to do
00:41:48
which is we can take the DNA out of the cells and that allows us to deal with cystic fibrosis much more easily than the way it's done today and systems do
00:42:01
have cystic fibrosis and some of you may know that if you cystic fibrosis today for some people is treated by infecting them with a virus a modified cold virus
00:42:14
giving them a lung infection but the defective gene for cystic fibrosis is in this cold virus and the cold virus is too weak to actually destroy the lungs like pneumonia does
00:42:28
but it is strong enough to insert a copy of that gene in every cell in the lungs and that is what does the trick that's it's a very complicated way of
00:42:40
reprogramming an organism's DNA once it has gotten started so here's one that it is amazing to me that we haven't seen
00:42:53
more up for instance one of the most amazing things to me of people who have been trying to put up on the Internet is that I do not and I'm hoping somebody will come up afterwards and tell me of an exception to this but I do not know
00:43:07
of anybody yet who has realized that at the very least every object should have a URL because what the heck are they if
00:43:19
they aren't these things and I believe that every object on the Internet should have an IP because that represents much better what the actual abstractions are
00:43:32
of physical hardware to to to the bits so this is an early insight that objects basically are like servers and this
00:43:47
notion of polymorphism which used to be called generic procedures is a way of thinking about classes of these servers everybody knows about that and here's one that we haven't really
00:44:00
faced up to much yet that now we have to construct this stuff and soon will be hard to grow it so it's very easy for instance to grow a baby six inches they
00:44:15
do it about ten times in their life and you never have to take it down for maintenance but if try and grow a 747 you are faced with an unbelievable problem because it's in a
00:44:28
in this simple-minded mechanical world in which the only object has been to make the artifact in the first place not to fix it not to change it not to let it
00:44:40
live for a hundred years so let me ask a question just I won't take names but how many people here still use a language
00:44:54
that essentially forces you in the development system forces you to develop outside of the language compile and reload and go even if it's fast like JA
00:45:09
virtual cafe how many how many here still still do that let's just see come on admit it we can have a Texas tent meeting later yeah so if you think about
00:45:23
that that cannot possibly be other than a dead end for building complex systems where much of the building of complex systems is in part going to go to trying
00:45:36
to understand what the possibilities for interoperability is with things that already exist now I was just played a very minor part in the design of the
00:45:47
ARPANET I was one of 30 graduate students who went to systems design meetings to try and formulate design principles for the the ARPANET also about 30 30 years ago and the if you
00:46:02
think about what the ARP the ARPANET of course became the Internet and from the time it started running just around 1969
00:46:14
or so to this day it was expanded by about a factor of 100 million so that's pretty good eight orders of magnitude and there's as far as anybody can tell I
00:46:31
talked to Larry Roberts about this the other day there is not one physical atom in the Internet today that was in the
00:46:42
original ARPANET and there was not one line of code in the internet today that was in the original ARPANET of course if we'd had IBM mainframes in the original
00:46:55
Ark ARPANET that wouldn't have been true so this is a system that is expanded by a hundred million has changed every atom in every bit and has never had to stop that is the metaphor we absolutely must
00:47:14
apply to what we think are smaller things when we think programming is small that's why your programs are so
00:47:27
big that's why they become pyramids instead of Gothic cathedrals next okay here's the other big source
00:47:45
certainly the the greatest single language along with Simula of the 60s I think one with as many profound or more
00:47:57
profound insights list on page 13 of this book that was published in 1962 there's a half page of code which is the
00:48:10
reflective model of Lisp written in itself all the important details of Lisp semantics and the guidelines for how to make a lisp interpreter are in that half
00:48:24
page and it is this aspect this meta reflective aspect that I think is the to me is the the saddest thing about what's
00:48:38
happening with Java when Java first happened I thought well it's legitimizing something that most people have not believed in for a long time which is this byte code approach of
00:48:51
being multi-platform like we had at Xerox PARC it's not a new idea it actually goes back into the into the 60s but when I looked at job I thought my goodness how could they possibly and of
00:49:05
course we know that the history was not was more about programming toasters originally then them being on the internet but my goodness how do they hope to survive all of the changes
00:49:18
modifications adaptations and interoperability requirements without a meta system without even for instance being able to load new things in while
00:49:31
you're running so to me this is the fact that people adopted this as some great hope is probably the most distressing thing to me personally as I said since the ms-dos I mean it represents a real
00:49:46
failure of people to understand what the larger picture is and is going to be next slide so this
00:50:00
notion of metaprogramming lots of different ways of looking at it one of them is that any particular implementation is making pragmatic
00:50:12
choices and these pragmatic choices are likely not to be able to cover all of the cases in the at the level of efficiency and even at the level of
00:50:26
richness required and of course this is standard OOP lore this is why we encapsulate we need to hide our messes we need to have different ways of
00:50:40
dealing with this with the same concepts in a way that does not distract the programmer but in fact it's also applicable as the list people found and
00:50:52
we at Xerox PARC found you can also apply it to the building of the language itself the more the language can see its own structures the more liberated you
00:51:03
can be from the the tyranny of a single implementation I think this is one of the most critical things that very few people are worrying about in a practical
00:51:15
form one of the reasons why this meta stuff is going to be important in such a way that nobody will be able to ignore it is this whole question of how do we
00:51:30
really interrupt operate on the Internet five and ten years from now if you think about it I don't believe Microsoft is going to be able to capture the Internet I think
00:51:43
it's too big I think there are too many people supplying ideas into it and I think that people are going to be sophisticated enough to realize that an IBM or a Microsoft type solution is
00:51:55
simply neither call for nor possible what that means is they're going to be dozens and dozens they're almost already are dozens and
00:52:08
dozens of different object systems all with very similar semantics but with very different pragmatic details and if you think of what a URL actually is and
00:52:22
you think of what an HTTP message actually is and if you think of what an object actually is and if you think of what an object-oriented pointer actually is I think it should be pretty clear
00:52:36
that any object-oriented language can internalize its own local pointers to any object in the world regardless of where it was made that's the whole point
00:52:47
of not being able to see inside and so a semantic interoperability is possible almost immediately by simply taking that
00:53:00
stance so this is gonna change really everything and things like Java beans and CORBA are not going to are not going to suffice because at some point one is going to have to start really
00:53:14
discovering what objects think they can do and this is going to lead to a universal interface language which is not a programming language per se it's
00:53:28
more like a prototyping language but that allows an interchange of deep information about what objects think they can do allows objects to make experiments with other objects in a safe
00:53:41
way to see how they respond to various messages this is going to be a critical thing to automate in the next 10 years next slide so here's a great book how
00:53:57
many people have read this book okay so when they wrote this book I called them up I said this is the best book anybody's written in 10 years but why the hell did you write it in such a Lisp
00:54:11
centric closed club centric way this is a hard book for most people to read if you don't know the list culture it's very hard to read
00:54:25
if you don't know how si los is done it's a very hard book to read this book has some of the most profound insights about and the most practical insights about OOP than anybody has done in the
00:54:40
last many years so I really commend it to you and if there any university professors here who would like to get the next Limoge balloon I will give it
00:54:53
to anybody who rewrites that book so that the general object-oriented community can understand it would be a great service to mankind so what
00:55:08
happened in most of the world starting in this in the 70s was abstract data types which is really staying with an assignment centered way of thinking
00:55:20
about programming and I believe that in fact when I made this slide C++ was not a was not it was just sort of a speck on the horizon was not it's one of those
00:55:34
things like ms-dos that nobody took seriously because who would ever fall for a joke like that next slide please
00:55:49
that's my favorite C++ story is at Apple there is this operating system remarkably coincidentally named pink
00:56:06
it's so great and there are two interesting features of this new operating system that they're working on one was was always going to be done in
00:56:16
two years and you know we have known some really great operating systems designers over over the years and I do not know of any decent operating system has ever been done in two years even by
00:56:32
people who had ten times the IQ of the of the pink people and the other thing about it was that it was going to be done in C++ for efficiency oh let's not
00:56:45
do it in small talk that's too slow well let me tell you there's nothing more inefficient than spending ten years on an operating system that never works [Applause]
00:57:03
[Music] actually the worst ones are the ones that appear to work so let's let's take
00:57:21
our pink plane and we can also use this McLuhan quote my favorite McLuhan quote I don't know who discovered water but it wasn't a fish and he meant us as the
00:57:34
fish and he meant water as our belief structures as our context I believe this is the single if you had to pick one cause of both particular difficulty in
00:57:45
our field and also general difficulty in the human race it's taking single points of view and committing to them like their religions this is yeah this happened with small talk there's a
00:57:58
wonderful quote by Schopenhauer German philosopher of the 19th 19th century who said every idea goes through three stages first it's denounced as the work
00:58:10
of madmen this is what Swift called a confederacy of dunces and then later it's remarked as being totally obvious
00:58:27
the whole time and then the last stage is when the original denouncer is claimed to have invented it that's when it gets in its
00:58:41
religious stage now one of the to me the most distressing thing that happened to small talk when it came out of Xerox PARC was for many respects and purposes that quit changing and I can tell you at
00:58:55
Xerox PARC there are four major versions completely different versions of the language over about a 10-year period and many dozens and dozens of significant
00:59:08
releases within those different versions and I think one of the things that we like the most about small talk was not what it could do but the fact that it was such a good vehicle for bootstrapping
00:59:21
the next set of ideas we had about how to do systems building and that for all intents and purposes when small talk went commercial ceased even though there was a book the famous Blue Book that
00:59:33
Adele and Dave wrote that had the actual code in it for making small talk interpreters and starting this process oneself almost nobody took advantage of this almost no University took advantage
00:59:48
of it almost no commercial in cetacean took advantage of it and what they missed was to me the deepest thing I would like to communicate with you today and that is we don't know how to design
00:59:59
systems yet so let's not make what we don't know into a religion for God's sakes what we need to do is to constantly think and think and think about what's important and we have to
01:00:14
have our systems let us get to the next levels of abstraction as we come to them and the thing that I'm most proud of about small talk pretty much the only
01:00:26
thing from my standpoint that I'm proud of is that it has been so good at getting rid of previous versions of itself until it came out into this world
01:00:38
now one of the reasons we got involved in doing small talk again after for me it was a 16 years of not working on programming languages a couple of years ago we started this project we call
01:00:52
squeak which is simply not an attempt to give the world a free small talk but an attempt to give the world a bootstrapping mechanism for something much better than small talk and when you
01:01:05
fool around with squeak please please think of it from that stand out the damn thing by using its own mechanisms for getting an X version of itself so
01:01:21
look for the blue thoughts and I was trying to think of a way how could I stop this talk because I'll go on and on and I remembered a story I'm a pipe
01:01:34
organist and most pipe Organists have a hero whose name was epower Biggs he kind of revived the interest in the
01:01:49
pipe organ especially as it was played in the 17th and 18th centuries and had a tremendous influence on all of us organists and a good friend of mine was
01:02:01
epower Biggs his assistant for many years back in the 40s and 50s he's in his 80s now and when we get him for dinner we always get him to tell you power Biggs stories and the organ that
01:02:16
epower Biggs had in those days for his broadcast was a dinky little organ neither fish nor fowl in a small Museum
01:02:27
at Harvard called Bush rising a museum but in fact all manner of music was was played on it and one day this assistant had to fill in for Biggs and he asked Biggs well what is the piece that needs
01:02:41
to be played and he said well I had programmed Caesar Frank's heroic piece and if you know this piece it is made for the largest organs that have ever
01:02:54
been made the loudest organs that have ever been made in the largest cathedrals that have ever been made because it's a 19th century symphonic pipe organ work and Biggs was asking my friend to play
01:03:08
this on this dinky little organ and he said but how can i he says how can I play it on this on this and Biggs he said just play it grand just play it
01:03:23
grand and the way to to stay with the future as it moves is to always play your systems more grand than they seem to be right now thank you
01:03:45
you
End of transcript