Interview with Stu Feldman, 9-20-89
Feldman: They'll take care of themselves.
MSM: When did you join up with Bell Labs?
Feldman: That's actually a complicated question. I think I used
to hold the record on summer jobs. My first summer job at Murray
Hill was in 1965. Basically I've had either summer jobs or consulting
agreements or even term time jobs. Continuously
until 1973
when I got my Ph.D and decided to go to work in cellular labs.
MSM: Where did you get your Ph.D?
Feldman: MIT in 1973
applied mathematics, theories of galaxies.
Essentially no computing in the thesis, computing is a side
interest.
MSM: When you worked for Bell Labs summers, was it computing jobs?
Feldman: All my jobs were in Center 127 and its various
incarnations.
MSM: How did you get there in the first place in '65? You were
only a sophomore?
Feldman: Well, actually it was much weirder than that. The connection
actually came through Stan Brown, who was at that point a department
head in mathematics and later in computing when that formed. He
came in to a careers day at a prep school I was attending at the
time and so the connection was made. So I just visited and sort
of go on what's called a industrial lab type visit. I liked a
lot
they invited me to come back. They tried offering me
a job the first time and that didn't work, because of child labor
laws. (Pause) When I turned sixteen, they were able to hire
me. That was the end of my freshman year at Princeton.
MSM: Where had you learned computing? You obviously knew it then.
Feldman: I probably represent the first generation of computer
brat. I took my first computer course when I was either eleven
or twelve. There was a NSF sponsored program at Columbia University
for high school kids basically called the Science Honors Program
which for curious reasons I ended up applying for. I was in eighth
grade and taking a summer course and I just decided I love computers.
I dropped chemistry, which was my previous scientific interest.
I took a bunch of computer courses and sort of wondered around
there weren't actually computers to play with in those days.
MSM: You did this. You loved them. You did this during your summers.
Feldman: This is when I was in the eighth grade.
MSM: In the eighth grade? But you didn't concentrate in it in
college or grad school?
Feldman: No, I got a respectable degree instead- in the real science
astrophysics at the time. I spent a lot of time at the comp center.
Most of computing I learned was basically learned informally
in the gutter. Ah
Three AM at the comp center at Princeton
was a wonderful place to talk to people and I just did that a
lot
computer nerd, if you wish. I did a lot of programming
in computing associated with academic courses. But there really
wasn't much of a computer science curriculum available. I think
I took one other graduate course at Princeton that was computer
related. I happen to been taught by my first Bell Labs mentor
Jay Goldstein. A wonderful man. I guess the only other
computer related course I took was one graduate seminar in automata
MSM: Hopcroft?
Feldman: No, this is at MIT. Papert and Minsky.
It was an amusing course.
MSM: Was this Minsky's course on which the book on automata, finite
and infinite
Feldman: No. This was actually a graduate seminar relating to
perceptions at the time. Their book was just coming out. It
was an amusing course because it could be summarized as
Seymour Papert would come in with a new false theorem each
Monday night. The purpose of the course was to fix it or place
it. I don't know if this is pedagogic device or
simply ill-founded speculation. But, it was interesting, but
not my sort of thing. I am a programmer at heart. Rather than
a theorist. Other than that, the only academic background that
I have in computing is that I taught computer science courses
at Berkeley and Princeton.
MSM: Did the computing scene at MIT attract you at all?
Feldman: Only a bit
I actually had a moderate amount of
knowledge about that
part of that scene, because I had actually
worked on the Multics project. When Bell Labs was part
of it.
MSM: You had worked on one of them?
Feldman: When I was an undergraduate
a bit more weird personal
history. I believe I had the first time sharing terminal at Princeton
installed
by Bell Labs for my use.
MSM: You had it. That's marvelous.
Feldman: It was installed during my junior year. They installed
one at the computing center I used. Basically they did it because
the comp center didn't have any time sharing access of its own
at that point. I was actually using Project MAC at MIT. They
had to drop a tie line to Princeton. The tie line and the computer
cost far more than I did. I seem to remember I was paid three
dollars an hour. Ah
They put it in the comp center partly
to keep the comp center happy and partly because of, I believe,
private worries that I might just drop out
from computer
woes. There was actually no danger of that, and I graduated perfectly
expectedly in astrophysics. By senior year, they allowed me to
move into my dorm room.
MSM: Now what were you doing on Multics?
Feldman: I was actually specifying part of the I/O system
a
weird thing for an undergraduate to be doing. I learned an awful
lot about systems and systems ideas, by doing it all of a sudden.
I had absolutely no basis for it, but of course neither did anyone
else in the world, so that was fair. The stuff I did
I don't
think it ended up in the final version, but it was actually in
the intermediate versions. I was involved in a large number of
discussions on the I/O system.
MSM: So, you already
Feldman: So I already knew a fair number of people at Tech
Square. Separately I was also
the project I worked on
when I was a grad student, and for which I was originally brought
in, was algebraic manipulation. The work that Stan Brown had concentrated
on. The ALTRAN project. I actually wrote the first math
and execution library for that. And
therefore, we had a
lot of discussions and so forth with Joel Moses and friends at
Tech Square.
MSM: Working on MACSYMA?
Feldman: Yeah, he's the author of MACSYMA. Therefore, I had also
had those random personal connections. So, I knew a little bit
(Pause) more of what was going on. But I was never actually
interested in the LISP or depacker school anyway. I did a bit
of LISP programming as part of a course. But I never really spent
a serious amount of time on that as a grad student. I actually
spent most of my academic time worrying about galaxies. (Pause)
This history means that I have a sampling of what was going
on at Bell Labs starting in the mid sixties. But, this is a view
of a non-career student who was sort of like a bad penny
keeps showing up
Notices what's going on but doesn't necessarily
know flows. Any of the politics, that sort of thing
is
that they don't effect non- permanent people.
MSM: No, but
Feldman: I was also too green to know to notice if there was a
fight going on.
MSM: But
you must have been sensitive to change - to malignant
changed atmospheres.
Feldman: That I could probably tell you about. I was just putting
in this disclaimer that you are getting the twenty-year old memory
of someone who wasn't watching very carefully.
MSM: I'm also getting the memory of someone who came in at quantum
intervals, and might even be more sensitive to changes than
people who were there.
Feldman: Yeah, I would show up at Christmas and for the summer
to complete... plus odd days talking to friends. So therefore
I warn you that I am not the best witness. I may have longer
tenure than many people involved. But I wasn't hardcore.
MSM: What was happening toward the late sixties?
Feldman: Well Multics had clearly folded. Multics was a brilliant
project. It had some wonderful ideas. It's almost time to bring
them back. Many of them have reappeared. But as a corporate
investment per se, it was a disaster in that it
did not provide the service that was promised. Various people
who thought they were going to be able to use it, of course didn't.
The fundamental problem was that Multics was too ambitious for
the hardware, and to some extent the software technology of the
Multics era. Multics simply cannot run satisfactorily on a fraction
of a MIPS computer. And that's what the hardware we were going
to be using was. Um
So therefore, that had tailed off
many of the real Multics people had actually dispersed. Ah
It's something I only noticed a little later when I look back.
It was probably obvious to the people who had been involved.
But again, career moves are not the sort thing I noticed anything
about. Ah
two people who had been extremely peripheral to
Multics, who are Kent Thompson and Dennis Ritchie. Kent had been
involved, I think, in doing some of the I/O stuff. You know he
implemented one of the first working printer confines. Dennis
had been interested in some of the compiler stuff, but I don't
think he had done anything at that point. They were sort of around,
caught up in the maelstrom. They were real interested
in computers. There was also a sort of move to start doing something
else using operating systems, and to get a good system. There
were a bunch of requests for
I seem to remember a long set
of arguments, and I can't place the time at all. It may have
been after I had gotten there, but I'm not certain. ______
versus a PDP, maybe a ten or eleven,
and I don't remember
MSM: At first they wanted a PDP-10 on a sigma seven.
Feldman: Okay, thank you, that's the discussion I am incorrectly
remembering. And this was basically, 'Let's get back into this
business and do something interesting'
And just for us
no
promises of providing comp center service, or a bit of
organizational confusion that the computer center originally was
part of127, from where it came from. And then it was split and
put into area 88. At the time, I think 82 was its number. But,
our director, Sam Morgan, another prince, by the
way, was given the unenviable job of wearing two hats. And the
Multics support group was going to be somehow part of that whole
deal, I believe, and the original plan
and by the time it
was split, basically the Multics machine was being run gelded,
as GECOS machines. Providing perfectly usable, utterly uninteresting
service. Now there's an awful lot of cute things that the
computer science research group did on that machine that made
it a very interesting environment. But as a operating system environment
it was vanilla. How so, it would be a major digression to go
on to other great things that were done. So that machine was
running, so there was service available. But there was nothing
adventurous, there was nothing interesting
MSM: Well, you'd lost control of the computers
Feldman: And also, as you're quite right, it wasn't ours. It
was the nice service of actually running things
which let
no one say bad things about (it). I, too, may have used one of
these computers. However
so, I was actually running cheerfully
on GECOS when I started working there, for example, because I
actually had some things that I wanted to be working on.
MSM: Now what were you doing at that time?
Feldman: When I first started I guess I continued my ALTRAN
efforts and basically I wandered around for a number of years
doing a little bit this and doing a little bit of that
with
no particular direction or major reward or hassle
looking
for different things to work on.
MSM: This was starting
Feldman: Starting '73. I started full-time in September '73.
MSM: Let me back up you a little bit. During the time that Ken
and Dennis were putting together this new operating system
they were playing with
how conscious were you of that?
Feldman: Certainly I knew about it. It wasn't (not clear)
lunchtime conversations had a lot of this stuff in it.
It is an important socialization thing you should know about
probably
relevant to your discussions. There were, and until recently,
still continued to be, two lunch groups in the computer group.
There was the eleven fifteen and there was the one o'clock.
MSM: And I've interviewed both of them. (Laughs)
Feldman: A remarkable continuing grouping
basically the
one o'clock tended to be the systems group. That was the latest
you could eat in the dinning room. And that was driven by the
fact that for half the people in the group it was breakfast
because
they showed up at eleven or twelve fifty-five. And then there's
the other lunch, which was, you know, people who actually started
work at more classic times like eight and nine, and that bunch
tended to be starting around eleven fifteen, and the tables would
be begin to filling at eleven thirty.
MSM: Largely theoretical
Feldman: No, that was the everybody lunch. That was the default
lunch. But there was nothing exclusive about these. If you showed
somewhere between eleven fifteen and eleven thirty at a particular
table in the cafeteria, you knew that's where the computer people
would be. And if you lined up for lunch at twelve fifty or so,
they would wait until a large group to form so they could build
the right tables for us. I think we were not a trivial part of
their income. Then you were in that lunch group. This was in
no way selective, no way exclusionary. It was just that certain
people almost always went to one or the other, perhaps based more
on stomach grumblings than on scientific segment. If you went
to the later one, you were likely to be in the middle of all kinds
of weird discussions. Then of course there were just the informal
ones at lunch today. 'Like what's going on?' I remember some
fascinating speculations about Ken Thompson in the late sixties
about the right way to build a time-sharing system
instead
of the way Multics was. These observations had nothing to do
with the way UNIX worked, either. They were based on some absolutely
clever observations about how to drive a machine that had a wonderful
drum. (Pause) So therefore I was vaguely aware of all
this stuff, but only peripherally and during its early period.
I actually saw Space War being played in the closet, for example
which
is the real war UNIX.
MSM: You mean this Space Wars
when they had Space Wars up
on that seven, they also used UNIX too?
Feldman: Well, that is where Ken got sick and tired of not having
UNIX.
MSM: I see. Trying to bring Space Wars up.
Feldman: Well, he was writing Space Wars and he got sick and tired
of having no support. So, he built a few things. That is, I believe,
the origin where UNIX came from. Because he built a few things,
and they looked kind of reasonable and then a real computer was
gotten. It was the PP-9 originally.
MSM: Well, where did this concern for the file system come from?
Was that a topic of discussion?
Feldman: Well, remember the file systems were not an original
idea. (Pause) Even just forget the fact they're in the
literature, for the moment. But just current experience, Project
MAC had a rather weird, not really tree-structured, two deep
file system. For every name also had a two complement identifier.
Multics had a very complex file system, which went the opposite
end from this, and had a very messy directory structure
in which you could represent a remarkable number of important
things in the directory structure. Very complicated access control,
very complicated linking control. The ability to close a fault
the first time your file was accessed. All kinds of wonderful
things. All this list of wonderful things caused the system to
sink into the mud. Of course everything costs programming effort,
and everything requires you to program around it. Everything
takes cycles. Many of these ideas have reappeared in other forms.
So, in some sense UNIX, the UNIX file system was the reaction
to both of these, if you look at it. It had the flexibility.
It had the essential tree flexibility of Multics. But a real
dirty idea for implementation, which was to say that the file
space was flat and then there was a simple name conversion above
it, and if the directory structure had nothing in it. The directory
structure consisted of, 'here's a name and here's a file number.'
Whereas the file structure for Multics, if memory is correct,
was probably a full page. The PL/1 structured declaration.
MSM: Right.
Feldman: And of course, there was zero, but this a full general
multi deep, and it even had a weak link mechanism
with
a nice cheap idea of a hard links. Which falls out of the implementation,
of course. But, it's in some sense a reaction to the annoyance
and weight of dealing with Multics type things. Whereas the full
recognition that two deep isn't enough. Anybody who built a project
on Project MAC, quickly found out that they were losing track
of things, because they didn't have an easy way to have multiple
directories. So, I don't remember any discussion, it just happened
between visits, more or less
MSM: Okay. So, you joined in '73, looked around for project
Feldman: Things that were interesting to work on that sort of
came by.
MSM: Was there any sense of direction with the group at that point?
Feldman: No. As always, it was a highly fractionated group.
They were people doing things. So, there were a few of us still
working on ALTRAN at that point there were interests in just getting
there
was a numerical analysis group that was heavily FORTRAN, and still
is heavily FORTRAN-oriented. I had a lot of friends there, because
I'm actually interested in science and scientific computation,
going back to my other interests. Also, I was never a numerical
analyst, but I actually did several times in my career, do numerical
computations for which I wanted the answers
some of them
while I was an undergraduate at Princeton. Also, of course, as
a graduate student. And there was a theoretical group of a few
people who tended not to be interested ever in programming if
they could help it. Unfair statement, but that was sort of an
appearance. Then there were the people who like making machines
do things. There was no top-level management direction that I
could see that said: 'Alright, you eighteen guys are to do this.'
First of all, overall the group was small. It was actually,
I believe, under some significant management pressure to shrink
or die or something after Multics left such a bad aura. I have
no idea of how the managers managed to keep things on an even
keel. That they did is amazing, and of course extremely lucky.
That is the sort of thing that I didn't notice anything about.
I was one of the last hires for many years. There was basically
a hole in hiring as Bell Labs went through a bad patch, involving
ABM and such. And also, computer science was not actually in
good aroma. But there was no
Various managers subtly and
unsubtly would suggest you ought to do something interesting and
would point to interesting projects. I would look at them and
decide whether I cared or not. But nobody said, 'it's your job
to work with so and so', perhaps they ought to have - they didn't
- luckily, from my point of view
MSM: They claim it's part of the ethos that you don't do that
sort of thing, you let people strike their own
Feldman: So, I did a bunch of weird and random things (Phone
rings) And some of them I did on GECOS. Then there
was this other stuff coming by, which looked like a more fun environment
to work in. So, I asked if I could get a login.
MSM: Namely UNIX?
Feldman: Yep. And UNIX was sort of a service at that point. Not
a real public service, but you could get access if you asked.
MSM: And this was the research?
Feldman: Yeah. This was running on the 1120, I think, when I joined
it. Which meant, of course, you had to be not interested in having
a lot of file space, since it didn't have any. It was a five
or ten meg disk, among other things, and so forth. We've
gone through that size three or four times in my life time already.
Some things just never change. But
I just started using
it because it seemed a nice place to work. I had gotten used
to using things like run-off and QED, back on Project MAC days,
so I wasn't used to editors and typesetting. My handwriting's
illegible. So, I've always wanted things that proofed things.
And my typing's error filled, so a fast but high error rate.
So, nobody could benefit more than I from the advent of editors
and text formatters. So, I've become sort of addicted and dependent
as an graduate already to their use. So, it's natural to follow
the evolution, as those things became available, courtesy of Osanna
and McIlroy, I guess, on UNIX. So, I sort of wandered
on to there. And, of course, you've got a lot better service
and you didn't have to beg for money, because it was our own machine.
So, when I did some other projects, I did it there.
MSM: I see. (Pause) When did you start to make your own
contributions to it?
Feldman: Well, I never really wanted to make my own contributions
to it. It was just sort of, you did things and they worked and
they appeared. This was a completely open environment. You told
the people you've done something, and they were either interested
or they weren't. You just sent mail to people or talked in the
hallways. So, my probably most interesting thing is a little
program called make.
MSM: Have you used it?
Feldman: The history of that is very straightforward. I was actually
at one point
I can look it up in memos, but I assume around
'75. I was helping out a guy in materials science, I believe.
They were having some problems. There was a lunch time discussion
about how it was impossible to use this computer program which
took forever to run on a time-sharing system in Holmdel. And
it was written in PL/1, and it didn't run very well, and it gave
bad answers and it gave them slowly. And I, based on no information
and just sort of pure lack of humility or something, said: 'I'll
rewrite it for you in the next day or two. Where is it?' And,
you know, the bad news is they sent me a copy.
MSM: (Laughs)
Feldman: Okay. It was a 750 line PL/1 program. It was one of
the worst programs I had ever at that time seen. It had examples
of all the worst programming style you could have. But, I translated
it into Ratfor through great
pain. I was actually the first getting Ratfor,
among other things I had done.
MSM: For your own computing purposes?
Feldman: Yeah, and then I took a look at the algorithm being used
and my jaw dropped. It wasn't surprising the thing didn't work.
It shouldn't have.
MSM: (Laughing) There are structural reasons for failure.
Feldman: It was using one of the least plausible ways of minimizing
a function onto MAT. Take three values out of a hat and see which
one you like. (Laughs) That's not the best root finder
you might encounter. So, anyway I ended up getting sucked into
writing a program which could actually be used for (calibration).
This was beta ray stack scatter, a technique for measuring the
thickness of films. They would do a calibration in the morning.
This was not a theoretical device. This was something
they used at Western Electric. But
and Bell Labs people
were trying to make it work right. Anyway I ended up providing
computer support for it, because I was one of the few people around
who knew enough vague physics and enough vague mathematics and
enough vague computer science, and it was at loose ends anyway.
So, I found myself actually writing a three thousand or four
thousand line Ratfor program.
This was not a heroic project we're discussing. However,
it was tricky and there were various things that kept going wrong.
So, I was actually banging away for a number of months. I found
myself in a standard situation when I would go home for dinner
at six or so. I would simply do an rc*.*
no ______. In other words, recompile the whole world in the background,
shut up, and then drive home. It would take through the drive
home and through dinner for anything to happen. But
this
is because I kept making the classic error of debugging a correct
program
because you'd forget to compile the change. And,
this is getting annoying. Then one day Steve Johnson came storming
into my office in his usual way. This wasn't the big trip, he's
going to take you all over, saying basically: 'Goddamn it, I
just spent the whole morning debugging a correct program, again.
Why doesn't anybody do something like this'
and we would
be talking about dependency and ______ in another context. I
said, 'Yeah, I think I might do that too.' Then I sort of just
did it. He pushed me over the edge over something I was sort
of subliminally annoyed about, that I kept making this error.
I ought to do something about it and this meant recompiling everything,
every evening. Although, on our case strategy didn't save you
a bunch of time, when you've already made the same error. So,
he's coming in storming about that
I started writing on the
board: How about if it looked like this? I had an absolutely
abysmal idea. He said, 'no, it needs more details. Thank God
most of those disappeared. One of the reasons make
was so simple was that It was only supposed to solve my problem,
and help Steve too. So, I did it. I found it very useful for
my little problem. But, very rapidly, I found myself adding junk.
After a week or two, I rewrote the entire thing
after
an idea that I would include macros. I'd occasionally give a
lecture on the origins of make
one of the things I ______ is that I woke up at three in the morning,
saying macros, got out of bed, turn on a terminal and did it.
And if I'd only gone to bed before, I might have done it better
(phone rings) It's got the worst network processor
known to man (phone rings). It suffered for a decade
for my stupidity. But anyway, so I did it. I remember giving
a computer science show and tell on it, you know, one of the obligatory
things
Other people started using it. And since everybody
has the same problem, it took off. I added bells and whistles
and fixes as various people came by. Dot ______ got added
specifically after Ken Thompson wiped out a very complicated link
structure by accident, and he asked for it. I said: 'That seems
ugly. I'll put it down anyway.' Obviously I was going to oblige
Ken, an old friend.
MSM: How long did you own it? In that sense of having to support
it?
Feldman: Forever. One thing that
basically the people who
wrote things owned them pretty much. So, make
was just mine. Since it's a fairly small program, there was no
big deal. Various versions of make got done by other people,
starting maybe a decade later. Or maybe six or seven years later.
make itself, I guess, is
around 1976, give or take one... The paper is in the late '70's,
but that was a very good thing that I published the paper - it's
a heavily referenced paper. It came about because somebody said,
'Would you be interested in publishing this report as a paper
in S, P and E?' I'm rambling on
MSM: No you're not.
Feldman: This is purely
I'll tell you one or two simple
stories about it to give you an idea of the environment. After
a few months of its being used locally it spread around to other
UNIX systems. UNIX was already in use lightly throughout the
company. Somebody came up from the first floor support group;
they decided to try using make
to support their system releases. And somebody came into my office
saying, 'I'm having trouble with this make
file.' And they dropped this 1500 page make
file on my desk, you know a thirty page listing. My jaw dropped.
I said, 'Goddamned it works on that.' Of course, I'd never used
a make file longer than about
15 to 100 lines. It was never a designed to do anything
MSM: So, you never had, like, a source control system in mind?
Feldman: No, I'd never planned it for maintaining UNIX. And what
they had was _____, which is the worst case, of course, but it
just rattled on and on and on
and my second thought was that
I was glad I had a symbol table, which I had done only out of
pride of craftsmanship, since there was no need to
It's
embarrassing to not have a hatchet symbol table and just do a
linear search. Pure guild rules, that it's just creepy to do
it that way if you might ever want a big one. But I never really
pictured somebody coming in with a symbol table with a thousand
items. Pure example of
the tool took off and because it
took off so fast, I never went back and fixed many of the design
errors
because I didn't want to screw up my fifteen person
user community.
MSM: Your reference to guild rules interests me. Here you take
up
Feldman: Obviously I'm baiting an historian.
MSM: It's that guild that I'm finding most interesting in the
course of these conversations, because it struck me right from
the beginning when I first encountered UNIX several years ago.
What you have here is a system that on the one hand contains
some really clever and ingenious coding
a certain hacker
quality to it. On the other hand, if it's not theory-driven, at
least as theory sensed, and as the works quite evidently in some
cases have been working out. Some fairly fundamental and profound
and theoretical ideas.
Feldman: Oh yes.
MSM: And that's a rare combination in computing.
Feldman: The glory of the system is, people wanted cleanliness
and simplicity. Can _______, and it was their ability to say
'no', or 'that's wrong' that causes the system to be what it is
in the early days and disappeared when it turned out not to be
useful. The Einstein line of
everything should be as simple
as possible, but no simpler. It was probably a guiding implicit
rule. You alluded in passing to a custom in the UNIX room of
the last person that touches it, owns it.
MSM: Yeah.
Feldman: make was the one
I sort of kept, because I was sort of fond of it anyway, and people
would just come to me to fix it anyway. Whereas the mailer
kept moving around because nobody liked it. Every time a new
person
MSM: That was the hot potato.
Feldman: Every time somebody would join the group, they would
say mail doesn't work right,
and, 'I'm going to fix it', and everyone would say 'good.' Especially
the current person who had the tar baby. No one has ever been
happy with the mailer before.
This is a fact. This is a matter of twenty year's history.
The guild rules, that was sort of
we ought to do things
right. A linear search list, which is one of the things UNIX gloried
in for decades. The directory structures were linear and all
that. make was clearly doing
a compiler-type activity internally. And therefore, it ought
to do certain compiler-type data structures. And therefore, before
I sent it out, I ripped out the linear searches I was using, and
I put in the extra ten lines to _______
as if dumb hashing
takes a lot of smarts. Also, hashes was one of the first things
people knew about
the first major hashing paper came to
Bell Labs, as it turns out, but
MSM: Were you conscious of its being a sort of Bell Labs way of
doing things? Were you sensitive to a contrast with what the
guild rules were at Murray Hill, as opposed to everywhere else
in the world?
Feldman: No. Let me
there are several answers I should give
there. First, I was not terribly well traveled at the time, as
were the scientists, as well, in the CS community. So all the
computing I really knew, I picked up in the gutters at Murray
Hill. And therefore, I represent one of the flowers of that particular
culture. I've attempted to look around a lot later. At that
time, much of that I picked up. But, this is also not just a computing
atmosphere, but the scientific atmosphere of Bell Labs. This
is sort of the tail end of the golden age that people think about.
Of course, it's always the golden age if it gets old enough
the relatively free environment and all that good stuff. But
I really had picked that up. I'd had the amazing opportunity,
because I started basically the end of my freshman year at Bell
Labs
to be able to compare several institutions of magnificent
renown. Murray Hill, Princeton, Cambridge
and I didn't
see that Murray Hill came in third
in quality of staff or
in quality of atmosphere. I'd had dealings with Princeton, with
the math department and the astrophysics department and the computing
center. Since I'd spent as much time as possible in each of them.
So, it was an interesting atmosphere. The guild rules are just
sort of you ought to do things right, and if you're writing a
computer science program you ought to write it that way. I just
sort of said, 'Aw shucks, maybe if someone will ever want the
symbol to get big and having everything take quadratic time in
the main loop is going to be embarrassing. So, maybe I'll hash
it.'
MSM: You talk about obligatory show and tell. What were the show
and tells like?
Feldman: Well, they were obligatory. They were simply scheduled
alphabetically, manually. A carried-over tradition from the math
center, I believe.
MSM: That at least once a year, you had to have something interesting
to show people
Feldman: Yeah. Well no, you had to give a talk anyway.
MSM: (Laughing) Well, your expectation was that it would be interesting
Feldman: The purpose was to increase communication, and also to
make sure everybody did talk about something. It was the manager's
responsibility to make sure you were doing something at all, but
the assumption was
The original intention was that they
were to be three, easy, unprepared people ________. And sometimes
you could just use them for random discussions, so I scheduled
shortly after I did make,
so I just talked about it. I remember using another session,
probably did me no good managerially, but it was technically helpful.
Say I'm stumped on how to do I/O and the EFL language
anybody
got any ideas?
more or less
any suggestions how to
go about it? Attendance was widely variable. Some speakers always
got a high attendance, Mike Lesk, for example, always gave wonderful
talks to people who'd attend anyway, whether or not they were
sure what Mike was up to. Other groups would be attending more
coteries; when the theorist talked, typically the audience was
mostly theorists
plus the people who always go to talks
anyway. When the analyst talked, usually only the NA type
people plus me would show up. However, it was completely variable
just on Tuesdays at two, I guess, and you just show up. They
ranged anywhere from dull presentations to highly combative slinging
matches. I'm afraid our center picked up a reputation for knifing
speakers in the back. At one point Sam Morgan actually called
us together and basically said we had to be nicer to people.
MSM: In the back row it was just that you were combative
Feldman: Oh, no, no. In the front also. It wasn't
we didn't
assault after they left. We assaulted them while they were talking.
Wrong idiom.
MSM: No. I'm just associated with two colloquiums at Princeton,
one the Davis Center colloquium, which is the historical research
seminar
and then the program in the history of science.
Grad students have this reputation for raking speakers over the
coals, both groups. If you really want your work exposed, you
come and present it to those groups and hope you come out with
something.
Feldman: Well, we got a reputation for being too rough
red
flag for excessive
roughness. I remember Sam Morgan actually in a center meeting
actually saying we had to do something about this. But you know
my style happens to be like that, so I was perfectly happy. (Pause)
So, there's obvious care. You didn't hit a summer student over
the head. (Pause) Women, children, infants don't get assaulted.
But, through the club it was fair game to argue, and argue back
of course.
MSM: Yeah.
Feldman: Interesting affairs. And arguments would continue.
M make was your major
Feldman: That's probably the smallest thing I ever did, but probably
the best thing I'm known for. Similarly, I ended up doing a FORTRAN
compiler and I did EFL. Each one of them looked sort of accidentally
interesting and they took a lot longer than I'd hoped. I had
fair amount of FORTRAN expertise. I can dream in FORTRAN. I
was handed a copy of the FORTRAN draft standard, and was
utterly and completely appalled by it, and wrote a
since
we printed ______ on the first draft which caused me to end up
being consultant the FORTRAN standard committee. I ended up
it started to be super Ratfor,
and I took it over and it's the first compiling thing I'd ever
done. Internally, it's a real mess. It's actually got some slick
and cute things, which have actually come back to haunt me, recently
even. And then, since at this point I was sort of the complete
FORTRAN-er. When
it was decided to do the UNIX port, there were two justifications
being used for buying a machine other than the 1170. One to actually
port UNIX and to actually have UNIX service on another machine.
UNIX was looking important corporately, and also it looked like
an interesting problem; separately, the machine was supposed to
provide service to the NA people. It was observed that
that was fine, except that the fc
was an interpreter that didn't forward and had no use outside
of the PDP/11 and it wasn't very fast enough to use anyway
and we needed a FORTRAN compiler. I said, 'Oh, I'll write
one.' FORTRAN 77
as a language was just being codified and I wrote, I believe,
the first full scale compiler.
MSM: For f77
Feldman: Yes. f77 is
there's an argument about who wrote the one just before. I believe
mine was the first truly complete one. I've never looked at the
date; I've received a couple of letters. It was written to be
portable first version. Ran on
(Pause) I think on the
interdata, and then it took me a month to port it back to the
11, then it took four or five days to put it up on the nascent
VAX. So, for that reason, I have to be one of the first ten login
ID's on the VAX? This is relevant because for a while I had
a login on every UNIX VAX in the world. Because, it came distributed
with the first ten user ID's, and I have to be number nine.
MSM: I see.
Feldman: And most people forgot to clean out their login files.
The good old innocent days.
MSM: (Laughing) So, FORTRAN has always been part of you?
Feldman: Well, when it was needed, Ken put together fc
very early
just because somebody had a FORTRAN
program.
MSM: Every system had to have it?
Feldman: FORTRAN was sort of the standard language. That's part
of life. UNIX has done more than anything else in the world to
quash that attitude that FORTRAN is the standard language. Now,
if you ask somebody, 'what language are you going to write this
in?
for almost any of this, C is the default answer all
over the world. C can be viewed as the FORTRAN of the 70's.
In 1965, the standard answer would be FORTRAN. Very recently,
based on my compiler, a converter from FORTRAN to C was finally
written. Partly supervised by me, partly supervised by David
Gay. A rather weird inter-corporate project.
MSM: Well, I was engaged at Holmdel on a project that AT&T
was not successful in. It was AWIPS, advance weather interactive
processing system. Part of my job was to look into software development
environments. Part of the concern facing this was that the government
contractor called for roughly 1.2 million lines of government
furnished code, and what we gathered was about seven different
versions of FORTRAN
seven different machines. A simple
requirement was functional equivalence. Part of the thing we
were facing if we got the contracts
how are we going to
unpack all of that FORTRAN?
Feldman: Well, actually that wasn't quite as bad a job as you
thought, because FORTRAN had been partly standardized by the efforts
of _______. A young man, Andy Hall, was around, and got hooked
on that one, you now, early incarnation.
MSM: (Expresses agreement)
Feldman: So FORTRAN, which is a completely disreputable language,
with all the negative attributes you might ask, redolent of the
Victorian era. It Is part of my bones also, so alas there. How
I just happen to you know, a number of these projects more or
less happened due to lunchtime conversation, as you'll notice.
Similarly, I agreed to do f77,
but I said I wasn't going to touch the I/O library, which I knew
was going to be too awful, and it would be too hard and Peter
Weinberger, who was not a part of o27
at that moment, who will transfer a little later
said he'd
do that, and the treaty was signed over a french fry, more or
less.
MSM: (Laughing)
Feldman: He kept his bargain, I kept mine. Every so often we'd
have a discussion.
END of SIDE A
STU FELDMAN 9-20-89 (continued)
SIDE B
MSM: What thin line is between collaboration and trying to help
the people you want to help? So, where were we?
Feldman: We were discussing FORTRAN, I guess, and how these things
sort of happen through informal treaties. (Pause) Management
was not deeply involved. I think Elliot _____'s the only one
who suggested someone go write a FORTRAN compiler, but no one
had actually thought or suggested that I should be telling you
how to do it, which sort of struck me as an interesting challenge.
I did everything else in FORTRAN, so I did it
and the compiler
was a lousy compiler. But, it's also still in use after a decade.
It's part of UNIX and you have to pay money for the other ones,
and it's essentially correct. Little bugs are found only now
and then, but nothing drastic.
MSM: How long were you there, a part of 127?
Feldman: Until divestiture. I was never in any other organization,
not counting the fact that the number changed underfoot a bit.
I moved around from department to department at management whim.
But
I was always an odd ball. I was peripheral to everything,
so I remember one day I was called in and was told that I was
being reassigned instantly because of someone else's problem.
MSM: You mean someone else's problem
Feldman: Sandy Fraser had just been promoted, and Steve Bourne,
who was Denny's brother-in-law or something, was going to report
to him and that wasn't admittedly any good. So, he had gotten
rid of me and I was the exchange piece.
MSM: (Laughing)
Feldman: Approximately
I believe there was more intelligence
underlying it, Sandy Fraser was my department head for several
years. Since my interests tended to be weird and various, and
I wandered around
MSM: Is there a pattern to those interests as you look back?
Has there been a theme?
Feldman: If there's one theme in everything I've been interested
in it's been glue. Everything I've done has been pasting over
errors of other people and connecting up tools. So, make
is a way of getting around the fact that the command structure
didn't
doesn't solve the problem of keeping track of what
you're doing. And make is
a much better way than shell files, even if you aren't doing most
things, even if you aren't interested in it's concurrency updating
issues. EFL was a way of making FORTRAN look like C. f77
was possible because I could steal the code generator from the
C compiler. I'd get portability that way. So, I was actually
one of the early people to ride the portability wave of C. But,
I was basically gluing the FORTRAN world onto the UNIX. FORTRAN
had been used on UNIX, but it had never been sort of inherent.
I put it in the way you could mix FORTRAN and C. That was actually
one of my underlying goals
to make everything look portable
and clean. And many of the things I've done have been in this
way of bridging the two different worlds
with hacking in
between, as I like programming.
MSM: (Expresses agreement)
Feldman: So, that's probably the
if I have to say there's
a strand to the technical things that I've done and that I'm interested
in now, it's that of how do you use one technology to get you
out of the trouble of another one? (Pause) And I've been quoted
more than once on the line that one of the great things about
UNIX is that it lets you get out of the trouble s it puts you
into.
MSM: Well, you can fix it yourself.
Feldman: Yes. Precisely and
granted, many of the bugs problems
you got into could have been fixed by a system that was smarter.
But, on a system that was smarter, if you'd gotten into a similar
problem, you couldn't have gotten out of it. So, make
was possible, because you could ask the file system a dumb question,
and it would answer, and if you wanted to run a command, you would
just run a command. You didn't have to plan it in advance, you
didn't have to allocate anything, you didn't have to get Gods
permission
you just did the damn thing. Therefore, I just
put it together without thinking. (Tape skips) So, if you would
observe. Still, you could write a compiler without telling people
that I was going to write the official initial FORTRAN compiler
for UNIX
MSM: You just wrote it?
Feldman: Yeah. I just wrote it. I got stuck with it.
MSM: Did the mood change at all once the USG got started and the
thing began to become a standard for the company?
Feldman: At this point I should be very careful. The _______
was generally summarized around the Thanksgiving animal. From
our point of view, you know, the lords on the hill, we never quite
saw what they were doing or why. And therefore, these answers
are appallingly unfair, and so forth, and I should be careful
about insulting the former employer. But somehow, we never saw
anything good coming out of it.
MSM: Yeah, he understands that. (Laughing) Good luck at it ______?
Feldman: So
and therefore, it wasn't relevant to anything.
We did things and eventually they picked them up
because
they were there.
MSM: So you guys just continued to build the system you wanted?
Feldman: Yeah. During the period you're talking about
USG
started off in the mid-70's and so they would answer phone calls
and things, and that was good, because you can only answer the
phones 24 hours a day. (Pause) But, as an influence on what
was really going on rather than a retarding force, I don't think
there was any real attitude. We didn't expect good things per
se to come out of them. We just hoped they would be helpful.
Again, this is completely unfair and out of school, as it were,
and I had no administrative interests. I had no idea who was fighting
whom for what turf, or what the corporate benefits were and all
that. I only saw a small number of people that I cared about.
And indeed there were some okay people in the group. There were
turkeys, not a uniform appellation, it was just sort of a general
assumption. The full bureaucratization of UNIX didn't happen
until the '80's. At that point things were
that was getting
stiff. Of course, I left at the time divestiture, at which point
things were getting much stickier. The ABI and ADDIS were being
set up in the early eighties, and there were enough troubles there.
The FORTRAN saga
I have my files somewhere; a long list
of attempts to get FORTRAN transferred out my hair to USG and
so forth. The only way I ever got rid fully of FORTRAN was leaving
the company. The first time I got rid of it half-way was leaving
for a year at Berkeley.
MSM: UNIX is a way of (Tape skips) computing. It's a view of
what computing is about and how (Tape skips) It includes certain
things, but it also excludes certain views. What does UNIX exclude?
Or do you miss anything about, or did you miss anything about?
Feldman: Well, UNIX is a sparsely furnished or spartanly furnished
home. It lacks all the plush conveniences of professional operating
systems. The bad news is that over the years, it has picked up
much of the plushness and the lousy handling
switch metaphors.
It was
I'm not a car expert, but it was sort of the MG
of operating systems in the early days. It had just enough to
get you from here to there. It was fun to play with. It didn't
have the handling of a Buick or a Cadillac , nor did it have the
performance of a Ferrari. It was fun. And if you wanted to do
something, you did it. This openness went, however, with the
fact that things were going to change under your feet. More than
once, the C compiler died with me as its only user at two in the
morning, because Dennis is a late night person also. And at one
thirty, he might install a small bug. He was actually extremely
good at this. More than once, I was the first person to be hit.
And the good answer was that at two thirty, it would be fixed.
That's sort of the UNIX ethic. We were living in a high-risk,
fun, changing place. That hasn't been true, of course, for a
decade, since it became an official product, and a major force
in the universe. With all the problems of annual releases and
two year bug recycles. The technical things that were missing
all of the closed system properties that you got out of
let's say MAC LISP
assuming you wanted to be a list programmer.
Like good, you got all kinds of weird services. UNIX has gotten
by with the world's dumbest loader and pretty offensive debuggers
because nobody was going to build anything intrinsic. I'm talking
about sort of my neck of the woods, which is compilers, programming
languages, environments. Ditto the image
what makes the
system universal is that the bytes dream and the simple file system
___ of what it works on. It's not so easy to make this thing
work beautifully in a Window environment. It's been done remarkably
well. Pipes just aren't
simple un-typed byte streams aren't
the right unit. Ditto, the file is not the perfect object. The
Multics file system, in some ways, is much better at representing
objects, because of its possibility of having invisible objects,
and the possibility of having information associated with them.
So, from my weird historic view I view some of those ideas poking
back through objects. I suspect the small talk people will disagree
completely, but I know _______
MSM: It's an interesting observation, because the _____ came around
to show us their machine last year and they were talking about,
this was UNIX with a friendly face, easy to use. And I said,
well, UNIX to me means pipes and macros. Are you telling me that
you can pile icons on top of one another and make macros _______?
Oh, no, no, no we don't have _____. They said, but you can open
a command window and type a line. I said, well, I can do that
in DOS.
Feldman: Yep. So, basically there's a simple attitude that you
could get superposition, you could get connectivity, and so long
as you're willing to operate at a relatively dumb level of characters
and lines, things work beautifully. Bitmaps and stuff would have
been a hard battle to make
first class citizens, because they're not part of the world view.
And
you can't be everything.
MSM: Never.
Feldman: But if your view of the world is that you have a teletype
and a computer and a disk, UNIX is a superb fit to that world.
And it turns out that that isn't such a bad model all the way
up to CRAY and all the way down to the PDP-11. And there aren't
any PC's wimpier than the PDP-11.
MSM: I guess not.
Feldman: The market.
MSM: Okay.
Feldman: So, therefore
that's not a fully fair product view.
I mean UNIX is simply a superb, simple
but it's a time
bound concept. Computer science takes a very long time to change
to pick from one installed base to another.
MSM: Thank you sir.
Feldman: Okay.
MSM: I hope you'll give me a chance to come back if I have some
more questions.
Feldman: Sure, feel free.