Interview with Dennis Ritchie (2003)

In 2003 I was running a website called Unix.se. One day I figured, why not ask Dennis Ritchie for an interview? I fired off an email to dmr@plan9.bell-labs.com and he quickly replied advising me to “try some questions and see what happens”. So I did, and he graciously answered them. Looking back, I wish I’d come up with different questions and followed up on some – but hey, I was only 17 at the time. Anyway, I figured it’d be worthwhile digging it up from the archives.

Dennis Ritchie, Ken Thompson (sitting) and a PDP-11, 1972 Photo: Peter Hamer. CC BY-SA 2.0

February 6, 2003

How and when did you first come in contact with computers?

At some point when I was an undergraduate in college (about 1960) I went to some non-course talks about computers that intrigued me, and I signed up for the regular (introductory) one-term course. The first part was about analog computers, then a brief bit about punch-card equipment, then some about real digital computers, in which we prepared a program for the Univac I. I was an undergraduate Physics major, but began to intrigued more by both the theory and practice of computing. So in grad school my thesis work was fairly theoretical (hierarchies of recursive functions), but I also began to get more into the practical aspects. I was for three years one of the teaching assistants for successive versions of that same introductory course–which by that time had moved to the IBM 7094.

What do you consider your greatest achievement in the field of computing to be?

The single thing that I’m happiest about is that the notion of making the Unix system portable was mostly mine. C was already implemented on several quite different machines and operating systems, Unix was already being distributed on the PDP-11, but the portability of the whole system was new.

Any new accomplishments in sight? What are your current project(s)?

There is no new grand thing to announce–I’ve been spending more time on history! Over the past several years, I’ve been more in a managerial role. The visible things that have come from the group have been the Plan 9 system and Inferno, but I hasten to say that the ideas and the work have come from colleagues. I was more a pay-check signer and giver of talks when others just wanted to work.

How much time do you spend programming nowadays?

Little programming as such. I fix things now and then, more often tweak HTML and make scripts to do things.

Could you please describe a typical work day at Bell Labs? What software do you use?

I tend to come in late unless there’s a meeting, but spend a fair amount of time tending to e-mail communication. My own environment (on PC hardware) actually runs Windows NT, but it is used mainly as a graphics terminal connected to a Plan 9 server, in a way approximately analogous to an X windows client. The connection at home is now via cable modem (until last summer ISDN), and Ethernet at the office. Any editing, software work, and mail is done in this exported Plan 9. For stuff like getting Excel and Word things, plus much WWW browsing, I revert to NT.

Do you have any predictions as to the future of C?

C is declining somewhat in usage compared to C++, and maybe Java, but perhaps even more compared to higher-level scripting languages. It’s still fairly strong for the basic system-type things.

What’s your opinion on microkernels vs. monolithic?

They’re not all that different when you actually use them. “Micro” kernels tend to be pretty large these days, and “monolithic” with loadable device drivers are taking up more of the advantages claimed for microkernels.

Do you agree with Rob Pike’s thoughts on the (ir)relevance of systems research? (http://cm.bell-labs.com/who/rob/utah2000.ps)

Pretty much, although Rob was stating his case in a deliberately provocative way. It’s true that compared with the scene when Unix started, today the ecological niches are fairly full, and fresh new OS ideas are harder to come by, or at least to propagate.

What do you think about the development of Linux and the BSD variants? Do you think they’ll eventually replace all the proprietary Unix systems?

As a general phenomenon, I think they’re great, but they suffer from much the same struggles and competition that the proprietary ones did and do. Sun and HP, SGI, IBM, Digital others all have (or had) variants of the same thing– so too do Linux and the BSDs. Their proprietors may have different motivations for producing the variants, of course. And of course each does have its own attractions. There is a kind of brand differentiation, and this is one of the reasons why portability is hard.

Any thoughts about the GNU project? How did you first learn about it?

I can’t remember when I first learned about it, but a long time ago. The True-GNU philosophy is more extreme than I care for, but it certainly laid a foundation for the current scene, as well as providing real software. The interesting thing is the way that free-software ideas have begun to influence major existing commercial players. At the same time, much of it seems to have to do with recreating things we or others had already done; it seems rather derivative intellectually; is there a dearth of really new ideas? But still, it’s a great satisfaction that so much of it has built on top of a basis we helped to establish.

Who are some of the people that you admire? (in the computer world or otherwise)?

I’m not a person who particularly had heroes when growing up. Obviously, the person who had most influence on my career was Ken Thompson. Unix was basically his, likewise C’s predecessor, likewise much of the basis of Plan 9 (though Rob Pike was the real force in getting it together). And in the meantime Ken created the first computer chess master and pretty much rewrote the book on chess endgames. He is quite a phenomenon.

Outside work, what do you enjoy doing?

It all sort of merges together. Much of it is computer-related (the WWW and all that). Other than that, reading actual paper, probably. I’ve done a reasonable amount of travelling, which I enjoyed, but not for too long at a time. I’m a home-body and get fatigued by it fairly soon, but enjoy thinking back on experiences when I’ve returned and then often wish I’d arranged a longer stay in the somewhat exotic place.

Any music, literature or movies you can recommend?

I listen to mostly-classical music, but mostly by radio– I’m not an audiophile. For books, I don’t read much fiction, but like travel essays and good pop-science: say Stephen Jay Gould or Kip Thorne. Also some humor–I am a great fan of S. J. Perelman. Right now I’m reading John McPhee’s “The Founding Fish.”


Bonus

In 2002 I asked random Unix/open source folks for screenshots of their working environments and collected them on Unix.se. Naturally, Dennis Ritchie was one of them. Here’s what he sent on July 9, 2002:

Dennis Ritchie's desktop, july 2002

Attached is a (truthful) screenshot from when I read your mail.

The underlying OS is WNT 4, as might be guessed from the desktop display on the left. Almost all the space is taken up by a super-window running the drawterm program, an (approximate) analog of X server that’s connected to a Plan 9 CPU server (over ISDN; the server is at the main Bell Labs location, and I’m at home).

The biggest (pale yellow) window is a Plan 9 application called acme, which includes a mail utility showing your message. Smaller subwindows within the drawterm display are the mail-notifier program, and a shell window whose latest output is from our dictionary utility.

I also got one from Brian Kernighan:

Brian Kernighan's desktop, july 2002

my desktop is pretty boring, since it consists of xterm windows to whatever unix system i am using at the moment. the machine itself is likely to be running some x-window server like exceed on some flavor of windows, though for many years i just used an x terminal.