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.