paserbyp: (Default)
[personal profile] paserbyp
Q&A with Ken Thompson, creator of UNIX.

Q: At what point in Unix's development did it become clear it was going to be something much bigger than you'd anticipated?

A: The actual magnitude, that no one could have guessed. I gather it's still growing now. I thought it would be useful to essentially anybody like me, because it wasn't built for someone else or some third party. That was a pejorative term then. It was written for Dennis and me, and our group to do its work, and I through it would be useful to anybody who did the kind of work that we did. And therefore, I always thought it was something really good that was going to take off. Especially the language [C]. The language grew up with one of the rewritings of the system and, as such, it became perfect for writing systems. We would change it daily as we ran into trouble building Unix out of the language, and we'd modify it for our needs.

Q: A symbiosis of sort.

A: Yeah. It became the perfect language for what it was designed to do. I always thought the language and the system were widely applicable.

Q: The presentation for the Japan Prize mentioned that Unix was open source. Was Unix open source from the beginning?

A: Well there was no such term as "open source" then.

Q: I was under the impression that Unix really became open source with the Berkeley distribution..

A: No, we charged $100, which was essentially the reproduction cost of the tape, and then sent it out. And we distributed, oh, probably close to 100 copies to universities and others.

Q: Skipping several decades of work, let's speak about Go. I was just at the Google I/O Conference, where it was announced the Go will be supported on the Google  App Engine. Does that presage a wider adoption of Go within Google, or is it still experimental?

A: It's expanding every day and not being forced down anybody's throat. It's hard to adopt it to a project inside of Google because of the learning curve. It's brand new, and there aren't good manuals for it, except what's on the Web. And then, of cource, it's labeled as being experimental, so people are a little afraid. In spite of that, it's growing very fast inside of Google.

Q: In the presentation, you were quoted on the distinction between research and development. [Thompson said research is directionless, whereas development has a specific goal.] So in that context, is Go experimental?

A: Yes, When we [Thompson, Rob Pike and Robert Griesemer] got started, it was pure research. The three of us got toether and decided that we hated C++. [Laughs]

Q: I think there's a lot of people who are with you on that.

A: It's too complex. And going back, if we'd thought of it, we'd have done an object-oriented version of C back in the old days.

Q: You're saying you would have?

A: Yes, but we were not evangelists of object orientation. [In developing Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into language fro any reason.

Q: It's a lean language, indeed. Returning to Unix, when you and Dennis worked together, how did that collaboration operate? Were you working side by side?

A: I did the first of two or three versions of Unix all alone. And Dennis became an evangelist. Then there was a rewrite in a higher-level language that would come to be called C. He worked mostly on the language and on the I/O system, and I worked on all the rest of operating system. That was for the PDP-11, which was serendipitous, because that was the computer that took aver academic community.

Q: Right.

A: We collaborated every day. There was a lunch that we went to. And we'd talk over lunch. Then, at night we each worked from our separate homes, but we were in constant communication. In those days, we had mail and writ [pronounced "write"], and writ would pop up on your screen and say there was a message from so-and-so.

Q: So, IM, essentially.

A: Yes, IM. There was no doubt about that! And we discussed things from home with writ. We worked very well together and didn't collaborate a lot except to decide who was going to do what. Then we'd run and very independently do separate things. Rarely did we ever work on the same thing.

Q: Was there any concept of looking at each others code or doing code reviews?

A: [Shaking head] We were all pretty good coders.

Q: I suspect you probably were. Did you use any kind of source code management product when working together?

A: No, those products really came latter; after Unix. We had something like it, which we called "the code motel", because you could check your code in, but you couldn't check it out! So, really, no we didn't.

Q: I bet you use source code management today, in your work on Go.

A: Oh, yes, Google makes us do that.

Profile

paserbyp: (Default)
paserbyp

January 2026

S M T W T F S
     1 2 3
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Page generated Jan. 3rd, 2026 07:12 pm
Powered by Dreamwidth Studios