An interview with Dennis Ritchie
Photo: Bell Labs
26 May 2011—Back in January, when the Japan Prize Foundation announced its 2011 awards, Dennis Ritchie and Ken Thompson were recognized for the development of Unix, and Tadamitsu Kishimoto and Toshio Hirano were honored for the discovery of interleukin-6.
The awards ceremony is normally held in Japan, but on 17 March, the foundation announced that the event would be moved to the United States because of Japan’s earthquake and tsunami. The awards were held on 19 May at the Bell Labs headquarters in Murray Hill, N.J. Ritchie and Thompson developed Unix while working at that lab, which is now part of the French telecommunications company Alcatel-Lucent. Thompson is now a distinguished engineer at Google; Ritchie is still affiliated with Bell Labs with the title "Distinguished Member of Technical Staff Emeritus." Besides his role in the development of Unix, Ritchie also invented the C programming language.
IEEE Spectrum Senior News Editor Samuel K. Moore attended the ceremony and took the opportunity to speak with Ritchie.
IEEE Spectrum: Unix and C are both your babies. Which is your favorite?
Dennis Ritchie: Well, C has certainly been more lucrative. The book [The C Programming Language, by Ritchie and Brian Kernighan] still generates royalties. Unix is bigger, but C is still used. And it is also more specifically my creation in the sense that it’s descended from a language that Ken did but changed quite a bit, between B and C. Those changes are essentially mine, although I talked to lots of people. With Unix, lots of people contributed.
IEEE Spectrum: You are quoted as saying that "C is quirky, flawed, and an enormous success." Is there anything you would have done differently?
Dennis Ritchie: There are lots of little things—I don’t even want to think about going down the list. Some of them were fixed in the standardization process. But there’s a lot of internal coherence in, say, the way the internal type system works. That doesn’t always make it easy to use. For example, the null-terminated arrays—character strings; character strings being arrays of characters terminated by a null. People have complained that it’s error prone in various ways, compared, say, to strings being a count and then the characters. The fact that a character string is just an array and there’s no place to put a count is really very fundamental to the workings of the language, even though it does make it error prone in various respects.
IEEE Spectrum: Unix has not only endured, it has quietly dominated the computing world. What do you think of the modern incarnations of your software?
Dennis Ritchie: I think it’s great. I won’t comment on the minor changes. Even though it’s not licensed the same way, and it doesn’t conform to the same standards, I think essentially Linux is a new implementation of Unix. And so in that sense I’m happy that it’s doing well and has done well.
IEEE Spectrum: On your website, you single out an obscure memo, "Proposing a Unix Portability Experiment," from around 1976. Is it significant for you because it represents a new way of thinking of Unix as a more general computing platform, and maybe even a new way of thinking about operating systems?
Dennis Ritchie: At the time we were porting Unix, I had to look fairly hard for references of any other system being ported. I found a few, but they never went anywhere. That was one of my particular contributions—Steve Johnson and I did that. Ken helped by doing a lot of fiddling in the kernel to enable the portability, but he was going off to Australia on sabbatical, so the actual portability work and the demonstration was done by me and Steve.
IEEE Spectrum: By the late ’70s, AT&T had all the elements in place for a sort of Internet version of the Minitel. Unix and all its utilities and services, such as e-mail, already existed, and personal computers running CP/M were around. AT&T had ISDN—we could have avoided the whole modem/narrowband era. Maybe we would have had the Web in 1985 instead of 1995. Do you think a big opportunity was lost? Did anyone at Bell Labs have a vision of that possible world?
Dennis Ritchie: The AT&T mentality was very much connection oriented. Long-time connections, like phone calls. Packet switching didn’t make sense to them. AT&T had a lot of opportunities to get in on the early Internet and turned up its nose.
IEEE Spectrum: The original idea for Unix was as a platform for phone system switches, wasn’t it?
Dennis Ritchie: Ken’s original intention was that he wanted to write an operating system. He started out, and I joined in fairly early. Apart from doing new and cool stuff, what guided us was really kind of selfish—to write tools we could use ourselves to make our lives easier: "I’d like such-and-such to do such-and-such, and that’s hard to do now. What kind of tool can I write to make that easier?"
IEEE Spectrum: What were some of the such-and-suches that you were after?
Dennis Ritchie: A lot of things, like the little languages that were started by Brian Kernighan. We were all interested in typesetting and documents—the notion that you could write a language for describing pictures, line drawings, and later, graphs, and drawing organic molecules. Unix made it all easier.
IEEE Spectrum: Do you have a favorite instance of Unix?
Dennis Ritchie: I think it’s cool that the Kindle is Linux based. Smartphones and things like that. Pretty amazing.