Waiting..
Auto Scroll
Sync
Top
Bottom
Select text to annotate, Click play in YouTube to begin
00:00:09
today is April 10th 2017 I am Hansen Sue and we are here today with Dan angles and so we'll start at
00:00:22
the beginning with our questions where were you born what year I was born in Washington DC and 1944 okay I was there because my father was
00:00:34
stationed at the Pentagon oh so was he working that with the Department of Defense well he was with the OSS he was a sanskrit scholar and as a result into all sorts of languages and they had
00:00:48
convened the crew of people who knew a lot of languages to help with decoding oh that's fascinating he thought it was really fun because they they collected up a bunch of his friends from Harvard and other universities and brought them
00:01:01
all together so so they had a good time together when they weren't you know sort of on the job and the pendant and the decoding challenges were all interesting
00:01:13
and did he continue that line of work after the war yeah well Sanskrit is yes and throughout his life but in a more academic setting rather than a defense yes I would know he would
00:01:27
Sanskrit snotted it's not a live language yeah now he's a professor at Harvard okay there aren't too many places you can get that job right and
00:01:38
your mother what was her occupation she was pretty much a housewife at the time what are their your parents excess
00:01:50
ethnic backgrounds both just um Anglo Saxon progress do you have any siblings yeah so I have two sisters they're both older than me and one is a painter and
00:02:05
she lives in Providence Rhode Island and she also teaches she's taught art at the wheeler school there for a long time my other sister rachel is and she lives in
00:02:15
London and she's a writer she she's written a bunch of novella did your family have any religious or political leanings or affiliations
00:02:30
growing up not really no I mean I think mostly my father's work was deeply connected with his scholarly pursuits and in the family before that I was
00:02:45
involved in running a hotel in Virginia oh that's what my grandfather did Oh interesting so did your grandfather's family have
00:02:56
deep roots in Virginia no well not they spent their life there pretty much after but no it it sort of evolved from his father Rand Renner that's you know
00:03:10
railway funk and and they built a spur up to this hotel in Virginia and developed it and then my grandfather sort of fell into that job he was a New
00:03:21
York lawyer but found himself he was ill and went down to the homestead that's this hotel to recover and and was as he
00:03:36
was feeling better and better he sort of enjoyed the beautiful place all sorts of good country and good sports and he was a sportsman and he was coming back from
00:03:46
a horseback ride one day and was met by some people who said that person who was running the hotel had just died and he sort of fell into the role of managing the hotel and did that for the rest of his life
00:04:00
huh so really fascinating story yes what sorts of hobbies did you have growing up mostly I was a tinkerer so I mean I
00:04:17
guess I played with trains as a kid but I also took things apart as much as I could and put them back together and try to understand them and later on I built a lab and my
00:04:30
in my basement I remember I I would walk to school and and when I started you know thinking about mechanical things and stuff Electrical things there was
00:04:43
Thursday was trash day and I started noticing the trash cans out as I would walk on my way to school then I'd see interesting things in them I started coming back home with these things and
00:04:54
my parents explained that it's not okay to take things out of people's trash cans but they're going to throw them away and they so need so so we we negotiated an alternative solution which
00:05:09
is I wrote up a little card that said I'm interested in electrical and mechanical things and if you have anything to throw away please call me up and I went around the neighborhood handing these out it was a bonanza
00:05:23
people had so much stuff and wanted to do this for a kid so so that gave me hobbies plenty yeah and I was I was not particularly into sports although I really liked the
00:05:36
outdoors I wound up getting into horseback riding and stuff what subjects did you enjoy a school well you can get
00:05:46
sort of math and science prepare you and I the school I went to had a nice nice shop and so I learned earlier than most
00:06:00
kids to you know use torches and lathes and and things like that so and that turned out to be useful later on so I've always liked tools and working
00:06:13
with tools I like to build things yeah I think you I think you mentioned in another interview that you were kind of
00:06:25
like an inventor as a young young age oh I did all sorts of I mean I think of it it's like any other kid I did everything I possibly could but you
00:06:39
know so I built a bunch of things in the basement so one thing I did which is maybe unusual is I played around with that I figured out how to make a carbon
00:06:50
arc and and I was always trying to you know melt things or blow things up that kind of thing in carbon toxic cool they're really hot but I also had a huge
00:07:03
magnet that came from I got its surplus it came out of a magnetron that was part of a radar system and and I noticed that in the in the magnetic field the carbon
00:07:17
arc did all sorts of weird things and so I played around with that and you can actually do things that are a little bit like plasma rocket in there and then I started thinking of sort of what was making it do that
00:07:30
and I went end up putting I don't know why one thinks of doing these things but I put a candle flame in the middle of the magnetic field and then put put copper things on either side and put
00:07:42
electrical signals into it and I found out that I could actually make it make sound it was like a speaker and it was essentially the essence of an electrostatic speaker that I did so
00:07:55
weird things like that and then I was playing it the other thing about the carbon arc was I noticed that I thought that I could take it and focus it with with a magnifying glass on the wall and
00:08:08
maybe burn the wall just as an experiment not that you should do that but this is an experiment and and I got the glass at a different focus and I realized that I could see into the
00:08:20
carbon arc everything that was going on in it so there was a lot like as people do projecting the Sun and being able to see what happens on the surface of the Sun as I actually wound up doing a science fair about plasma a lot like
00:08:33
that but yeah I just I think neither of my parents really thought much about what I was doing in the basement and it was delightfully free I just tried everything I could they
00:08:46
weren't worried about you blowing up the house or bringing it down no I think I wouldn't have done lots of the things I did if they knew because I got later on into exploding wires home where this is where you you get capacitors and charge
00:08:59
them up and then you pull the wire across the contact and and it explodes this is so in Virginia you could buy fireworks but in Massachusetts you couldn't and it was a no-no for me to
00:09:14
work with fireworks and in Massachusetts but this is another form of explosion which just is interesting so and all sorts of things I never thought of it
00:09:25
it's other than a wacky experiment and then I was in a bookstore up in up in Oregon and walked past the bookshelf and I noticed this this title on my shelf
00:09:39
exploding wires and apparently that the whole hold science about it basically military project I guess so how long did
00:09:53
you live in Massachusetts so I I basically let's see I guess as soon as my father got out of the military which would have been like probably 45 or 46
00:10:07
we moved to Cambridge oh and he got a job at Harvard yeah and he had been at Harvard before but I was not I didn't exist in right but so yeah so then I was
00:10:21
I lived in that house basically through college until I graduated from Harvard and then I came out to California to go to grad school okay so and I never lived
00:10:36
again in Massachusetts I loved it there Cambridge is really nice was it I mean okay since your
00:10:49
father was already at Harvard I guess it wasn't as difficult for you to get into her first for college well I don't know I managed to get I got a scholarship so I can't
00:11:02
tell I was doing well in school right good and and the interesting thing is that in four years there I ran into
00:11:12
him on campus once because he spent all of his time around Widener Library and I spent my time over in the physics buildings right and in the dorms right yeah I mean that's that is pretty
00:11:27
fascinating that I mean he was you know Sanskrit scholar ancient languages and you like how did you decide well obviously he had his affinity for
00:11:42
science and experimenting and all these other things it's a child where what did you mean that came from well he had looking back I can see there was there's
00:11:56
a lot more in common between us he was it was really smart how smart I am and and and he I mean he was really good
00:12:08
with words and language and and loud he actually wrote wrote his thesis about indian logic so the under thought about logic and but his his real interest was
00:12:22
in sort of the flow of civilizations and how language changed through that and also all of the there's quite a tradition around Sanskrit literature and and this the Indians were actually a lot
00:12:36
more conscious of using their language carefully in poetry they had theories of and poetic illusion and always thought but but he also he loved to do crossword puzzles I love to do crossword puzzles
00:12:50
and and and he was fierce with them I can remember when I was about I think 14 we were alone I think my parents were somewhere else it was just me with him
00:13:03
staying in Virginia at the time and and he didn't we got two times first the Sunday Times and he said Oh a diagram 'less you want to do this and I had never done a diagram was crossword
00:13:17
puzzle they're fiercely difficult and he just kept going through it so so that sort of the sort of logic puzzle
00:13:29
together with the linguistic thing was something in common man and and we sort of came together around this later on we may get into this but I did some computer work to
00:13:41
help him with doing some analysis he wanted to do a Sanskrit oh wow it was a lot of fun yeah so you started at
00:13:53
undergraduate studies at Harvard in 1962 and finished in 66 and you studied physics what what branch of physics were you interested in pretty much general
00:14:06
physics at the time I didn't have a particular one my my unfavorite with thermodynamics and and I just I was
00:14:20
interested in I took no courses in this but I followed as an enthusiasm the sort of attempts at controlled nuclear fusion and that continues to be interesting
00:14:34
commuted to today it's going to happen yeah so was your first experience with
00:14:45
computers in college or before yeah it was during during college as yes oh I didn't do anything in my undergraduate period until the very last year and in
00:15:00
the last year I had a in the last semester a course in Fortran and and I thought that was cool this is back in the back in the 60s mine too
00:15:15
and before that in the fall I had taken a course with a neat guy there who ran a lab that had an analog computer in it and analog computers are really neat you
00:15:30
get to wire up these functional components that will that will integrate or differentiate signals over time and and you sort of connect them with a like
00:15:40
a like a pig board or plug board sorry and they're live they're just doing what those circuits do and so it's a really visceral experience and they're connected up to just was connected up to
00:15:54
an oscilloscope so you could plot you know one signal against another and do things and I thought that was really interesting and I actually wound up my
00:16:06
one serious foray into hardware I actually built a computer but I read an article about how you could do analog like things with digital computers and
00:16:18
basically it was how you could make a pulse train that had a certain rate of rate of pulses that represented a signal
00:16:30
and and right at that time I had played around with circuits quite a bit probably for a couple of years before that one of the things about living in Cambridge was that there was a great
00:16:45
surplus electronics place behind MIT and I figured out how to get there and get things and so I would get you know old circuits and play with them and learn
00:17:00
about them and right about that time Fairchild had come out with the first affordable chips microcircuits in little plastic packages so all of a sudden for
00:17:13
for a buck you could buy something that ran 20 times faster than the circuits I could get and and it was reliable and easy to plug together so so I get
00:17:26
interested in building something with them and in this course in electronics the professor who is running it had wanted people to do up like a
00:17:38
project at the end so I get the idea to do this thing a little bit like you know the analytical engine but a very simple version of it so I built a thing that
00:17:50
could compute logarithms and their friend and I can I can show you a picture of it the most complicated thing I ever built and and it was kind of a novel approach and there actually was
00:18:04
another company called Wang who were wrong in the area and preferred and actually when I was done they turned out they were building something a little bit similar and so I would have worked
00:18:17
for them that summer except I was going to Virginia but I wound up getting a there was a scholarship and a prize that came with it for that from the New England regional electronic
00:18:30
manufacturers oh but that was a lot of fun I've wanted since that time to do a simulation in squeak or lively of how that worked that was a pretty neat thing
00:18:43
this was the the Wang company that made the the word processing mini computer yeah and they also they had a calculator that they built it was like a scientific calculator so it could do science and
00:18:56
cosines yeah oh wow so then you applied to graduate school at Stanford in lecture engineering yeah
00:19:11
yeah the choice of Stanford actually I applied to several and got into a model all of them and out of school which other schools apply it I'm trying to
00:19:22
think Dartmouth was won and I can't remember what the other one was that but but but I thought Stanford's in California I like beaches I want to go
00:19:37
there done with Massachusetts so I had I had no clue I didn't spend it I wasn't around the beaches in California when I fell in love with in California was the
00:19:47
Sierras but yeah so I came out in electrical engineering because that's what I was into then and got my master's
00:20:00
there but also started taking courses and computers and that's I pretty quickly sort of jumped into computers mm-hm yeah so I think was it around that time
00:20:13
that had computer science become a separate department it was still it was a still a division didn't apply it was a separate department at that point okay and I thought of transferring and and I
00:20:27
might have done that except that I got involved in starting a company instead right okay but I did I took a course
00:20:37
course from Don Knuth right and and I had much money I had a nun favorite part of physics and my unfavorite part of computer science was numerical analysis
00:20:51
I had to take that course but I love Don Knuth work well which supposed to the classes take with him I'm just his basic his first you know first graduate course
00:21:05
in computers but what I loved about it was I always thought that computers were really cool and I liked I liked how you could program them in assembly language
00:21:17
and but it seemed to me it was like a game it was like a puzzle and you could never sort of get credit for that and and here was this genius who had taken
00:21:29
it to sort of the highest level and it was really really respectable work and - I sort of got that connection from the kind of tinkering I love to do with sort
00:21:41
of really good work so that that really kind of lit my fire and computers yeah and then he had he had a graduate seminar that was
00:21:53
involved in measuring the performance of programs and I got really interested in that and wrote a program that would analyze other programs and that started this company that pulled me out of
00:22:06
graduate school so that was just something he happened on too and he had not no plans initially to be an entrepreneur no no I hadn't but I had
00:22:19
but I've always had a kind of a practical streak I want to do things and and making money is a it's a measure of practicality right it's the only it's
00:22:31
the only commercial thing I ever did like that I've thought of other things but was it difficult to decide to leave
00:22:41
the PSD program no I mean you know the things he do they not they're not difficult they're what you want to do though so and it sort of fell together I
00:22:55
guess I can't remember how but somebody hooked me up with a lawyer and a businessman to sort of get a company started and then I went I went around so
00:23:08
this program that I wrote would analyze the performance of Fortran programs and I've got some output from that that I can show you if you're interested sure but it was kind of interesting because I
00:23:20
went around I went around the Bay Area trying to sell this thing and and the I had some successes but the big users of Fortran were all scientific users and
00:23:34
they were in their work was being paid for by the government and my program was about how to make your programs more efficient and use less computer time and save you money okay but the the
00:23:47
scientific users for the most part they wanted to show that their computer was already too busy and so they were applying for a government grant to get a bigger computer so it didn't sort of matter to them so much but along the way
00:24:00
I ran into a couple of businesses that you know businesses that are trying to save money and they were they had their business software was mostly COBOL at that time so I kind of rolled my eyes
00:24:14
and thought well I suppose I could do this for COBOL as well and so in the process I had to learn COBOL and not only that but learn COBOL in such a way as to be able to actually run with the
00:24:25
programs but I did that and that was pretty successful wasn't so and I can remember once al I went to it was safely in San Leandro and they had they had
00:24:39
there that may have been where they did all the processing for the Bay Area at that time I don't know but they had this one program that was using you know hours each week and and I ran my program
00:24:52
on it it was it had they were spending like 90 percent of their time in two lines of program which was clearing out in this big data area and so I said you
00:25:05
know you can you can save the cost of my program next week if you buy it and and it turned out that not only were they doing this thing but it was completely unneeded because they had a pointer to
00:25:20
how much of the area had been used and they just had to reset that oh so that was big success but it was nice because in those days people you know programs
00:25:33
weren't live for people and and my program sort of brought them to life by sort of showing on the original source listening there were measurement programs around but they would give you information in arcane you know like core
00:25:46
dumps and memory locations but this printed the results on the same original source code so you could just look at it and the person who wrote the program could understand what was going on so so
00:26:01
it was fun and I had a fun kind of I think was about a year to when I would be the that sort of traveling salesman and my my my businessman would make contacts like cold calls and then I
00:26:14
would go to places that were inter and and it was fun to show to people because I'd invariably was able to tell them stuff about the work they were
00:26:24
doing so so the company was just you and a business person yeah there was um yeah and a lawyer in alarm yep and and I was basically most event I mean the lawyer and the business and we're really
00:26:39
part-time right and I wound up I wound up selling that that company to a company called capex in Phoenix from who
00:26:52
they were they were one of the companies that had these measurement programs that you couldn't understand so said that was nice and and I had gotten that little bit tired of doing it and and and I got
00:27:06
some money for the sale which was nice I didn't get rich but but it seemed seemed good for somebody who was just out of grad school yeah but there was a so the story goes on a bit from this there was
00:27:19
there was one great you know sort of fortunate thing that came out of this which was I had to so this was in the days when when you know there were
00:27:31
various mainframes made by IBM and CDC and Univ act and and if you're selling a program like this you have to make sure it runs on all those so I would spend my
00:27:43
my night times sort of hanging out in his various service bureaus but he did it at night because the computer time was cheaper than making my program work
00:27:56
on all these various things so so I was at one time at the CDC bureau in Palo Alto getting my program to work and I was another guy there who was doing some
00:28:11
for transfer this is this one was with Fortran I'm doing something with a Fortran Tech and I just started talking to him and it turned out that he was his program was doing
00:28:24
sort of the colonel of speech recognition so it was trying to do clustering of phonemes sounds by their frequency distribution and he had the data and his program and and I said oh
00:28:38
you want to find out what your program is doing I'll run my program on it for you so I did that and we and we talked a bit and it turned out that he had been just tired by Xeroxes new research
00:28:52
center to do speech recognition so we chatted about that and parted but he had my phone number so he called me back in a week and said hey how would you like to come to park and help me do this
00:29:05
speech recognition so that that sort of was the segue into my time at Parc right so so was only after you had joined Park
00:29:17
that you sold your business yeah I think I was just getting rid of it at that time but yeah and that was ok with them but yep oh so you had already been thinking about maybe exiting my business
00:29:30
at that time yeah you know I don't really remember ok yeah I certainly what was going on at Xerox Clark pretty soon looked much more exciting
00:29:44
and interesting and and I was I was making money from the other programs from the other work but but this was a regular job and I liked it right and
00:29:55
close to home right how much how long were you on the the speech recognition project not too long but long enough to
00:30:08
do to do some fun stuff basically when I arrived George this is George white yeah there's an internship but what year was this recognition well it probably was 71 might have been
00:30:23
70 I'm not good about time okay right oh then I guess we could track that down but he had just taken possession of
00:30:35
a sigma3 mini computer which so this was xerox was not that much into into computing at this point i think they had bought XD is SDF yeah and that's what
00:30:51
had been given to George and it had a card reader and then George had a yeah one graphic display and out of that he was supposed to do a speech recognition
00:31:03
system so it was not the kind of system that you'd like for doing that development so so what I did was I sort of using what I knew a Fortran I kind of
00:31:15
built him a personal computing environment there where he could edit his programs submit them and get them to run interactively and and display the
00:31:27
speech data on the screen and then dude I've had I had that I had done a spectral analysis program with four
00:31:39
Fourier analysis before so I added that to it um so so we wound up doing some speech recognition and we had this sort of personal computing environment hacked together from stuff that you know which
00:31:53
nowadays you just have all in your laptop yeah this was spread around this hardware and the idea to do this kind of personal computing environment was that
00:32:05
because you had already been talking with Alan Kay or was that something that you had come up with independently no I it just seemed like the thing to do
00:32:16
you know it's uh I've always wanted to sort of get my hands on stuff and it seemed to make sense to do this and the fastest way to do to work on speech is to it's to get it so that you can edit
00:32:29
the programs they're live and not have to not have to punch cards do that yeah so so I think that was just a natural thing that I wanted to do and I think
00:32:42
George wanted something like that it was pretty obvious what to do yeah so what were the components of it what there was like an interactive text editor yeah so I wrote an interactive
00:32:54
text editor and I modeled it after the one there was one at Stanford so but I mean I didn't have any of that code but but but that gave me an example of
00:33:05
editing commands that are convenient huh so so there was that and then I did the stuff that was needed to go through the operating system so that the minute you were done editing something it would run
00:33:17
it and get you back to edit it when you were done oh that kind of thing and I was I was playing around with I mean most of it at that time that I was playing around with his Fortran because
00:33:31
that's what I had in this thing but um I had a lot of fun with there's a system called meta has done by FAL Sharia or
00:33:43
something like that but it's a compiler compiler and I had done a version of that in Fortran so that you could do other languages in Fortran but but for the speech recognition work we just kept
00:33:55
it to be to be in pure for test what other language is very familiar with well meta if you could call that a language not the evidence of programming language but really a compiler compiler
00:34:09
I had had played with basic and and I had a chance to play with APL some a friend of mine Ted Caylor had worked at
00:34:21
IBM's lab down in Palo Alto and and I got a chance to go over there and play with that and then somewhere I had a chance to use a time-sharing terminal
00:34:35
and I used APL on that and I guess also attempted to use po1 so and then I had done some assembly language coding there was a little HP
00:34:50
mini computer at at the computer science department at Stanford that I had programmed by assembly language and then that I had done a this Fourier analysis
00:35:04
I did a coulis to keep program in assembly code for the 360 I guess it was so you mentioned Ted Caylor had you known him before you came to Xerox I
00:35:25
don't think you know I'm fuzzy about how we came together huh I don't really I don't remember exactly I should get in touch with didn't but he did Ted
00:35:37
remembers everything it's much better than I am about that yeah I don't
00:35:49
actually remember how we came together whether whether Ted independently came to Xerox and we met there or whether he was also a student of Don Knuth I'm just
00:36:02
not sure yeah okay well let's talk about your first meeting with Alan Kay and what was that like well so as a part of working on that on
00:36:19
the speech speech recognition work with George white I had an office next to George's and it was a call it turned out to be across the hall from Alan Kay's office and and I realized after just a
00:36:33
few days that I was often more interested in the conversations that I could hear Alan having than I was in in the work I was doing he just all the things he was talking about sounded
00:36:46
interesting and as you know from Alan he's he has such a depth of interesting side lines to every intellectual topic so eventually I just went across the across
00:36:59
the hall and said so what are you doing I'd like to know more about it and and I think that was a point at which I had done most of what I needed to do for to support George and and George could go
00:37:12
on doing the speech part but that I didn't have a real passion to pursue I mean I was interested in it but so so we we hit it off together pretty well I
00:37:26
think and and and and I know that well Ted and a couple of other people were around at that time and I know that one of the things that Alan was talking
00:37:39
about was doing a doing a small personal computing system and that really excited me because you know I had tried to do that with a roomful of hardware and the idea of doing something that was you
00:37:51
know small and personal and maybe even portable was really exciting and and Alan had also the idea of how to do you know a small language and and I had
00:38:03
thought about that from my work with meta but but Alan had sort of a more concrete picture of it so we arranged so
00:38:15
we started this conversation about you know what could you do have small how could you build a small system and and what would be a good language so there were a bunch of conversations around
00:38:27
that all of which were fascinating and eventually got us to into small talk yeah how you mentioned that Ted and a few others were argue there how big was
00:38:39
the group at that point it was not big I'm trying to think of who actually were there Adele was not there yet I don't think John choc was there I think it at
00:38:52
that time it was maybe just me and Ted but you know when I looked at Alan's history he mentioned somebody else so there may have been somebody else but I remember well we talked about
00:39:08
languages that would be neat what we wanted to be able to build a language that could easily model different different things in the world you know so the notion of classes classes of
00:39:24
object and and if we were going to do something that was a graphical system you'd want to be able to model things like points and rectangles and and there had been some extensible language work
00:39:37
done but most of them got sort of got more and more complicated because of being procedure oriented and if you try to do an extensible language that way it does there's a sort of an N squared
00:39:53
complexity problem you run into with the more different kinds of objects you have and Alan had this idea of doing things by sending messages and I don't know exactly where he got that from but I
00:40:06
know he that's what he that's what he wanted to do and it was clear that if he could build a system that way but actually where that was the fundamental way of programming that you could have
00:40:19
many different kinds of things without having this N squared problem so all of the code that went with with rectangles would be in this class and all the poem all the code to do with points would be
00:40:31
in this class all the code to do with you know drawings would be in this class and so so how did it work
00:40:43
I can remember Alan said you know you ought to be able to do another sort of beautiful kernel like McCarthy's Lisp kernel for for a language like that and
00:40:57
he worked on it really hard for about a week I think there were a number of days he didn't come into work and then and then he showed up with the sort of a sketch of how to do an
00:41:10
interpreter for a language which became Smalltalk 72 right this is the this is a sort of the famous bet that he made with you that he could do a design a language in one page yeah yeah pretty
00:41:23
much yeah and and and it was it was a really unusual language and and it's the coolest scripting language I think in the world and and if I were teaching you
00:41:37
know a computer science course I would have all my students implement a language like that because the way that it worked well it worked a lot like meta
00:41:48
actually so it sort of was parsing while it the program was parsing while it ran so you know conventionally when you call a procedure you give it arguments and
00:42:02
then you could procedure computes a result and gives back ER gets back the result and in in Smalltalk 72 when you when you called a procedure the
00:42:14
procedure got not just an argument but the entire input stream whatever else there was in the program and it could then decide what to do based on that and it made made the sort of kernel
00:42:29
interpreter incredibly simple and and it subsumed all that there was no compiling to do it just ran so in that sense it was fairly Lisp like but it had sort of
00:42:41
more generality to it so then so that was small talk 72 that very first sketch
00:42:55
that Alan sort of wrote up so he's in both he and you had mentioned that you then took that sketch and you wrote the very first version of small talk made
00:43:09
'basic yeah yeah so I wanted to I mean you know there it was and you could sort of look at it and imagine how it might work and so what I immediately wanted to do is to make it work and at this point
00:43:22
I was wanting to work at home because I had a young child at home and and the only thing that I could get to work on at home to work with at home was
00:43:35
a time-sharing terminal it ran basic was least the only easy thing so that's what I did so so Alan had gone away for about a week figuring out how to do this thing so I went away for about a week and
00:43:49
wrote a basic program that essentially did all the kernel interpreter and made it actually run and and I remember I can remember it running six factorial and
00:44:02
and it all worked so that was a that was our proof that you could you know that this kind of interpreter could work we hadn't tried out anything with points and rectangles and graphics or any of that but it was clear that it could work
00:44:17
so that said to me I could take the next step and try to you know start to do do a about sort of a production version in assembly code that's what we would have
00:44:31
and there was I think at this point Ellen was negotiating to get to get Altos build and and we could sort of see this this future that I think at that
00:44:46
point it was known that the Altos would would be emulating the data general Nova instruction set and there were a bunch of Nova's around a Xerox PARC so I got
00:44:59
it set up where where I had one of the one of the Nova's reserved for me with a telephone hookup that I could log into from home so then I could I can now do that work at home so then I started
00:45:14
doing a production version of it and there was lots more work to do I had to do simple tables and garbage collection and all that stuff but we got to where that ran and the timing was nice there
00:45:28
because I got that running right at about the time when the toes were ready to start trying stuff out and then we had graphics to play with and yeah and and by that time Ted
00:45:42
Caylor was involved in the project and Diana Mary so Alan had Diana Mary working on some of the graphics and Ted were working on as he did the turtle
00:45:55
line drawing so I would Oh Diana was freaking mainly on text okay and and then Ted worked with me on storage
00:46:05
management Wow so then so then the I'm try to remember the Ted was you know Ted was somehow he had been a student of Don Knuth I know that's what how we have
00:46:21
that's how we came together and that's how we both were working on storage management cuz that's a lot of a lot of done sort of basic data structure stuff went into Smalltalk 72 okay it was great
00:46:35
you know this project was it was it just it just generated perfect problem one after another right our typical Don Knuth problem so it's just a very
00:46:49
natural application of all those principles from his course yes so then so and Diana had had joined the project at that point remember do you remember sort of how Allan had recruited
00:47:10
her not at all okay not at all okay but it was a great group a bunch of wonderful personalities everybody was so supportive of everybody else and and so
00:47:26
you Ted Diana were the only sort of permanent members of the group because I think there were other there are other people that were graduate students yeah and you know Ted was a graduate
00:47:40
student in there but somewhere in there he he got his his degree from Carnegie Mellon and then was permanent and I don't remember exactly when that
00:47:50
happened okay how did how did the how was it sort of decided that who would work on what was just whatever people were interested in or I think we just
00:48:04
sort of fell into a natural organization so you know Alan knew what he wanted I knew what what I wanted for the sort of the architecture and the engine and and
00:48:19
then we work together so Alan Ellen worked with Diana telling her what he wanted the text to do and you know getting scrolling and working things like that but she would come to me with
00:48:31
problems and I'd help him Ted would we'd all help out and Ted was was just naturally good with all sorts of like detailed work which if you want to do
00:48:45
line drawing on a bitmap display and nobody's done that before a detailed work and I don't mean nobody's ever done that before but it was it was new
00:48:56
territory but I think I think I coordinated that pretty much and and got
00:49:07
things to fit together yeah I think in its in retrospect Alan sort of caused that original version of small talk that
00:49:23
I guess when either it wasn't either the basic version of the Innova version would he calls that small talk 71 and then did one that ran on the alto with small talk 72 is that categorization
00:49:36
kind of correct or is that kind of a funny well no I know I felt that that the original basic version and everything that came after as is basically being
00:49:49
small talk 72 Oh from the get-go okay and Alan had small talk 771 never got done never ran but it had been a design
00:50:01
that Alan had that was different in a couple of ways oh ok but but the same basic thing oh ok yeah cuz I think I remember his history small talk paper he
00:50:13
said he was working on an iconic language before the before you guys made the bet so that was the design where would have been to design us so that's my gift yeah so I never I never sort of
00:50:27
really looked at it seriously or understood it seriously and that's Alan would know about that and I don't really write yeah I think he had some ideas
00:50:37
that never got done yeah but but small talk 72 wound up supporting the kinds of things he wanted to do and it was iconic to a degree but yeah so we invented
00:50:52
various special symbols to look more like what you'd like what they meant okay a special character is that really in the language yeah earlier you mentioned how the the
00:51:10
language essentially parsed whatever input was coming in I think Adele Gerber Goldberg has told us that that made the
00:51:22
language of very context-sensitive was that did that make the language harder to use for certain people certain users
00:51:36
no I don't think so um it was a beautiful situation so it made it a better language and a worse language and I'll explain that so okay so yeah if
00:51:50
when when a function got called it it got control over the entire rest of the program and so it could parse it as it wanted and this was when we could not have done
00:52:06
what we did without that ability in the following way which is it meant that you could just with this sort of function oriented language we very quickly saw
00:52:17
how to make a real message oriented language so so we had there were a couple of primitives for operating on the message stream that would matched a
00:52:30
token so it made it possible and I could show you some of the programs at another time but but it made it it easy all of a sudden for supposing you had well to
00:52:44
take the example of seymour pepper two turtles if you are writing the code for the turtle you you could do you could test the message stream and see if there
00:52:57
was a go or see if or if the next token was turned and then if it was go then you would do the following thing which is draw a line if it was turned then you would do the following thing which is to
00:53:08
you know change the direction and if it was print do the following thing which would print out the location or something so without there being any
00:53:19
message apparatus in the in the underlying engine this allowed you to write programs that were essentially message oriented so we right away fell
00:53:33
into that pattern and I think that was basically Alan had been exploring that kind of pattern with small dog 71 I think so so that gave us a lot of
00:53:46
experience writing programs that were message oriented that were object oriented and it also allowed it made it easy to make idioms you know in other
00:54:00
words if because you could put you could put other words in there that weren't needed you know like for instance on a for loop you know you might just you might just give it a couple of numbers
00:54:13
for the start in the end but you could also put in we called buzz words which are ignored tokens so you could say for I from you know 612 you don't need those extra
00:54:24
names but you put them in and it reads so that you can understand it so that was that all fed into the later small talks and years of the style and and
00:54:35
what was what made them more readable that was a good side there was a bad side there work well a couple of bad sides one was it ran very slowly because
00:54:48
if what the program wasn't just executing was having to essentially two parts on the fly so it was not compiled and in fact it was not compiled a bull
00:55:01
because you couldn't tell you couldn't tell what a pattern in the in the program was going to do until it actually got called and got parsed and
00:55:14
that also meant that you couldn't read it huh although you know we had a style of writing but the programs were all generally readable but you could come to a place and you would not know what this
00:55:26
token would do and and this was a turn that we had one case where it was a real problem which was we were trying to prepare some demo and we brought together programs from three different
00:55:39
sources and one of them changed the definition of how numbers parsed and then and then the other ones wouldn't run at all hello so it's known that it's not a good
00:55:51
design but it was it was a wonderful design for research it made the language like putty and we got to explore how we would like it to be as users and that
00:56:03
then informed the later small talks right so it's like the I think Allen wrote in his paper that it was too extensible like it was great because it
00:56:16
was so extensible you could do whatever you wanted and it was almost like every every different function had its own syntax that it would define and but they were all different and so
00:56:28
they could be totally inconsistent yeah which made it completely unreal it could be if I well except it could make it completely unreadable good but the truth is you know if with a bit of care
00:56:40
right now it was actually very readable so very natural language the kids never had a problem with it but they weren't putting together big pieces of software
00:56:54
right oh so you mentioned you mentioned the kids how much comically involved in in those experiments with with a kid not
00:57:07
a lot so I did it was great having the kids around and I would I would see what they were doing and sometimes I would you know I would answer a question or or
00:57:19
maybe take somebody and get them started but I was not so much involved with that and Adele really ran that show and others of us would sort of feed in to
00:57:36
that you know as part of the instruction but she had the real background and and also I was interested in seeing what the kids were doing and helping them in a small way but I wasn't I wasn't you know
00:57:51
on any sort of proper curriculum for the classes or anything like that right yeah I did you know when there was something that was needed you know it would be nice if we could do this I would right away figure out a way to do
00:58:03
that and support it so they would generate things like requests feature requests for what the language and you would influence them yeah well for them the usual feature clips and bug fixes so
00:58:19
of course by that point Adele had joined the group well what was what was it like you know what when she joined and how did that sort of change the the dynamic
00:58:31
of the group it didn't change the dynamic too much she really you know I think Allen had sometimes said that he brought the group together by finding sort of people for
00:58:44
each part of his passion and Adele met the sort of educational engagement part and it was I never felt it was anything new to us because I felt that we were we
00:58:58
were doing this so the kids could use the computers and could do cool stuff and then there was Adele introducing kids to it and doing cool stuff so it didn't it didn't change the dynamic much
00:59:11
and it was we had a fortunate set of personalities there was very little ego and and you know I think Adele had her purpose of how things ought to work for
00:59:24
that for doing an interesting educational experiment I had I was very clear about what have the engine had to work and how various heads work in Diana
00:59:35
should fit in you know and and Alan had his sort of overall mmm tyrion passion threat and and he would give public
00:59:47
talks that sort of pulled this stuff together and and made demands on us allons allons demos were a great part of how our group worked um its we often
01:00:01
talked about it being show business and it really was you know it's there's a performance coming up and we've got to get this and that and this and that ready and and there was always that
01:00:14
Helen had a kind of a flame out the front what wanted to happen and so it caused us all naturally get to get behind that so was that sort of the way that he
01:00:27
drove grow things was oh we want to do a demo and the demo needs to have X Y Z and that was sort of the vision that everybody was aiming for yeah I think so
01:00:40
I mean I kid that's my general feeling about it yes although it kind of worked both ways the other thing that would happen is that we would just do cool stuff and he would see it and pick it up and it would
01:00:53
become a part of its demo Tina right what was he sort of like as a leader or I mean I guess managers maybe not the right word what he did but what he was
01:01:09
pretty much a hands-off manager but he was interested in everything and and he he understood what each person was doing and he would he would challenge you but
01:01:20
and also feed you good ideas so he read really widely and new sort of all the other work being done in various systems and all the other languages and and various solutions that had been used for
01:01:35
to do this or that in other systems so that was good you know that meant that we sort of would pick up bits and pieces that were useful yeah what did you and
01:01:50
as well as the other people how did you interpret Allen's vision and and what was it about that vision that sort of
01:02:01
you were so passionate about I think the just the feel of real personal computing I mean it wasn't it didn't exist before
01:02:18
really you know you had time sharing systems where you could have your own individual thing going but but the vision here was to have real graphics
01:02:31
and dynamic graphics and and a language that you could see in change and somehow from the very beginning we all thought in terms of everything being live you
01:02:43
know and there were there were other systems that were like that the main other system like that in the world was lived and those systems were live but there wasn't much being done in lists with
01:02:57
graphics at the time and and Alan's totally had that vision and and there was this is also just when bitmap screens were coming into the world that
01:03:11
really happened right around end and that suddenly made all sorts of things possible that weren't before so there was there was just a host of things
01:03:23
waiting to be invented how to do this or how to do cool stuff with text and bitmap displays yeah so then obviously graphics was was always part of that
01:03:37
it's a central part of that vision yep what's so much fun basically and especially it was all just happening that it was all new and graphics and
01:03:48
sound as well though that so we did we played around with music we had we did music synthesis on they we even got that
01:04:02
working on the on the Nova's before the Altos were working and and when the alders get working they were micro coated and so they gave us quite a bit more power so we could do
01:04:13
you know we could do on the Altos like 10 or 12 voices in real time synthesized yeah and we so then it's well in small talk we could write a music editor in
01:04:27
and do that right yeah so then the I mean the transition to getting it working on this on DL small talks on me to avi Alto was to rewrite the the
01:04:41
kernel of the language in the Altos microcode yeah you know the the first small talk 72 that ran on the alto most of the small talk language kernel just
01:04:56
continued to run as Nova code oak and we had we there was microcode there to do um to do just a few things but but at first it wasn't we just moved the Nova
01:05:09
Code program over it only the graphics was done in Nova code and it it wasn't super fast but it was fast enough you know try out various things we had a
01:05:20
text editor working and we did we got turtle geometry working so I guess because he had already you had because you had known that they also would
01:05:34
emulate the Nova and you have a Nova's he had planned planted out that way they it was right there for the Nova first and then it would all port naturally over yeah and then you could rewrite bits and pieces of it in micro code as
01:05:47
as you saw performance improvements yeah yeah yep and the the early Altos didn't have a lot of extra space for microcode
01:05:59
anyway so yeah so then which which bits did you did you end up writing rewriting and microcode that worked well so coming
01:06:12
on into the next generation they would have moved to small talk 786 right and then partway in there we also had small talk 74 and we can talk about these
01:06:27
various parts and then I did bit blit right kind of independently in there okay it first ran connected to small talk 74 okay right and then and then in
01:06:40
Smalltalk 76 right okay that's right so we'll get into that a little bit later see so the mentioned earlier that you
01:06:53
know the language being live the way that list was live I guess another word for that is dynamic sort of was was that
01:07:07
in the idea that the user could interactively change anything about their environment um what why was that so such an important part of the vision for the for
01:07:22
the the language in the environment well let's see there are a couple of things about it one is just in terms of the
01:07:35
that work and a reward cycle of doing programming if if some if you make a change and you get to see its effect right away then if you if you've got to make five mistakes before something
01:07:48
works you know you're done in a minute instead of you're done in two hours and so this is a you know this is a really powerful thing in in sort of live
01:08:01
computing about a message oriented system about object oriented programming which is that essentially every time any procedure is being called in the system
01:08:12
it's being looked up whereas in in a conventional compiled system all of that stuff is done ahead of time by a compiler and a loader and you cannot change it so you make a change in your
01:08:26
program you have to go back and recompile everything and reload it tough but if the system is put together by sending messages you can change it on right in place and the next time the
01:08:38
next time it executes it'll it'll do the new thing without any problem so so this is something that just couldn't be done other than this way and if it if you organize things by extending messages it
01:08:52
was effortless and so an interesting thing happened with you know our group was the learning research group at Xerox PARC and there were a couple of other groups and there was the computer
01:09:04
science group and they were doing serious you know programming language research and work they worked on BCPL first and then Mesa and these were
01:09:18
compiled languages that you had to compile and load so and we had these there were these meetings at that were helped by that lab that was under Bob Taylor called Eaton called
01:09:29
dealer and it was called that because each week somebody got to be dealer and sort of talk about something but they were it was very much of a sort of a brown-bag bring your lunch and we'll talk and so people talk about good ideas
01:09:43
and and our group we were at heart all computer scientists it's just we were sort of the rent agree renegade kids group and but we come up with ideas and or they would come up with ideas and
01:09:57
we go back and that afternoon get it working because our system ran incredibly slowly as well talk seventy-two at the time but but the turnaround time if you made a change the
01:10:11
turnaround time was about five seconds before before you had the result whereas they were working with the system that you know had a very long turnaround time so frequently we could try out some cool
01:10:23
hack and have it going you know that afternoon where they just wouldn't even bother trying because it would take too long to try so and that was a nice thing I think we sort of pushed them and in
01:10:37
the created creativity way and and they challenged us in that kind of serious software way right that's a nice relationship yeah could you talk maybe a little bit more about that kind of
01:10:48
collaboration that the lrg had with the computer science lab yeah well so that part with social you know and and there were various people that kind of there
01:11:03
were various bits of respect went across that boundary and the but not at the level of collaboration so much as you
01:11:16
know in the it was more like communication and social things but there was serious collaboration in terms of the underlying systems there so the
01:11:31
computer science lab did do really serious work about the getting the internet to work and getting excuse me the Internet the
01:11:42
Ethernet and getting the operating system that was first working on the Nova's and then the operating system that would that ran on the Altos that they ported that over also and they and
01:11:56
the printing facilities which all of which we used and that so that was great I don't think they used much of our stuff except well bit blit is a big
01:12:09
counter example to that but but but I think we you know we helped to generate ideas and the user interface so we showed a lot of nice user interface stuff that we explored in small talk
01:12:23
before they got that working so that you guys had already prototype it in small talk yeah at least and they took those ideas and implemented it yeah mase are cedar or whatever else so so very early
01:12:37
on we got we got a windowed you know a window user interface working that was something that Alan worked on locked together with Diana Mary before there
01:12:51
was even bit blit support for it [Music] so then the so what the Allen getting the sort of that iconic well that's not
01:13:12
the right work sort of the classic windows overlapping windows menus interface that was how much of your work
01:13:27
was involved in in getting that graphical interface I've been running so um so I've worked
01:13:37
on all of that the the one thing that that sort of was distinctly mine with my work was the work on bit slit and that and the debt enabled later on menus all
01:13:53
right but we had it's interesting how the menus evolved so so we did in Smalltalk 72 we we just had a simple
01:14:05
sort of a of what people call now a triple windows a simple window where you could type expressions in the language you know and make things happen and do your programming there right well by
01:14:15
opening a rebel read eval print and then John Jacques who had come onto the group did a simple sort of code editor and I
01:14:29
worked several of us worked with him on that but he he had made one where there was a list of commands on the right which was essentially a static menu but it was a part of the box so over there
01:14:42
you could you could you could select in the code and then you could say replace and it would do that or insert that kind of thing and and when I got bit blit
01:14:54
working which we may talk about it was clear that we could do that kind of of a menu of commands and bring them you know pop them up and have them disappear sort of anywhere we wanted to use them
01:15:08
so that that was how that flowed so there was the basic idea of a list of commands it's pretty simple that you can point out with a mouse and then and then the idea that you the ability to sort of
01:15:21
pop that up without destroying what's underneath became became easy to do with bit slit I mean it could have been done any time but it would have been really
01:15:34
hard without that kind of help right I say so we we mentioned the word object-oriented earlier what what does
01:15:49
that term mean for you or what did that term mean for you've had so object oriented to me means that processing happens by sending messages to objects
01:16:01
essentially and it allows the system to be partitioned according to different what used to be called data types but we call them classes now and if that if the
01:16:15
code is separated that way it makes the system much better much better organized and you don't run into this problem this is an example problem with not having
01:16:29
things organized that way is supposing you want to add some new thing like rectangles to your system a data type of rectangles well you want to be able to
01:16:42
print them and so to do that you that would mean that you have to go to the system print routine and edit it in to gives a special special code for how to print a rectangle but the profit there
01:16:56
are several problems with this the first is that all of a sudden you're having to edit some big system procedure that knows how to print all the other things in the system so it's complicated another thing is that you may make a mistake while doing that in which case
01:17:09
you crash the whole system because that routine no longer works and everybody else is depending on it and if you if you organize things by
01:17:21
sending messages then all the operating all the sort of kernel has to do is to send a message print to whatever object it is so that part of the system is really simple and nobody needs to mess
01:17:34
with it and then if you you and right in describing rectangles you just write how to print the rectangle and you're responsible for that code if you mess up doing it your rectangles won't print but everything else will still work just
01:17:48
fine so that problem of having the central routines have to deal with all the data types is a it's a scaling problem which is you've got and you may have several
01:18:00
of these things that have to know about everything else and so it's really an N squared complexity problem and if things are message oriented it's not you know scaling just goes as as the size of the
01:18:11
system right so that's that's kind of what it means to me and there's there are a bunch of sort of deeper aspects to it but the the feeling we got as soon as
01:18:24
we got small talk-- working it's sort of not exactly an emotional feeling but just a feeling is that it's like it's like having a bunch of I describe it a paper as a bunch of trained animals
01:18:37
seven up here you you have these various parts of the system and you and you give them each their proper behavior and and they just can then interact and it's
01:18:50
just a very natural way of thinking about things in it and that whole feeling goes together with this live saying where where things everything on the screen is live and you can change
01:19:01
while it's running yeah come and that that grew into the whole field of object-oriented programming that's where you know sort of use you see it now I
01:19:15
mean there's c-sharp at Microsoft and Objective C at at Apple and those those all grew there's a direct lineage of
01:19:28
Objective C from small talk yeah I think one I think we are maybe
01:19:41
what I think one interesting difference about sort of yours and Alan's view of object-oriented programming versus I
01:19:54
think what a lot of people often think of it as is message passing is for you the central the the core organizing principle other people sometimes think
01:20:06
of inheritance as the organizing principle but small talk subjects you didn't even have inheritance and but
01:20:20
that was on your list of things to do at sort of when you're working on small talk-- zombie - why was that not a big priority for the language the time it's
01:20:33
a good question you know um I think I've had it correct it did yeah I think there are a couple of reasons but I think the
01:20:49
major reason is we didn't need it at first you know and and if there's a big comparison to be made between what we did and what simile did is we got stuff running and and we got it running
01:21:02
dynamically and things could evolve really quickly and be done really simply so that was kind of our focus the similar work a lot of it was you know
01:21:13
really good deep stuff but we got a huge amount done in a very short time by invite sort of taking the simpler path so we didn't need it for what we were
01:21:27
doing we were doing quite simple stuff which is graphics kids programs and and the support of the system itself which was pretty well organized and therefore
01:21:38
pretty simple and another thing is that certainly for the kids we worked with inheritance is another thing you've got to learn about it's something that goes on that you can't see right and that and
01:21:53
even if we had had it I would have tried to keep it out of the kids area frankly I don't know how everybody else feels but my guess is they'd agree and it is
01:22:06
it's useful and but and and we exploited it completely in Smalltalk 76 and 80 you know and and there's a wonderful play but we can talk about this is a huge
01:22:22
synergy between inheritance and the polymorphism that that message-passing gives you but but it's also the case if you're just teaching some somebody about
01:22:34
inheritance well then pretty soon you wonder well aunty there there's you also want to get into multiple inheritance and it just it can get very complicated and there's a much simpler world that I think is appropriate for starting out
01:22:47
for teaching kids certainly now we did run into by the time small talk 72 was getting mature you know we had the whole
01:23:01
sub scripting package for arrays it had a lot of nice features that you could do sub ranges and replace sub ranges and all this stuff and we wanted to do the exact same thing for character strings
01:23:16
okay so there was so there was a piece of code that was in that that was in the the character string place that that we just copied directly into the arrays to
01:23:30
keep them consistent and they were the same and so it behaved it so they both inherited from something that knew about subscripting right so so it was clear that we wanted that we as computer
01:23:43
scientists but you know the kids don't think about that you know right yeah you've mentioned also that you actually were glad that you did not know lisp when you implemented a small
01:24:01
talk for the first time and that led you to well you felt that small talk actually was better for it well who knows who knows and and I didn't know
01:24:15
what I was thinking when I said I was glad but okay but you know things went the way they went I can imagine some things if I had if I
01:24:27
had been into lift I'm just not sure the you know small talk it is we learned so much just by doing what we did with small talk 72 and
01:24:40
it might not have even mattered if it was based on live but the thing that the thing we did learn is this style of describe how to code with dispatching on
01:24:52
messages and just describing objects that way and in the sort of buzzwords that made things more readable and that that just you know I had there came this
01:25:07
time when I I was trying to figure out how to make things run run faster and it was well this is rambling a bit but you know we did this system called Smalltalk 74 in between we can talk a bit about
01:25:19
that but it was sort of like a somewhat better job of small dark 72 but through that time I was kind of distracted because it wasn't what I wanted I wanted
01:25:31
something that would be an efficient compilable engine that would still have the nice properties of Smalltalk 72 and I you know it just kept not quite coming
01:25:45
together and then all of a sudden I saw how how it could all come together and and syntax the language was this keyword-based syntax which preserved the
01:25:56
nice quality of Smalltalk 72 and its buzzwords so that you had a much more readable separation of parameters and I have a feeling that to
01:26:08
have done that in with a list background I think I wouldn't have ever maybe done that oh I say who knows yeah now there's another way in which which
01:26:20
isn't exactly from Lisp but but it's a germ in there which is at that time I knew that Peter Deutsch had done a bite coded interpreter for Lisp and I didn't
01:26:34
really know anything about it except this phrase bytecode interpreter was bouncing around in my head because this was by the time that that we had access to the alto microcode and so making a
01:26:48
bytecode engine made a lot of sense because you could have you could get the compactness of compact encoding and yet have the microcode speed to interpret it so I had that going over in my head and
01:27:01
that's that sort of led me to the design of the the bike coded virtual machine that it became small talk 76 okay I say yeah and that just sort of all came
01:27:13
together at once and it's why I like we can talk about Smalltalk 74 and there are some advances that were made there but it about the only thing we ever really did with it was to simulate
01:27:27
Smalltalk 76 before I got it running okay so the idea is for 76 were already brewing while you were implementing 74 essentially yeah okay and so Dave Robson
01:27:40
was did the Smalltalk 74 work pretty much oh okay so I didn't do much of that okay yeah so then what were the so I
01:27:53
guess let's let's talk about small socks done before then what were the like the major advances in 74 and you know as a sort of an interim between the 72 and 76
01:28:06
yeah so the the main thing is I see it was that we had a a proper sort of message object you know
01:28:20
in Smalltalk 782 when a function started running it came along with a message stream which was just basically a pointer to some code and a an index and
01:28:33
we had primitives for accessing that stream so there was a primitive that would give you the next token there was a primitive that would match the next token against something and in things
01:28:46
like that and in Smalltalk 74 those didn't need to be primitives because you could actually there was this other object which represented the message
01:28:59
stream and those functions such as match the next token or pickup the next token or evaluate the next token those could all be written as more small talk this
01:29:12
did not make it faster it made it more general and more sort of described right and I think that we also had a model for the sort of stack frame as it were there
01:29:25
and and I believe that we made classes real object classes were really object before but in small fact 782 you you couldn't send messages to them huh and I
01:29:40
honestly I don't remember whether we had that working in Smalltalk 74 or not because yeah yeah so you mentioned that
01:29:52
Dave Robson did most of that implementation work the but the ideas for those designs did they come from from you or from other members
01:30:05
of the group have we talked together about it right I mean I think the main people talking about that were Dave me and Alan okay yeah and so we've been
01:30:16
skirting around bit blit also know bit also came around so let's dive into that okay all right so so yeah tell us about how how that
01:30:29
first started coming about okay yep the idea for that see I think it was driven
01:30:40
by let me just so we had a bunch of separate pieces of graphics code in small talk so we had Diana's work on
01:30:54
text and her work on text there was an existing text primitive in the Alto so she didn't do that but she did do the management of text frames and having
01:31:11
multiple text frames and being able to scroll and being able to move move things around and in as a part of doing
01:31:23
that on a bitmap screen she had to deal with all of the problems of you know if if you want to move things over three pixels underneath it all the graphics is
01:31:35
oriented in on the alto 16-bit words and so there's a huge amount of shifting and masking that you have to do to make that works a lot of work so she had a big pile of code that dealt with that and
01:31:48
then take a l'heure had written the code for the for the turtle line drawing for line drawing and it's the same kind of problem of having to deal with our
01:32:00
Potrero alignment and 16-bit words except more oriented towards line drawing so that where you're just doing a couple of pixels here and then moving
01:32:10
to another place and and so I started to think of how could we pull these things together and I think that at that time I think I
01:32:25
had that note taker in mind but I'm not sure oh well it doesn't make sense with regards to time yeah that's the thing but there was something that made me what would there
01:32:37
was some reason that we had to move the code and I didn't want to have to rewrite all of that stuff but anyway let's let's get back onto the track so anyway I came up with the idea and I've
01:32:49
got a picture of it it would kind of illustrate it but there were first of all to do all the shifting and masking in one place and and and to come up with
01:33:02
a routine that's general enough to do large areas or small areas and to do the shifting and masking needed and and put
01:33:15
that all together in a way so it needed to be parameterised so that it could do each of these functions and it also wanted to be able to do any of the store mode so whether you wanted to store
01:33:31
blackened into the into the destination or or it or XOR it so those were all things that we used in different cases and I actually I think yeah where I know
01:33:47
now which was that I wanted to get this was it now we're on the alto with micro code available so I wanted to get a function that that was small enough to go into micro code that we do all of
01:33:59
these things and I also came up with a way to do it with not needing any temporary storage space so some of the routines that had been used in Dianna's text frames required fairly large
01:34:13
temporary storage and I figured out this way to do it without any except for one register so that that we then tried out in Smalltalk 74 I think for the first
01:34:28
time and we first simulated it in small talk I did and then and then I learned enough how to microcode to do it and wrote the first Alto micro code for it
01:34:42
and it was really neat because in addition to things like the scrolling of blocks of text and line drawing we actually could do individual character placement
01:34:54
and it it allows us to have more general text fonts and have fonts that were stored compactly because you could you could pick up a little piece from
01:35:07
anywhere so that was bit blit and and that was that was a case of I remember we gave our first demo of it to the computer science the guys in the
01:35:22
computer science lab and the particular demo that struck them was I had at that time I did a pop-up menu and because it was now easy to pick up a piece of the
01:35:35
screen and save it in a small talk object and then plop a menu down and then put them back it made it possible to do this thing which seemed like magic so which is boom there's something on
01:35:48
the screen and way it goes and and I remember giving the demo of that the first time I did it put up a pop-up and you Peter Deutsch said did you just do what
01:36:01
I think you did and and that was a case of really great tech transfer between the two labs well in all of Xerox actually because I remember the next day
01:36:15
smokey Wallace came over from the product division and he said hey I want to know about fiblet and it made the difference that I had you know I mean I
01:36:27
was working in the small talk group and we were not considered to be sort of producti people but this was real technology and I had taken it not just to running in the Nova code which might
01:36:39
have been okay but it was actually micro code in it it ran really fast that I'll say a few words about the micro code which is one of the cool things about
01:36:51
micro code is that you you have a chance to execute several instructions between memory cycles of the host machine and and it was perfect
01:37:04
for bit blit because the kinds of shifting and masking you had to do could all be done in the time between memory cycles so a lot of of the graphics
01:37:17
operations we wanted to do were complicated because they had to be moved over like seven pixels or something but that could all be done under the shadow of the memory cycle so that you were
01:37:30
able to move things at full memory bandwidth even though they're doing they're not they not placed right and the I think the mark that the microcode
01:37:45
architecture forced a couple of these things to come into being which it basically says to you if you can think of a general enough small kernel then
01:38:00
you can put that in micro code and it'll run five times faster than anything else so it's really motivating to do that and that also drove my wanting to do the bike coded virtual machine for small
01:38:13
talk because I could see that there's another case of where we're interpreting instructions and so the time to pick up the next byte and interpret it and figure out what to do can all be sort of
01:38:25
hidden under under the memory cycles yeah so it's it's so it's good for graphics and it's good for language interpretation right it lets you sort of tailor the machine yeah like give a new
01:38:38
instruction set to the machine yeah I mean you've called think you've called that a graphics kernel so to you a kernel as anything that can encapsulate
01:38:53
some fundamental well how do you define a kernel how how do you what to what is a kernel to you well um I guess a colonel is kind of
01:39:10
it's a relative term so I think of it as being a bunch of functionality that goes together and it produces a new not quite
01:39:22
a new metaphor but a new way of operating so in the case of bit blit that was a kernel that meant that you could suddenly work with bitmap displays
01:39:34
in a very high-level way you know you say move this rectangle of stuff from here to there and you don't have to you don't have to worry about what the pixel alignment is on the words so it it sort
01:39:49
of civilized that piece of the hardware and the and the kernel of the small talk virtual machine basically said here here
01:40:04
is here's a piece of code that will make all of this high-level code work at as fast as it would have if the machine had been designed with that instruction set
01:40:16
so it's sort of this allows you to work with sending messages to objects where you know where you couldn't do that before and you can imagine other kernels
01:40:29
such as for storage management garbage collecting that kind of thing and I mean but what ultimately is such a fundamental component of 2d graphics I
01:40:49
mean eventually it was described in three with the the graphics textbook that was this Bob's brow bugs Brown yeah
01:41:03
and the other co-author whose name I can't remember wrote is it Newman I think so yeah yeah I mean how did you feel about you know your
01:41:17
work being sort of such a fundamental aspect of of graphics that would essentially be learned by all future
01:41:29
people doing graphics yeah well it felt great to have you know participated there I mean I had something real to contribute and it and it was it had a
01:41:43
really natural evolution which is we had these three different things character generation line drawing and moving big areas and you know if it wasn't me
01:41:59
somebody else would have done that and there was similar work going on you know I know the Atari had functions like that which they were using for for various
01:42:12
animations and that's another thing that's enabled us to do with animations we had done specific animation microcode before Steve Purcell did a pretty neat
01:42:25
little animation package that we had as a part of small talk but as soon as bit blit was working you could do all of those things at the same speed but with
01:42:37
a lot more generality yeah but I felt good about it so this I guess the next question is maybe for our more general audience but
01:42:55
how would you describe how bit blit works to a museum goer a visitor to our museum um well so somebody who I guess to move
01:43:12
museum goer nowadays everybody assumes things you know we live in a world where you can do sort of anything graphically on today's machines and it's it's simply the
01:43:27
ability to move pieces of an image from one place to another and it lets you do things like like painting where you're stamping a paintbrush along here lets
01:43:41
you do things like text where you're stamping letters along there it lets you do things like scrolling where you moving this in that and and nobody really thinks about nor should need to think about nowadays the problems of
01:43:54
getting that to all map on to the memory representations underneath but it's basically it's an image manipulation primitive and there are other image
01:44:07
manipulation primitives that you can imagine you can imagine something that's completely driven by curved outlines which would be more general in a way and if she could make that run fast it could
01:44:19
be a really nice graphics design but this is the bit blit takes care of the specific case of rectangles on a pixel pixel map and I got to play around with
01:44:35
that some more in in later on in in squeek where I did all the color support see this was still all black-and-white graphics right but there I put in all
01:44:48
the color support and different color dips and then I added the ability to do warping and rotations so let's talk
01:45:00
about small talk 76 I guess sort of emblematic of of that period you and Alan were sort of diverging where there
01:45:16
was a famous off-site that the group went to at par Hardin's where Alan said he wanted to burn your dis packs I start all over and he was sort
01:45:29
of looking at moving on to the note-taker and the rest of you weren't did you sort of talk about that kind of
01:45:41
like how that that that sort of turned felt at that point in time yeah sort of what are the driving forces that sort of
01:45:55
where Alan and the rest of the group were kind of not on the same page anymore well so it's hard for me to tell about all the rest of the group because that would include a Dale and stuff I
01:46:08
had I had some things going on I have a little bit of trouble remembering exactly when that when the burn the disk facts meeting was with regards to small dark 76 once I was into doing small talk
01:46:22
76 nothing could have gotten in my way and it may have been during that period oh because I would have I wouldn't have been aggressive about it but I wouldn't
01:46:33
change my direction because it at that at that point small it was so clear to me how to do small talk 76 and that it would be remarkably faster and and
01:46:46
better as a piece of computer science so that was for me what was going on with the rest of the people I'm not sure Alan did have some other ideas going on it I don't know if they've he says they were
01:47:01
about the note-taker so that's probably the case and he may have had a different software design involved for that I know that when we got small talk 76 running
01:47:13
who do there was on the day that we got the first piece of it actually running Ellen came into the office and he said I've got this great new scheme and we
01:47:28
ought to flick to the victims that what and that was something that never actually got got built but I know
01:47:43
that at first he did not like small talk 76 because it was a serious language and it was not it was not disease it would not be as easy to teach two kids at small talk 72 and one of the things I
01:47:57
failed to do at that point and it would not have been hard is to do what I've done since then which is to implement Smalltalk 72 in it because Smalltalk 76 could have run Smalltalk 72 fast enough
01:48:09
for the kids and then we would have had sort of had our cake and eat it too and but but then L not also I think had other directions going on in his life at that point all right yeah but the since
01:48:24
that time he's had a chance to play with small talk 76 when we recreated in the browser and he likes it I'm glad to say but this I mean you know
01:48:37
we were talking earlier about the things that were you know while you were already while work on 74 was already going on the it it's like the ideas that would become part of 76 were already
01:48:50
percolating and so the direction had already been set earlier on and so it wasn't as much that by the point by that point you know you would already did you had already been working on these things
01:49:03
this whole time later case yeah although the it's true that some of the directions so for instance making classes be first class object and having an object to represent stack frames that
01:49:16
thinking was going on but it was still the small talk 72 74 world was just way too interpretive and and therefore slow
01:49:28
and the and the thing that just went when the small arc 76 design sort of came to me it's just I could see all of a sudden everything was going to be
01:49:41
incomparably faster and cleaner so that made up a watershed and that's why as I say I didn't do much with Smalltalk 74 except to build an emulator for small
01:49:53
talk 76 so that we could start to build it we one of the things that we did in the group from the get-go is to use our systems to build the next system I'm
01:50:06
still doing that because they were such productive environments and and and and so it's so easy to sort of go meta and have you know specially tailored viewers
01:50:21
for this aspect to that so you could tune things that kind of thing in I think you've talked about in in some of the papers that you wrote that it was the group was very much working like
01:50:34
running an experiment trying something implementing it and then using that the feedback to sort of do the next system yeah iteratively going on and on yeah I
01:50:47
think I've made the analogy to the scientific method yes where you yeah um you could build something you make an observation you get a new theory and then you build a new thing based on that new theory and it's the same thing with
01:50:59
a system that people are using which is if you build a system you let them use it for a while you find out what's good or good or bad about it and you design the next system with that incorporated and then you go around the loop right it
01:51:13
also sounds remarkably like Doug Engelbart's notion of the bootstrapping using the previous system to build the next thing yep we totally did that hip
01:51:26
yeah so you were talking about the the the the key thing about 76 that you wanted to make sure that it it was fast
01:51:43
and it wasn't as interpreted the something the bytecode part of it was a critical piece to making that happen well all sorts of things so that
01:51:59
the first challenge was to figure out how to make a language that had the same feel as small talk 70 to be compiled able because small talk 72 was not
01:52:10
compiled upon as we've discussed way and and so I figured out how to do that with a keyword syntax that would give us the same feeling of that we got from the noise words so the parameters could be
01:52:24
named and then and then a way to to interpret those and my first goal was to get something compiled able then the second goal was to make it run fast you
01:52:40
get that from the compilation the third goal was to keep it small we had that smallest beautiful sort of philosophy from the beginning and as I showed you that with that the bootstrap for small
01:52:51
talk 72 is 38 K including comments and and and Smalltalk 76 is also small so the bytecode gave you that compactness
01:53:04
so so you get compact enough speed and compile ability which meant readability you know we've talked about how generally you could read most small fact 72 programs but rigorously you had to
01:53:18
look at how things were implemented to know exactly what the code meant in Smalltalk 76 it was all deterministic right what were the other major components of
01:53:32
small talk 76 that we haven't discussed yet okay so the well one of the neatest things so it first class classes became first class citizens and
01:53:44
then and this was kind of revolutionary although there was the hint of it in Smalltalk 74 the actual stack frames which we called contexts were real
01:53:56
object which you'd think would be a huge amount of overhead just to call a procedure you've got to create an entire object for its stack frame but the engine was designed so
01:54:10
that allocating and deallocating things was very fast it didn't wasn't a lot of overhead but the beautiful thing about it was that if you had a bug and got stuck
01:54:21
you could you could write a debugger completely in the host language you know in most systems the debugger is a very complicated piece of code that has to mess around with things but this is this
01:54:34
is a object-oriented system the stack frames are just objects and you can talk to them with Smalltalk code so we could actually suspend the project over the process over here and have some other
01:54:48
running Smalltalk code that's just doing what a debugger does and and I show that in the small talk 76 paper and there's actually there was code in the system
01:55:02
where you could send the message step to the context and it would do exactly what the actual machine did when it was running and you could step so you could do step through code very simply just
01:55:14
with it and you could read the program for how it worked and it was sort of documented it was a reference interpreter so that was a real forward leap yeah we also had inheritance and
01:55:27
inheritance inheritance works beautifully together with polymorphism so polymorphism means that at least in small talk it means that a piece of code
01:55:40
can can operate with many different data types for instance and I can show you I could show you the example with max but if you take the procedure max which
01:55:53
gives you back the the maximum of two integers or to two numbers there's code for that in small talk and and it's very
01:56:06
small amount of code it's like 20 bytes the byte code but the remarkable thing is that it's described in the magnitude class which is the superclass of
01:56:17
integers floating point numbers extended precision integers dates times all of these objects can use the exact same piece of code because all that code is doing is sending messages less than and
01:56:31
greater than and so that's the polymorphism of this code allows that same piece of code to be used in 20 different places so that's a that allows the system to be much more compact and
01:56:45
always when you make things more compact more factored they're more malleable so if you would need to change something you only have to change one thing so those are the those are the main forward
01:56:58
steps with Smalltalk 76 right so an earlier we are talked about for the reason why you hadn't done inheritance
01:57:10
in Smalltalk 72 why was it now important to do that in 76 well so 76 was serious software you know you could write big systems in it and so we didn't do much
01:57:26
for instance calculation with dates we didn't do extended precision integers in small dark 72 we didn't do we didn't have floating-point we didn't do much we
01:57:40
didn't have a date class on a time class but that that those are examples of things that all are subclasses of magnitudes and then there were we had
01:57:53
the whole file system was written that way and we did database work it's a once you start trying to build real systems
01:58:06
in it not educational examples for kids then you do find places where inheritance is useful because then it allows you to reuse code yeah yeah
01:58:21
exactly and so you may have we would have sort of skeleton parts of applications that people could take and then build build their own part to it without
01:58:34
having to rewrite all the code but just inherit from them right oh so I guess
01:58:50
the the the decision to make small talk 76 a serious language was a major departure from Allen's vision how how did the group come to
01:59:07
that conclusion that you guys wanted to make take small talk of that direction um well I can't remember how it happened in the group but I know how it happened for me which is that as soon as I saw
01:59:23
that this could be done efficiently nothing could stop me I mean I mean I would have gone somewhere else and done it and and I think everybody was sort of
01:59:36
enthusiastic about it how could they not be the grad um and you had a programmer so yeah and I think Adele Adele has a
01:59:46
has a I have a practical streak and Adele has a sort of a commercial or industrial streak along with her
02:00:00
educational side and I think she could see that it would be good to have something that was you know serious or able to be serious software and so I
02:00:14
think she kind of went along with that and in fact it was she who then got excited about commercializing small talk ad so and plus we had that we had we had
02:00:29
the base with the kids covered with small talk 72 we continued to use it for quite a while teaching yeah could you talk about some of the
02:00:50
other pieces that went into I just realized this thing it's going to go off to because I started it up during lunch during that time could you talk about
02:01:03
the contributions of other people that made it into small talk like Ted Kailas work Dave Robson Peter Deutsch Diana
02:01:15
Mary Vera tesslar all all those the work so much work ended up going into into small talk yep so Ted worked well like I talked
02:01:29
about him having worked with the the line drawing for the Turtles and then he also worked with me on the storage manager for small talk 72 and
02:01:41
then he and I did a crazy virtual memory called O's that served Smalltalk 74 and Smalltalk 76 and it was really important because those machines were really small
02:01:55
machines that so the the Alto was some of the our Altos were 48k it's 16-bit word so it's 96 K bytes but that's a small machine to do anything serious and
02:02:09
plus you have to subtract out the allocation for the interpreter and the display so there's very little room left and who's allowed us to take two-in-one
02:02:24
16-bit pointer talk about the entire size of our disk packs so basically everything we could put there and and we had a scheme for swapping things in and
02:02:37
out and it was much more space efficient than a paging system so so that work that was great another thing that Ted did and he had some unique contributions to that to Diana
02:02:52
Mary had worked primarily on the text display and she she carried that on even after bit blit was done that the new way she she worked on the paragraph editor
02:03:05
and a sort of a document editor that we made there was steve wire who came and he came with i think he had been with
02:03:17
Adele i'm not sure but he did an interesting information retrieval system than he designed together with Alan called find it and it was actually used
02:03:28
to manage the Xerox library I believe that in Diana and who else because a Larry Larry Tesler he as soon as we get
02:03:43
Smalltalk 76 going he had a design for a multi-pane browser outline and he really thought the whole pained window metaphor
02:03:57
that we also used in the debugger and stuff was that was his original design and he did some other interesting work using using small talk but it wasn't
02:04:10
necessarily a part of our project they did a did an interesting text editor and then he did a separate text editor not in small talk at Xerox 2 and he had a
02:04:24
design for a small very simple version of small talk to run on the note-taker and how they was separate from the version that we did we did a port of small talk 76 which was called small
02:04:37
talk 78 that ran on a note-taker oh we can talk about that sometime yeah but Larry's was different than that yeah in he he did a small thing as sort of a fun
02:04:50
project with Kim McCall and and to get it running it was it was a little bit different but let's see any other any other pickle that I forgot to mention yeah I think
02:05:06
I've left out one of the Dave Robson oh yeah Dave Robson so so Dave worked he worked a bit on small talk-- 72 but but he the project that sort of he then took
02:05:20
on largely by himself I mean we all work together was the small talk 74 so he did the got the making messages be a real
02:05:36
real real making messages be real objects so that some of the primitive message operations in Smalltalk 72 could be described in terms of small talk itself and rather than being primitive
02:05:52
okay and Peter Deutsch had been part of the computer science lab right at what point did he jump over so Peter came over um somewhat later on I'm pretty
02:06:05
sure well I know that Smalltalk 76 was all running at that point and we were probably actually even starting on small talk ad so and we were that was the time
02:06:20
at which we were getting ready to run Smalltalk ad on some of the other Xerox machines including the alko executing including the Dorado right and one of the other ones the dolphin they called
02:06:33
it yeah okay and so Peter did a high-performance implementation just essentially doing the virtual machine on the Dorado and then he got interested in
02:06:49
pursuing that doing a commercializable version on the Sun workstations and he worked on that together with Dave a hunger and
02:07:02
and somebody else whose name I will have to get that later forehead okay and wait you mentioned PST Purcell earlier as well
02:07:15
oh yeah so Steve Purcell came on with us pretty early and he was he's fairly sharp and he did a fair amount of microcode work for both animation and music so he had a neat little animation
02:07:29
kernel which worked together with an animation composition system that we had and and so Ted did that sort of
02:07:41
high-level version of the music editing and the high level version of the animation system was a visitor from Canada and I'll have to come up with his
02:07:54
name okay but yeah um so he did those microcode pieces and then and then he left to go elsewhere and Bob sure Bob
02:08:09
sure Walker worked on on some of the some of the music work too and also John
02:08:22
Jacques was originally part of yeah learning a search group yep and when he came in I'm not exactly sure but it must have been fairly early because and he I think he worked somewhat more with with
02:08:33
Adele and he did write that I described that little code editor that he wrote but yeah alright so then let's talk a
02:08:52
little bit about the note taker in Smalltalk 78 okay so at what point did that start to happen
02:09:04
well so I don't know exactly when when and how it started but Alan wanted to do a portable machine we all wanted to do a portable machine and Doug Fairbairn took
02:09:20
it on as a project to build it and I think we had sort of hoped it would be more portable than it wound up being it wound up being sort of a similar scale to the Osborne machine if you're aware
02:09:33
that I would call it luggable that's what we called it and and the principle behind it being a small talk-- machine
02:09:46
was that I figured that I could do a small talk small talk that would run on an 8086 so this was right about the time that Intel had just come out with a 8086
02:09:59
which is the first microprocessor that I thought was powerful enough to run our software could have run on the 68000 also but that was our choice and that so
02:10:14
that would mean rewriting all of our small talk code for the for the Intel processor and and we had a lot of graphics code involved in all of the
02:10:28
line drawing and stuff and this was where bit blit offered us the opportunity to suddenly if I could get bit blit to run on the note-taker then there was a whole lot of primitive code
02:10:40
that we had we didn't need to rewrite we could write that all in terms of small talk calling bit blit so that's what we did and as a result we got the the entire interpreter was I think 16 K of code
02:10:54
Center not that much and so we got it running and it ran small talk as pretty much as well as the Alto so that was
02:11:08
good and and we didn't it didn't get used much we took it to do several demos but there wasn't kind of a commercial direction for it to go yet but it was a
02:11:22
nice design it had it had a touchscreen 640 by 480 um with full bitmap graphics on it so you could you could do a lot of things with it and it had a it's funny
02:11:37
it had an Ethernet processor on it and another file processor the Ethernet processor was especially selected 8086
02:11:49
that ran faster and so I would move code into the Ethernet processor to make it run faster when we didn't need the
02:11:58
Ethernet but that's a fun hack and at what point did Alan decide to leave the
02:12:13
group I'm not great about time it was right around then yeah so like their work on the note-taker was already taking place and he went on sabbatical
02:12:30
yeah and then I guess that went from there to Atari right yeah yeah so yeah yeah and there were other things going on in his life at that point too right yep yeah so what was it like for the
02:12:45
group for Alan to to leave well at that point so Smalltalk 76 and we were doing small targets so we had we had decided
02:13:01
that we wanted to somehow get small talk out because it was significant everybody who was you know serious on the outside about software said stuff is great so an
02:13:13
Adele wanted to at least get it out and I think she was maybe thinking of commercializing it so that led to the move from small dark 76 to small dog 80 and the move that
02:13:28
move involved a couple of things one of them was standardizing the character set because we had a bunch of strange characters as in part of the Smalltalk 76 system that just made things look
02:13:44
somehow more readable we thought and but we had to go to an ASCII character set the system needed to be better documented and Adele took that on as a responsibility and did a great job with
02:13:58
that and then inevitably we did a few more things with the system that made it a little bit nicer and I can talk about those so those all work together as a
02:14:11
package of a new small talk and one that would that could be published in the world well and so with Allan's absence we sort of gravitated into that export
02:14:25
publications kind of feel and that's why the that's why the small talk icon is a balloon I don't know if you know the story of the balloon but basically there
02:14:41
had been an issue of byte magazine that showed Pascal as an island and sort of sea of Pascal and then then small talk
02:14:54
was represented in it as being on the Isle of small talk isolated from everybody else and this bugged me and I think bugged everybody else and we wanted to somehow not be isolated and I
02:15:07
had one of my childhood loves was the book the mysterious island and and it's it's about an escape that some people make from behind the Confederate lines
02:15:21
and in a hot-air balloon so I picture was that our export of small talk from the island could be by a hot-air balloon so that became the cover of by issue it covered the release of small
02:15:34
talk ad right but so the technical well so one thing I'll say about the character set is we well it's a detail but we lost one nice thing about the
02:15:50
syntax in Smalltalk 76 which was the terminal left arrow for assignment and we could get into that about the message patterns there but mmm
02:16:04
small talk ad had introduced boolean's as being a class they were not a class in Smalltalk 76 and this made small talk
02:16:15
small talk be almost unique and being a system that you could almost every other system if you ask how if how if works how conditionals work you trace it down to the bottom and still there's a
02:16:28
conditional there there isn't anything that you know it comes down to machine code doing a test or something so the beautiful thing about message passing is that the the true and false and small
02:16:41
talk is done simply by sending a message so if if you make a test you say if a is greater than B if that's true then dues
02:16:53
that's and such well that whole if true is a message sent to the boolean and if you go and look in in the in a class for true it does one thing and in a class
02:17:07
for false it because another so there's never a test that actually happens it's just that the method the mere fact of sending a message to the right receiver takes care of that so it's kind of a unique feature of the language that
02:17:20
conditionals are able to be represented without needing conditionals other than that Smalltalk eighty is pretty much small talk 76 commercialized
02:17:37
so was was that because Adele wanted to make this push for commercialization was that how she effective but basically
02:17:50
became the de facto manager of the group yeah so she when Alan left she you know that became our project which was to get small talk out and Adele took that on
02:18:04
it's her as her responsibility I was happy to have that happen and also the documentation and and the writing of the books and I actually participated a lot
02:18:20
in writing of the books but it became almost an obsession toward the end about how much energy went into the blue book and I finally said I'm going to resign from the authorship list I know I've
02:18:33
done a lot but I need to focus elsewhere so that's why I'm not on the blue book authorship okay but I did I contributed heavily to the the green book which talks about all the implementation and
02:18:45
stuff right yeah so we kind of all gravitated to that and and it was set up then that it would be we'd get some some
02:18:57
other groups and other companies to do reviews essentially to receive the to get a free license to try it out and to port it to other systems right because
02:19:11
you needed implement implementations yeah of an implementation right so we had a group of Tektronix a group a deck
02:19:21
and a group at Apple and that I think there's one other but I can't remember him so what was the the
02:19:36
advantage of having the third party involvement well for one thing it put it out in the world where a lot more people could see it and play with it it didn't
02:19:48
it didn't get a lot of momentum in any of the areas except for Tektronix and Tektronix get serious about it they were
02:19:59
they were a group that recognized sort of the interesting aspect they were also they had a work station built around the 68000 I think that they were selling
02:20:12
into the they started selling into the high-end workstation market and Smalltalk seemed like a good fit for that and they also actually did some projects with doing small talk for user
02:20:27
interfaces and some of their oscilloscopes the high-end ones could you talk a little bit more about the publishing the byte articles and the
02:20:39
books I could say those I could say one more thing about the Tektronix connection or was that one of the people up there was Ward Cunningham oh and he started wiki's yeah and and for for a
02:20:54
little while a bunch of people got there was a very simple way of doing wiki's and servers in small talk oh so there was a there was a little while when when
02:21:08
people would get small talk just to get a wiki going oh wow that's a cool story yeah so you mentioned you you did a lot
02:21:21
of work for for the green book and the blue book and you wrote those two articles in the by special issue right
02:21:32
how much of the work of the group was was doing these publications versus working on small talk itself and other things so most of us were not
02:21:46
particularly oriented to publishing or giving talks you know I did I wrote my paper on small talk 76 and presented it Adele was the main sort of force behind
02:21:59
publication and documentation of stuff so that was really useful and she kind of organized the group around that and we weren't we weren't resistant it's just that that was not our we were more
02:22:10
doers than talkers right and that also came from I mean until he left Alan had been a major voice of the group and we
02:22:23
would all fall in and behind him and do everything that needed to happen even if it looked like it couldn't be done another organism element just another organizational activity at
02:22:45
Xeroxes that Adele spearheaded was a big communication demonstration we did for Xerox executives right and she worked on
02:22:58
setting up a sort of a simulation environment in small talk where it sort of simulated work processes and there were I think eight versions of it free
02:23:12
to the eight executives coming and we got paired up with one of the small talk workers together with an executive for for a day-long demo and in the process
02:23:25
of that because small talk was nice and high level and Adele had set up this sort of curriculum for it every one of those executives got an experience of what it was like to work with software
02:23:39
and and I think it was all a pretty good success and certainly gave our group which would sometimes view it as the renegade group a sort of a good
02:23:50
corporate responsibility as panache do you remember which which thing that you worked on well in which demo for which executive yeah it wasn't current now I
02:24:06
think I had Goldman oh wow yeah oh and what was the actual simulation um so they were in each case there were there were entities that were producing things
02:24:20
and entities that were consuming them and then and there was a there were queuing situations and you could go and you could modify the logic of the queues and get it so that things would work
02:24:32
well I don't remember much of the details of it so that but it was nicely it was nicely scripted it was good piece of curriculum or expert Adele was good
02:24:44
at but Jack Goldman was already sort of a park I mean he was you know the head of
02:24:56
in a way the head of the research arm you know he was already kind of bought into what park was doing that's true yeah yeah so I guess it wasn't as much
02:25:10
of a sell for him necessarily as it would have been for one of the other executives yeah that's true yeah yeah well while we're talking about demos were you guys involved in the futures
02:25:27
day demonstration in Florida I wasn't I think I think we got we prepared some of the demos but I didn't go on that and I can't remember exactly who did okay do
02:25:40
you remember what kinds of demos you prepared no sorry but yeah and I think you know ago was saying that the group
02:25:52
was giving demos all the time to people outside of Xerox sort of what kinds of people were coming in to see this some
02:26:05
you know some work Xerox executives wanting to understand what was going at Park and and then we would have visits from people in in the computer science community who were interested in they
02:26:18
had heard about small talk kind of we're curious about it interested in graphics interested in sort of live object system like ours so people from like Stanford
02:26:31
or other universities yep yeah you have people from universities and and then there were other commercial groups within Xerox like people who are
02:26:43
building the workstations like the co-star group the star group yeah and before that was the dolphin which never really got commercialized but and we would go to I can remember a
02:26:57
couple of shows where they were showing the hardware and we chose small talk on it and because our demos were more interesting than some so doing those
02:27:12
demos so frequently I guess he had sort of come up with a kind of a script by the you know by by a certain point that you would always kind of show a certain
02:27:25
kind of a thing yeah we would so there was there were graphic things we could show so we had some some nice drawing tools using the knife aspects of the
02:27:39
bitmap displays we had a document editor which where you could mix text media and graphics that was you know revolutionary at the time and then for programming I
02:27:54
would give a small talk demonstration and small talk could do a lot of things that you just couldn't do in other languages we you know we put up something with it with an error in it and put the debugger on the same screen
02:28:08
fix the error and proceed from there and things that were not easy to do in other systems yeah okay so let's talk about
02:28:21
the probably the most famous demo but I've been dancing around up till now so that's of course the Apple ones how from
02:28:31
your perspective how did that come about I've heard the story of course from Alan and from Adele right but you have to see sort of from your prospective link where
02:28:46
you were standing how did that come about okay well so I hadn't been involved in setting it up at all I was glad to know that that I had
02:28:58
always felt positive about Apple and I kind of hoped that we might do something together but but it's came to me there was going to be a visit from Steve Jobs and some other people
02:29:09
and that I would be one of the one of the people doing the demos and I think Larry Tesler was another one and so I just became my chance to give a demo and
02:29:23
I did one and the particular thing that I showed was I showed all of the sort of programming and debugging features and then I showed that in the process of
02:29:36
while in the process of selecting text I could interrupt the process go and change house text selection worked and continue from there with the selection working differently um and that was
02:29:50
about as extremist thing as you could show for malleability of software and I think that played pretty well and then Steve came back with something to me which is he said I noticed that your
02:30:04
text scrolls align at a time could you make it be a continuous scroll and I said that could take a little a little more work but I could show you how to do it but I don't know if you
02:30:16
have time and so they were about to take a lunch break and so they took a lunch break and during the lunch break I got it done it was not that hard but I basically had to find a place where we go up line at a time and I and I broke
02:30:29
it down into you know pixel at a time and so when they came back I showed them that done too and it was it was it was a great thing for Steve to ask for and it really looked nice so that was the
02:30:42
extent of my involvement in the demo okay and it was really fun too because well for one thing he was enthusiastic and I knew he got it and and sometimes you
02:30:55
don't always get people who get it from a computer sort of side but also had that feel of you know entrepreneurialism around them so that that made me
02:31:08
enthusiastic about it I had always felt that what we did at Xerox was um I don't know how to say it but it's the kind of stuff we did all you had to do was see it and and you knew right away
02:31:24
that that would things were different that way it's in terms of a secret to be kept all you have to do is see something done that way and then you can go off
02:31:36
and figure out another thing how to do that same thing and so I think that a lot of the spirit of what we did was transmitted in that in that meeting I
02:31:50
heard that there were actually two separate meetings do you remember I only I only was in one okay and what the other one was I wasn't a part of okay
02:32:04
do you remember interacting with some of the other people that had from Apple that were there that came on the visit not really no and so I got to know bit Bill Atkinson later but I didn't really
02:32:16
know him then and I'm not who else came along I'm not sure but the answer is that I didn't really there wasn't the chance really for me to talk with them
02:32:30
we didn't it wasn't a sit-down meeting it was a demo right okay yeah we talked about this a little bit over the break but one of the things that and of course
02:32:44
you just mentioned that you know you showed them what could be done and then they went off and and sort of did something similar bill tells this famous
02:32:55
story about how he thought that you were clipping regions in order to save processing time and you weren't actually doing that but he thought you were doing
02:33:09
and so they went yeah yeah that's pretty funny I'm merely the way that we worked our our paned
02:33:20
windows together with how we work bit blit made it look that way but we weren't yeah and it's interesting that he did that he did a great a great whole package of general regions with it
02:33:33
especially with curved regions as part of his quick-draw work right so what what do you what were you thinking about
02:33:46
whether xerox should be giving these demos because adele was not so super happy about the fact that you guys were giving these demos what was your take on
02:34:00
it at that time well philosophically I've always wanted to give away everything I did I mean I also want to make money but but no I was glad to see things go that way and you know I wound
02:34:14
up going to Apple just hopefully to get small talk to go out more widely that didn't really happen but there were
02:34:26
there came a time when I left Xerox I went to Apple and and I picked up some of the work that had been done Apple had been one of the reviewers of the small talk ad release but it hadn't really
02:34:39
gone anywhere and so I picked it up when I got there and did a version that was distributed through the Apple programmers and developers Association and it became a really usable small talk
02:34:52
that was fairly well supported on the Mac platform and and it was nearly free so that was nice yeah you had mentioned
02:35:03
that I mean this was around the time when micro computers were starting to come up and he said you were very supportive of what Apple was doing even
02:35:18
while you're at zero what was how did you get involved in sort of that microcomputer seeing what was your view of that compared to what
02:35:30
Xerox was doing oh I thought it was great so and and I worked really hard to make the note-taker small talk work and the note-taker was kind of big and clunky but I could see that things were
02:35:43
going that way and the fact that we got it to perform actually better on the 8086 than it did on the alto it was clear to me that we were making progress
02:35:56
and the and it ran decently on the Mac also which was I guess the early ones were just a 68,000 and then there were there came to be more powerful ones right by the time that I was at Apple
02:36:10
working with the 60 of thousands we were using 6800 20s and and large displays and it that was a really productive environment yeah and you told me a
02:36:25
little bit before during the break that you had an Epson portable oh yeah but every room no that was from a long time before okay yeah so that was in the 70s
02:36:43
yeah I think maybe late 60s oh really yeah oh so this is waiver before Suzie's weight yeah okay sort of that the first of the the first of the somewhat small
02:36:59
machines yeah that's another grid so what was your first actual micro copier or PC what would you consider a PC oh
02:37:14
well that would be it that would be yeah yeah so yeah they had the Epson HX xx well what was cool about it was that in this one package it had both a a micro
02:37:29
tape file system and an actual printer and a bitmap display in there and basic so it sort of had all the components they were all tiny and not that powerful but you could do lots of fun experiments
02:37:43
with it so that was yeah so you had that machine before you even went to Xerox yeah okay yeah okay so then uh so we
02:37:59
were talked about you moving to Apple what what ultimately made you decide to to to join Apple me Xerox well let's see
02:38:10
I went to a conference and and and Larry Tesler was there and Ellen had moved to Apple at that point and he was there and I had lunch with them and they said tea
02:38:24
would be nice if you were here and you could do good things so and if that sounded good to me at the time I kind of had finished up what I was doing at Xerox at that point and I and I had
02:38:37
wanted to as I said you know get it running well on the Mac and get it out in the world so at that point I moved over right and so that was what year oh
02:38:49
gosh that would have been probably think with that 84 85 it was after the famous Mac opening which was 84 so it might have been late
02:39:02
in 84 or early 85 okay yeah and so then you joined did you join the advanced technology group oh yeah yeah and I worked specifically on small
02:39:15
talk-- there okay and and I worked on a project budget just got the small talk release ready and then I worked on a system called fabric okay which was a
02:39:29
visual programming language basically it was a data flow system so you could you could you could piece together pieces of
02:39:41
the user interface like lists and text and assemble the assemble the user interface you wanted but they were all components you could wire from one to another so you could actually be
02:39:54
building the user interface while you were programming the parts of it and then the things that you built could be saved and run on any other small talk and I
02:40:06
saw it also as a program generator because I saw how you could take what you had done in this way and for instance generate a Pascal file so if
02:40:18
you wanted to do other Apple software but it was not really picked up by the rest of Apple so huge earlier mentioned
02:40:30
that you're taken so that Apple had already done some small talk work before prior to you being there because of the work on small talk-- 80 and then your
02:40:44
urine edition was too so I did a couple of things um um yeah Rick Myers at Apple had done the he had been the engineer at Apple who sort of
02:41:01
received the Xerox test project and so I did a couple of things I I I worked on the memory system so that it was a
02:41:16
better garbage collection system and and then I also worked on enough oh it else did I do
02:41:27
I just lost my thread of mind there well that was I think that was most of it there was a lot to making it work on the bigger max on the Oh 20 base
02:41:49
machines yes yep and with bigger displays mm that's most of it
02:42:00
okay actually I forgot to ask you about garbage collection earlier I think in in some of the papers you wrote that you the original small small talk some BT
02:42:13
used reference counting as for memory management did that continue or did did small talk transition to using a
02:42:26
different kind of garbage collector or later on yeah a more automatic version well they're all automatic well honey but yeah so the early small talk to use
02:42:38
reference counting which the nice thing about reference counting is that if you don't have much space available you can get by with less available space and the
02:42:53
and it can it can be faster but the problem is that you also you've got you can get structures that aren't reclaim aboe some so you need
02:43:07
some sort of backup garbage collection and we did that in Smalltalk 72 you got that by restarting but but for the most
02:43:20
part I'm small like 72 the things that we did in Smalltalk 72 were small enough that that we didn't need full garbage collection and then when I went to Smalltalk 76 again it was a big enough
02:43:34
space and that we didn't and we did have and we did have a way of doing sort of an overnight garbage collection process home for when that wasn't adequate and then essentially every small talk that
02:43:46
we did since then we had either either both or or a full sweep garbage collector and that automatic storage
02:44:02
management is a real part of the sort of feel of object-oriented programming because you think of all these objects as being objects by themselves and they
02:44:14
live you know in a connected to the rest of the system and you don't want to have to be thinking of how to reclaim them that just makes the code more complicated and usually it's wrong
02:44:28
anyway so then you mentioned that the small talk work at Apple did not have a large impact was there was there enter your
02:44:46
interaction with um I think Larry mentioned that I think there was though some interest in or some cross talk between the Mac App Group because Larry
02:44:59
had done Mac app and and the small talk group whether you know what sorts of collapse or animal collaborations but maybe communications were going on
02:45:14
between those two we didn't do much with the Mac App Group is the one there's one thing that I mentioned with fabric being able to possibly generate Pascal sources
02:45:28
I thought that if they were interested it would not have been difficult to actually have small talk excuse me fabric and small talk be a GUI builder
02:45:41
for Mac App applications but Mac App had its own sort of framework for doing that so nothing really went forward with that right but that's interesting that you could have something that was native
02:45:54
small talk but generate object Pascal codes yep well that's just because the way the fabric framework was set up it was an own set of widgets with an own
02:46:07
set of interfaces and so you can imagine having implemented those in Pascal or in small talk was there any any connection
02:46:25
between the small talk work and Dylan later on no no so that was a completely independence yeah and I don't know and Dylan came on later I think then when I
02:46:39
left I kind of believe they left in 87 okay and Alan was there also obviously you mentioned that he was you know part of
02:46:54
what convinced you to go did you work with Alan at all no not really no I was pretty much on my own there okay yep yeah and so then you mentioned that you
02:47:11
left Apple in 87 was that the point in which you decided to take a break from the computer industry yes yeah from then until about ninety three
02:47:26
or four okay bigger than anything yeah right so we were talking about your break in the industry
02:47:36
great so you went back east that's right up for pure time yep um and what led you to that decision oh well it
02:47:50
was basically a family decision so there was a family business it's a hotel in Virginia and and there was nobody else in the family to help take
02:48:04
over with it for a while so I went back to do that okay and I was ready first I guess I was ready for a break I hadn't thought about it that way but it was
02:48:17
certainly a refreshing break yeah and it's interesting you know when I came back what about eight years late or something like that it seemed like all the
02:48:30
computer hardware was running a thousand times faster and a hundred times bigger and it didn't seem to me that that much had changed in software so so I was able to pick up almost where I left off with
02:48:43
a lot of the same software but running in a much more exciting way right what made you decide to come back
02:48:54
well things things came two things got to where they needed to go to it's a family business and and Alan was looking to looking to do sort of a new
02:49:08
generation of his work and I was looking around for a malleable system okay but actually I didn't didn't connect up with Alan until a little bit later after
02:49:21
when I got back okay so so where were you the first place I went to when I came back was interval research okay right and I worked briefly with dig
02:49:34
shout there all right sort of box language and then and then while I was there I got in touch with the group that was under Glen Eden's
02:49:46
and they they wanted a system for doing sort of about software for home management managing a home network and I convinced them to take a small talk and
02:50:00
write a sea of virtual machine in see and and just pick up essentially the Apple work that I had finished with at Apple come and they did that oh okay
02:50:11
yeah I interval so Roger Mike work I think did the main work on the interpreter and I kind of coached him along and I knew all the formats for how
02:50:23
to you know what was needed and the end the and the Apple version of Smalltalk had no license it was a completely open license so it was good for them to use
02:50:37
completely open oh okay and then and I was at that point I was starting to talk to Alan and his group again and and I remember having this um
02:50:51
I was thinking of maybe going to work with them and I remember having this aha during a during a rainstorm and driving over to Apple that or it
02:51:04
wasn't over to Apple I was driving home that that I could do all the same work that that they had done at interval just by using the reference interpreter from
02:51:17
the Blue Book because the machines were fast enough and so so that's what became squeak okay yeah and it was about a week after I started at Apple we we had the
02:51:30
squeak project underway okay so you rejoined Apple as I did yep okay came back in Allan's group and Alan was still at Apple in 93 yeah okay all right okay
02:51:46
huh he had been doing other projects while I was gone I think they worked on the vivarium I have very which I was not
02:51:55
a part of and then so the squeak project was started Apple yes okay cuz it sounds
02:52:10
like the branding of squeak makes it sound like it was a Disney thing well so um no but it would know it was called squeak at a fault I was in Casa Vega yep
02:52:24
okay because when I came back I think there was a little bit of a there was a little bit of conversation about oh no not more small talk and I think Alan
02:52:41
suggested squeak become as the as a term for it okay and and whether he was already imagining a connection with the mouse or not I don't know but it was
02:52:57
just sort of a way to rebrand it yes yeah but it's the same technology essentially just an a great yeah direction yep yes squeak is squeak is small talk ad with a bunch of things
02:53:09
done it in a much neater way they're the remarkable thing about Gleek is that it's it's full small talk ad where the entire virtual machine was
02:53:20
written in small talk itself which made it meta-circular and and we so well tell you the way that we did this was the
02:53:33
reference interpreter for for the small talk ad virtual machine was written in a in a flavor of small talk is that it uses all the small talk syntax but it's
02:53:47
it's all done without really needing to send messages so so it can be so it could be trenton so it could be transliterated to machine code and that's how the various reviewers made
02:54:01
their implementations ok electronics umbrella right and what I realized was things were running fast enough that we could actually work with it with that running it actually in small
02:54:15
talk and that took a little bit of work to do but but we got that running you know in a month and we ran it I think in the in the visual work small talk which
02:54:27
is a good efficient one okay it's a start and then right away I got John Maloney started doing a translator from small talk to see which meant that we
02:54:39
could generate a base virtual machine in C that would run at production speed and got Scott Wallace and Ted Caylor working on that Scott worked on the file system
02:54:52
and Ted worked on everything else I think he did storage management with me once again and the storage manager and squeak is really nice so we got in the
02:55:04
course of four months I think we made the change over to where John had had a C version running and oh and then I worked on bit blit and I got bit blit
02:55:17
working with all the different color depths and so we you know it's a really had a different feel to it so that types quick began and by the end of
02:55:30
the summer we released we released squeaked in October or something of 96 and so it was less than a year from
02:55:42
start to finish with that and it was radically portable because it included its own virtual machine and so I think that ian pew Marta got it
02:55:55
running in it so we just released it in for the Mac and it took in P Marta just a week or two to get it running in and Linux and then andreas Rob got it
02:56:08
running on Windows in another week or two Wow which is pretty good portability and it was written a lot of the storage
02:56:18
mechanisms in it are written to be you could run it from one system to another whether whether it was a reverse Indian
02:56:30
machine or or not and we paid a lot of attention to portability and all the bit Blackall they have all the bitmap graphics were bitwise compatible from
02:56:43
one to machine to another so you could have been working in squeak on a Mac run into a bug save your screen save your system with the bug in process
02:56:56
and somebody else could pick it up on an Intel processor and pick it up right where you were fix the bug and be going again Wow so that made it a great system
02:57:10
for academia and portability yeah did so did squeak get a lot of take off in academia yeah a fair amount right and
02:57:29
and you know actually I know I'm thinking that the what I what I told you about the wiki's that may have been in squeak OH but that took place right so it was a
02:57:40
little bit later from them yeah but yeah and a lot of still there a bunch of a bunch of universities in college that still teach small talk for its various
02:57:53
good properties and most of them use squeak for that one of the really nice things about squeak that distinguishes it from we kept it compatible with small talk ad because that really helped
02:58:06
synergy in the community but but the regular small talk ad interfaces what's called an MVC interface and follows the sort of Xerox and well their whole
02:58:22
tradition what we did was squeak was we picked up morphic from the self project John Maloney was was part of the group at that point and he had worked on morphic
02:58:35
with Dave Unger and Randy Smith had son and so we did an implementation of morphic in small talk and it's it made the system really nice and easy to use
02:58:47
Oh what you mentioned MVC before so it morphic and MVC are kind of different approaches to solving the same problem is accurate yeah I would call them
02:59:03
different user interface paradigms okay yeah right and I would say that MVC is
02:59:13
at least the xerox MVC that that continued on is mainly tailored towards kind of paned window type applications
02:59:27
and morphic is a much more general it's much more easily adaptable to all sorts of graphical situations that's not to say you can't do one you can't do that kind of thing in an
02:59:41
MVC system but you have to build more of it right morphic is really flexible that way right I say at what point did did
02:59:53
you move to you didn't so we moved to Disney very soon after the release of squeak okay the whole group on mass the whole group
03:00:07
yep so Ellen I guess it had had an arrangement with Disney or and and it was okay with Apple for us to do that we
03:00:20
made sure that it was before we left right yeah so then the the work just continued on a Disney almost yeah well I think that the thinking behind this was
03:00:33
that we were as always interested in doing educational software and if we could do if we could do a good job with educational software the Disney would be
03:00:46
an ideal institution to publish that work and really make it widely available and and it's too bad we we did manage to make some pretty good educational
03:00:59
software which we can talk about but somehow it never really got picked up in Disney but what we did was we did the eToys environment oh okay which is a
03:01:11
which is a really nice environment and it's it's the forerunner to scratch is huge now right but it had all the same
03:01:23
sort of tile programming capabilities right so much more of a visual programming environment kind of like fabric but not but more cater towards
03:01:35
children yeah I mean fabric was specifically data flow and etoys was not data flow but but etoys did have the capability of doing programming by
03:01:47
by moving tiles around and the nice thing to nice things about tile programming one of them is that you don't have to type so that helps a lot with younger kids and the and the other
03:02:01
is that if the if the tile editor is done right you can't make mistakes in syntax so that that means that there's a whole set of debugging issues that you
03:02:12
don't need to get into and eToys was sort of implemented on top of squeak yes completely that's how it was done yep right yeah and so I did I did the I sort
03:02:28
of was responsible for all of the technical stuff in N squeak and it's big paper about that but and then I and then the rest of the group all contributed
03:02:40
various things to the eToys environment so then how much how did how much more did you how much did squeak progress at Disney while you were there oh gosh um
03:03:01
we always had something to do so I think it was while I was there that I did that's probably when I did warp lit which I think eight meant that you could
03:03:15
even though it was a bitmap a bit mapped environment we could do arbitrary scaling and rotation of things I remember somebody from who worked on
03:03:29
some other project saying you guys sure got a lot of mileage out of that were blitzing because he had been working with it you know a more general graphics environment but we managed to get a lot
03:03:41
of that strength without having to with while still working really simply so then at what point did you leave
03:03:59
Disney it was a so uh looks like 2001 Alan Ellen left Disney we so did the entire group also with him again pretty much everybody except John Maloney okay
03:04:14
yep and and I didn't go with him at first let's see I consulted for a while at HP with them and then I I just sort
03:04:28
of left for a couple of years I was up in Truckee and I retired sort of and then then later on decided to come out of retirement and went to work at Sun Microsystems out there what were you
03:04:41
doing at HP I'm still continuing with some of the small talk work although what I did there was this was at the time when people were starting to have 64-bit machines and so we did a whole
03:04:55
another one of these compatibility things with wisk week which is to make it we've had it so that you could run a 64-bit image on a 32-bit machine or RT
03:05:10
pivot machine or in a 64-bit or six you know do all the combinations so that made it easy for people to develop and cross develop between those platforms right so you're doing that work as an HP
03:05:23
employee but also collaborating with Ellen's group yeah three points yep all right okay yeah yeah and then we brushed up against the the group that was doing
03:05:35
e Mark Miller and his crew okay and and I started on a sort of a modular small talk version there but then I dropped it right
03:05:47
when I left okay and so then you said you you were in Truckee sort of semi-retired what time thing was that up
03:06:01
until I started it at the Sun and I'll have to give you the years and that is 2005 yes and so it's between 2002 and 2005 yeah okay yeah so then when you
03:06:17
went to Sun that's when you started working on the live kernel yeah I didn't at first when I was there okay I mean I I was I came there because you know I
03:06:31
had worked with Glen Eden sand his crew and they had been moved to son Glen was then running research at Sun so it seemed sounded like fun but I I got
03:06:42
there and I was thinking sort of what am I doing here in the Cathedral of Java and so that the I can remember that um
03:06:55
the only Java program I ever wrote was that I wrote a Java interpreter furs for squeak and and and I was going to release it and they said you can't call
03:07:08
it you can't call it J squeak because of the J so so we called a potato and and that that sort of sat around for a while but the reason it's significant is that
03:07:21
it was easy enough to do that later on we converted it to JavaScript and then we had a squeak to could run in the browser and that became a part of the the ongoing work with squeaks that went
03:07:35
on a browser but that fall I did it seemed like the people who were having fun there we're doing web programming and I thought oh that would be nice to
03:07:49
get into and so I started looking at it and it seemed like you were having to learn CSAs you know CSS and PHP and JavaScript and all this other stuff just look complicated and I thought why
03:08:03
can't you two just do what we did and go to whole small talk systems which is if you've got a dynamic language and graphics and put them together in a system like squeak so so that that
03:08:16
Christmas I sort of put together a system which was an implementation of morphic in JavaScript that ran in the browser using at first used just the the
03:08:30
Java 2d graphics package and we got that running and it you know it took a month to do and then we worked on that some more and for a while it needed this Java
03:08:42
2d plug-in to run but it was right around that time when SVG graphics was getting adopted by all the all the major browsers and it had all that we needed
03:08:54
so we realized that if we converted to using SVG graphics then then we wouldn't need a plug-in and and we were you know making progress progress with the
03:09:06
morphic system in JavaScript so by that fall of that year we were we released the lively kernel and the first version right that was uh so what euros at
03:09:21
probably 2006 probably probably September in November September October so that's actually pretty soon after you you got there
03:09:36
yeah about a year yeah yeah we may have skipped the year there I'll have to I can I can line up years with you late okay and so you continued working on live
03:09:52
kernel after that yeah so we've continued doing that for quite a while basically doing more work to support web development and there's a lot of support in there
03:10:06
now for doing you know shared shared access to web pages and um collaborative support for work
03:10:27
and so then you joined sa P in 2010 that's right yep what prompted that change well this was that son was about to be acquired
03:10:42
correct by somebody and and I didn't like all the choices and I was I was talking to Alan at the time and Alan would had been consulting with HUDs
03:10:58
chief technical officer at FA P Vishal Sikka and he said well you have to talk to Vishal so I did and and it sounded like he there was a place for me and
03:11:11
they're sort of what little research they had there so I did that I joined there and started working in a group run by like nasi oh okay okay yeah it's
03:11:23
really another old connection yeah you feel friend of ours yeah exactly yeah so that was fun and and we started using lively colonel for various things that you know the mitre
03:11:37
might not be useful in NSA P and sort of raising the consciousness about different approaches to to web programming and and now you're working
03:11:54
for Y Combinator that was a very recent you know development yeah so we had done we had spun a group off from from s APL though we were still under s AP with an
03:12:07
office up in San Francisco to include Brett Victor and by heart uh-huh and and then then the opportunity came along to
03:12:20
spin that out under grab with different financing and so that's what we did and that's how we wound up under Y Combinator so that is a small part of Y
03:12:32
Combinator called y kyc research and that's what we're a part of okay so it's really a spin out of the SAT works yeah okay and I found it kind of
03:12:49
interesting that you continue to do you know work on squeaking and squeak like things while not working directly with
03:13:02
Alan whereas Ted Kaelin for instance has has continued to work directly without at many points research what prompted
03:13:16
that decision - well so so I don't live in Los Angeles right now right I may end up being there right and working with Alan that way but
03:13:29
but I think it's the it was the geographical separation um and and and yes I continued to work on squeak like things but it the way in which they're
03:13:44
similar are just that they are dynamic environments that are easy to use right and and so that's what I do now and in
03:13:54
JavaScript right which is might not be my favorite language but it's certainly there are lots of people who use it and what's nice about having a system lively kernel is a system that's very much like
03:14:09
squeak in it and it's malleability and yet it is it's very easy to embed any other web content in so it doesn't in the small talk world we were a little
03:14:22
bit of a closed garden yeah and in lively you can do all the you know interact with anything's on the web's and it can embed other web software and
03:14:33
things right and yeah and what I'm working on there right now is sort of where I'm headed for is to try to have an environment and that kind of teaches
03:14:48
what I would call kind of computational thinking in other words what is it like to to use a live object system for everything we're taking you for taking your notes for simulating
03:15:02
things for giving presentations how could those all be the same environment and and you know being able to add pieces of the web into it or share things you know be dynamically connected
03:15:16
with people that way that's what we're working on right now and then some of the other people in the group are doing stuff with 3d and VR and so it turns out
03:15:29
that lively kernel is a nice small piece that you can put into any environment like that to give some live coding a capability so we may do some collaborations there too
03:15:41
Wow well that's fascinating so so then I take it that the so after
03:15:55
joining Sun and doing life lively kernel you cease to work on sqweek itself yes it's pretty much true okay okay I still love it and I'm still interested in what
03:16:08
people are doing with it right okay well I guess that's the end of the historical questions um I'll ask if you were sort of brought broader looking back
03:16:23
questions let's see I think we've already talked about the restorations I think maybe we could talk about that a little bit more than various restorations a small type that you've
03:16:38
done so we talked about the the one of small talk 78 there was several 72 ones that you've done sort of what motivates
03:16:53
you to sort of do it keep doing these restorations okay so restorations are fun to do um if they're interesting systems and I consider small 782 to be a really interesting system so
03:17:07
I've done a restoration of it in squeak and then I've done one in I've done two in lively the one of the ones in lively
03:17:19
I actually simulate the data general Nova instruction set so it's like emulating the alto and to run an actual an actual old saved image of Smalltalk
03:17:32
72 oh that's that's like an alto restoration right and so you can just take the exact an image of something that from that era and run it on this yes Wow yep
03:17:46
and it runs faster than it used to so that's pretty funny the other one that I was doing is is completely a linguistic one which is doing a just a JavaScript interpreter
03:17:59
for the sort of theoretical form of Smalltalk 72 because I thought that I could have done a better job than I did back then but that one's incomplete and
03:18:14
then I alluded to potato a while ago which was my my experiment to learn Java by writing a squeak virtual machine so the experience from that combined with
03:18:27
the experience of the Smalltalk 72 running so fast when when double emulated made made Burtt Freudenberg and
03:18:42
I think that we ought to be able to get squeak to run fairly simply just by transcribing my my potato Java version
03:18:53
into JavaScript so just because all the code was there it shouldn't take him long to pick it up so he did that and did some some great work with the storage management which was the hardest
03:19:04
thing to get right and he did the what's now called squeak j/s which is a system that will run any any current squeak image or an old one in in the
03:19:17
browser and then based on that there was we had Alan and a couple of us were interested in resurrecting the note-taker small talk which was we call
03:19:34
it small talk seventy-eight it was one of the in between small talks and so Burt and I launched into that and got it running in a couple of weeks and you know there were a couple more months of
03:19:45
tweaking it but so that's now so that was a formerly did small talk that's now been revived right was I think I read something about that was like the code
03:19:59
had been found in in was it a dumpster or what like it was something other Judaism or something from somewhere yeah so another when when our group cleared out from Xerox PARC a number of disk
03:20:14
packs went to the dumpster and and a couple of the guys a couple of the text there picked up the disk packs and kept them and get them transferred onto CDs and fortunate so that those are saved
03:20:28
and we've been managed to to resurrect some of those the small talk 72 that I did I mentioned that was a direct load of that file that came off of one of
03:20:41
those discs Oh in the small talk 76 as well and the note-taker small talk yeah okay Wow you got a lot of mileage a step I'm really fortunate those guys saved those
03:20:53
because um I had written stuff for those systems but I didn't keep real files right well ok so how much of an impact
03:21:09
in your view has small talk made on the computer industry or computer science well I think small talk is pretty widely regarded as the sort of a or the
03:21:28
original object-oriented system and a fairly pure version of it and and you can see its effect I mean it the object
03:21:41
Objective C that's used in Apple came directly from work done the guys at slumber J who picked up small talk and then they did the conversion to to adapt
03:21:53
it work with C so there's a direct lineage there and the other you know C+ C++ to a lesser degree but but certainly
03:22:06
and then the debugging frameworks small talks debugging framework from the beginning was you know everybody in the industry said well I want something like
03:22:20
that and so Eclipse and other systems like that are directly modeled on it and so I think there's been a big impact
03:22:31
there and it's funny though the the real the real productivity and liveness that some of these systems have a lot a lot has not been picked up in the industry
03:22:46
as much as I would expect there are a lot of people's I mean there are reasons for you know having serious software control procedures but there are a lot
03:23:00
of people in the industry who just don't get what a difference it makes to have things be completely live I mean that's that's somewhat separate from being object-oriented but it's that something that if a system is well designed and
03:23:14
object oriented it can be completely live and I think that's scary to some people or something I don't know what but there's still some evolution of the
03:23:26
world based on what small talk and such systems have to contribute that's yet to happen I think and I think it may some of it may happen actually in more radical areas
03:23:38
like people in VR wanting to do live coding in VR and and will get that they don't have any history you know right and they just want to make things happen
03:23:49
yeah do you think it's I think this is something I've been thinking about as well but is this something about commercial user environments that you know you know platform vendors don't
03:24:03
want users to be mucking around or changing things really knowing oh well there are reasons not to change things willy-nilly which is you know then you
03:24:18
the documentation gets out of sync in this and that but that's not a reason to not have the stuff that you're building be immediately responsive and into and
03:24:30
to be able to evolve it while it's happening I mean it's so valuable if you're writing some software for a client to be able to sit down with that client and
03:24:43
show them your first version you know a quarter of the way into the project and they can look at it and they can say oh can you change this and you change it then and there and they you know and half of the time in those in in that
03:24:57
kind of a situation for one thing you're moving forward faster and for another thing if you're moving forward faster then it turns out the person says but that's not really what I want and you sort of you don't do a whole thing that
03:25:10
would have been a waste of time you get on into the direction that the person really wanted and that's incomparably more productive right so you don't see it as as something where the user
03:25:23
themselves have to be able to make the changes but more of this rapid iteration or kind of like agile way of development is really the benefit yeah I mean
03:25:37
sometimes it is these I mean it depends on whether a person having somebody build something for them or whether they're building it themselves right that's basically that
03:25:52
question huh do you feel like there's been a shift in the industry now away from dynamic object oriented languages it
03:26:06
seems like a lot of the you know like Apple for instance the switch language is a lot less it's more static than it's more strongly-typed than Objective C was
03:26:19
and so there seems to be a shift away from things like Ruby and Python and more towards statically compiled
03:26:31
languages again what do you think is is sort of the reason for that trend well let's see there's nothing bad about
03:26:45
types and there's nothing not dynamic about types the I think it's possible to have your cake and eat it too I do think
03:26:57
that as we go forward we need to be building systems that are more increasingly secure increasingly reliable and and types are just one form
03:27:12
of assertion that can be checked to assure that you know things are being done right but I think it's possible to have dynamic type systems that are still
03:27:26
effective that way and I don't know about sort of trends in the industry at this point I'm not the best person to ask about that but I do know that being
03:27:41
able to keep things live makes for better productivity in my experience you have any suggestions for how to get
03:27:52
that message out to the rest of the industry which doesn't seem to be aware of this now I don't know I mean um there's only so much you can do by you
03:28:06
know by standing on a street street corner and yelling I mean most of these the important things that have been adopted get taken up by essentially by you know survival of the fittest people
03:28:19
look and see what works and people are can see what don't and generally you can't tell somebody they should be working differently right so that I mean
03:28:32
that's a metaphor that you used before as natural selection so has it been has that been true in your experience that that good technology always eventually
03:28:45
wins in the end in the long run well I think so there's always there they're always the more conservative and the more radical
03:28:57
process is going on and being a researcher I'm more interested in the the most dynamic the most flexible thing
03:29:09
and there's no doubt is that that in certain environments you want things to be very carefully controlled that maybe is a force that goes against complete
03:29:22
malleability but I think you I think there are places where you want to keep things live in malleable in places where you want to keep things secure I don't
03:29:34
know exactly how to what to be said about it where do you think the the industry is going is going in the future well
03:29:55
there's a lot of industry you know it depends on whether we're talking about the programs for self-driving cars or for virtual reality games or or what or
03:30:09
banking or you know I think a lot of systems that are well understood will continue to be done in sort of well
03:30:23
understood software systems I think there's a lot of progress to be made in in security from where we are now I really like I have liked for a long time
03:30:37
a lot of the work that was started with the work on e and real capabilities I think that that makes for more secure systems and I think the question of how
03:30:50
to achieve that together with the kind of liveness that you see in a system like squeak or Lively is that that's a good challenge and it's one I've been interested in and I'm not pursuing it
03:31:04
right now but certainly had a bunch of good conversations with Mark Miller about it yeah I don't know and they're a bunch of a bunch of new things coming on
03:31:18
I mean people work in working in virtual reality with newer languages I think it's going to be interesting to see what comes out of that and last but not least what advice would
03:31:37
you give a young person today or you know starting in computing today maybe we'll narrow it down a little bit yeah well I guess um first figure out what it
03:31:51
is that you want to do why are you why are you studying software why are you in computers and then look around it what
03:32:03
given what you want to do that may suggest what kind of languages you're interested in or what kind of are you interested in graphics or or music what
03:32:13
it is you want to do and and I always think that define the system that as malleable as possible that you you can
03:32:27
most easily see doing what you want to do in and I guess nowadays it would be good to find other groups that are doing that kind of work talk to them about the latest thing that they're working with
03:32:40
because a lot of it is changing and then start to build things because that's where you learn you know you learn by building things for yourself or for
03:32:52
other people and write about it it's interesting a lot of lot of systems that I've improved they have improved the most when I'm writing documentation about them because I start to write
03:33:08
about how to use them and I realized that I'm telling somebody how to do something that's more complicated than I want to say and so then I go back to the system and make it so I don't have to say that in the documentation and that's
03:33:21
how things get simpler and better so so tell us a bit about these documents that you've brought and the projects that he went done okay so in my last year at
03:33:36
Harvard I was I had gotten interested in analog computing because it's so so live and and it was interesting that the different components actually gave you
03:33:49
know manifested mathematical behavior in actual voltages and then I read another article about how you could represent analog quantities similar to voltages
03:34:01
but as has pulse pulse trains on a wire in a digital world so the rate of arrival of pulses could represent a quantity and I and I thought that that way you could actually build a thing
03:34:15
like an analog computer but using digital components that would be reliable and accurate and the thought that I had the simplest version of this would be to have a circuit that's called
03:34:29
a bit rate multiplier which is one where you have a pulse train coming in and then you have a register that holds a value and the logic in that in the bit
03:34:41
rate multiplier causes the out the output pulse train to have a rate of pulses that's proportional to the quantity in the register and then I thought that you could use that and feed
03:34:54
it back to itself to either increase if this register were a counter either increase or decrease the value that would give you an exponential decay or an exponential increase of the digital
03:35:07
value on that and and this was all at the time that Fairchild had just come out with these little integrated circuits that were $1 apiece that somebody of my capability could
03:35:20
wire together so it seemed possible to me to actually build a computer that would that would do exponential decays and then by that you could actually
03:35:33
compute logarithms by tracking the time to decay to a certain value so if you could if you could calculate logarithms then you could actually accumulate the
03:35:44
logarithms and do multiplication so you have makings there of a complete calculator so I said about to build this and fear of the of the finished product and
03:35:59
and that's the the most complicated thing I ever put together and I'll show you there's the back side of the wiring all of which so what about reason up a
03:36:14
little bit you know okay yeah a lot of connections that had to not fail and anyway this thing succeeded in from taking logarithms and and you could it would accumulate the logarithms and then
03:36:28
you could wire it back to count up and it would do exponential so that you could multiply and divide and you could do it in a simpler mode to add and subtract and the especial cool
03:36:40
especially cool thing about the logarithms about doing calculation this way was I don't know if you've ever worked with a slide rule well a slide rule has the problem that when you get a
03:36:53
result that's off the end of the slide rule you have to go backwards and and divide everything by ten but if you have a circular slide rule there's you always get the significant
03:37:05
digits back of your result well it was made it possible so that overflow and this register correspond exactly to a factor of ten so that you could keep multiplying numbers and it would it
03:37:19
would not lose precision off the numbers but we just take you to the next decade of result so it had the effect of being a circular slide rule as well anyway that's the most complicated computer I
03:37:32
ever actually built and I think it was as a result of that that I thought that working and software would be something so much simpler and that's that's how it
03:37:42
been ever since I say it so that it's fascinating so it's you mentioned that you liked analog analog computing because it was live so this idea of
03:37:59
liveness or instant interactivity or I guess you in another paper he called the reactive principle has sort of been
03:38:12
with you from quite early on from the very beginning that's Evan and and that's something I don't know how you teach that except to give people a system that behaves that way and once
03:38:26
you've had that feel you know you never want to go back and have to wait for things to compile and load right it's that instant gratification that you've just talked about yeah yeah and it isn't
03:38:39
just instant gratification that's the world is that way if you go out to you know a steam plant and turning the wheel you know it does what it does what it does and and the things that we build with software software should be at
03:38:53
least that lively
End of transcript