An email interview I had with the father of C in 2003

I was running a Unix website in 2003. One day IT occurred to me: Why not interview Dennis Ritchie? I sent an email to [email protected] and got a quick reply: “Just send me the question and see what happens.” So I did as he said, and he answered all my questions very kindly. In retrospect, I really should have asked more meaningful questions. But I can’t ask for anything, because I was only 17. All in all, I think this experience is worth digging deeply.

Dennis Ritchie (standing) poses with Ken Thomson in front of a PDP-12 in 1972 (Credit: Bell LABS)

When did you first touch a computer?

Sometime during my undergraduate years in college (around 1960), I attended some informal lectures on computers, and I found myself fascinated by them. So I applied for the one-semester introduction to Computer required course. The first part of the course dealt with analog computers, followed by an introduction to tape punching equipment, before moving on to the actual digital computer — the Univac I machine we were programming on. I was an undergraduate in physics, but I found myself interested in both computational theory and computational applications. Therefore, in the master stage, my research was basically about theory (the structure of recursive functions), but I also began to put energy into computing practice. I also worked as a teaching assistant for three years in the introductory computer course I took, but the machine for that course has since been moved to an IBM 7094.

What do you consider your crowning achievement in computing?

If I can only say one thing, it was basically my idea to make Unix portable. C had been implemented on many different models and operating systems, and Unix had been deployed on PDP-11, but the concept of making Unix portable as a whole was new.

Do you have any results so far? What project are you busy with recently?

I don’t have any noteworthy projects of my own lately — I’m shifting my focus to history! In the last few years, I’ve played more of a manager role. The only projects I had contact with were the Plan 9 system and Inferno from the development team, but I must say that it was not my project that led the development, but my colleagues. I was mostly in charge of payroll and giving presentations to applicants.

How much time do you spend programming now?

Very few. I’m mostly tinkering with HTML, writing scripts, you know

Can you describe what it was like to work at Bell LABS? What kind of software do you use?

I’m usually late unless I have a meeting in the morning. But I spend a lot of time each day dealing with email and communicating with colleagues. My current working environment (on my PC) is Windows NT, but I use Windows as a graphics terminal to connect to the Plan 9 server in the same way that you connect to the server through the X Window client. I can connect remotely through a Modem at home (upgraded to ISDN this summer) and use a LAN at the office. All text editing, software development, and email are done on Plan 9 through this connection. If I need to edit Excel, Word, or surf the Web, I switch back to Windows NT.

Do you have any predictions for the future of C?

C is losing ground in comparison with C++, perhaps with Java, or with other high-level scripting languages. But C is still very strong in the field of basic systems development.

What do you think of microkernels versus large systems?

From a user’s point of view, you won’t notice much difference between the two. “Micro” kernels can also be huge these days, and “large” systems come loaded with many removable drivers, which also take advantage of the “micro kernel”.

Do you agree with Rob Pike about the (absence of) relevance of systems studies?

Of course I agree, although Rob has made it a very contentious topic. This is certainly true today compared to when we started developing Unix. Today’s software ecosystem is so crowded that new ideas are hard to generate and spread.

What do you think of the development of Unix derivatives like Linux and BSD? Do you think these systems will eventually replace Unix?

[These systems] have become phenomenal things, and I think they’re fine, but these systems have been plagued by ownership for a long time, and are still plagued by it. Sun, SGI, IBM, Digital all have (or used to have) versions of the same system – implementing Linux and BSD repeatedly. These versions have different motivations for ownership, and of course, each version has its own appeal. This is the branding difference, and why portability is so difficult for these systems.

What do you think of the GNU project? When did you first hear about GNU?

I can’t remember when I first heard of GNU. The true GNU philosophy is actually more extreme than I thought, but it sets the stage for the current situation, and it does provide real software. One of the interesting things is that free software ideas are beginning to have an impact on major commercial companies today. At the same time, some of them are starting to re-wheel what we’ve already done; This should be a kind of derivation of knowledge. Are there really no new ideas? But it’s nice to see them build on the work we’ve done.

Who do you most admire (in or outside the computer field?)

I never grew up with a hero complex. Obviously, the biggest influence on my career was Ken Thompson.Unix was basically his work, as was the predecessor to C, and the Plan 9 system (although the actual development of Plan 9 was done by Rob Pike). Ken also created Belle, the first computer chess master program, and then rewrote books on chess endgames. He is really an extraordinary man.

Do you have any other hobbies besides your job?

I have many hobbies. Most of them are computer related (like the World Wide Web and everything). Other than that, I guess I just read books. I’ve traveled a lot, which I’ve enjoyed, but never for too long. I’m a bit of a homebody, so it’s easy for me to get tired when I travel, but when I look back on my experiences, I wish I’d stayed out longer, especially in exotic places.

What do you recommend for music, literature or movies?

I listen to classical music mostly, but mostly on the radio. I’m not a hi-fi fanatic. As for book reading, I don’t read science fiction books, but travel notes and excellent popular science books. Like books by Stephen Jay Gould or Kip Thorne. I also watch some humorous performances. I’m a fan of S. J. Perelman. I am currently reading The Founding Fish by John McPheede.

In 2002, I started a campaign on UNIx.se to collect desktop screenshots from Unix/open source people, randomly. Naturally, Dennis Ritchie is one of them. This is a screen shot he sent me from his computer, dated June 9, 2002.

Here’s a screenshot of Dennis Ritchie reading my email. (Click to view larger image [10])

The background of the screen shows the WIN NT 4 operating system, as YOU might have guessed from the icon in the bottom left corner of the desktop. Almost all of the screen space is taken up by a window called DrawTerm, a program (similar to) X Server that connects to the Plan 9 CPU server (via ISDN); The server was at Bell LABS ‘headquarters, while I was at home.)

I also got a desktop screenshot from Brian Kernighan:

[11]

My desktop is pretty boring because it consists of just a few Xterm Windows running on the Unix system I’m using. The machine itself is probably running X Window Server, not Windows, since I’ve only used X Terminal for years.

About the author:Huang Xiaofei

Huang Xiaofei: Graduated from Computer Science Department of Chongqing University, master of Software Engineering of Nankai University, SCJP. At present, I work as a software development engineer in the information center of a state-owned enterprise. The main technical interest is Java platform related technology…