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