Dennis Ritchie Interviewed
An anonymous reader writes "Unix.se has published an interview with Dennis Ritchie (inventor of C, co-creator of Unix)." Not very technical, but Dennis shares his thoughts on GNU, kernel design, and more.
← Back to Stories (view on slashdot.org)
Interesting how modern day critics claim the gnu project to be too political, and try to rephrase free software rhetoric to be more palatable (sic) for business and those of a less "leftist" mindset, and he has the same beliefs, but for such a different reason: he existed before computing and software were touched by politics. He was co-developing UNIX before printer companies decided to have software contractors signing NDAs and closing off the specs, or vendor lock-ins.
Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
Any thoughts about the GNU project? How did you first learn about it?
Dennis Ritchie: (snip).... 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?
Yes. One of the inventors of Unix is wondering why the GNU (and by extension Linux) community is rebuilding something he made 30 years ago. I've been wondering the same thing myself. Aren't there any better ideas in the past 3 decades?
Has anybody else taken a look at his other lives?
I was laughing when I read the one in Brazil.
The network is the computer.
The correct machine for the job runs your code, be it your desktop, the server, the toaster down the hall in building 2.
I've played, I sorta like. It doesn't offer enough of an advantage over *NIX for me to change. Maybe when everybody has fiber to the desktop and people have evolved to want to share then maybe Plan9 will be more than a neat research too.
It does make you curious as to what the exact arguments of these people against Linux are. Especially since Linux has become such a fine platform for desktop environments (KDE, Gnome) nowadays. In most people's experience, Linux has been more reliable on the desktop as well as the server for quite some time.
It does make you curious as to what the exact arguments of these people against Linux are.
Simple: technically Linux is not that impressive... hear me out before you moderate this as a troll:
Suppose a bunch of volunteers got together in a garage and built a clone of the space shuttle. This would be an amazing feat, but nobody would claim that this makes the design of the shuttle any less outdated or flawed.
Linux is a clone of a decades-old operating system... let me correct that, Linux is the best Unix clone out there, but to quote Rob Pike "Linux's cleverness is not in the software, but in the development model".
Linux has no novel user model, no new UI metaphor, no replacement for the X11 mess (still waiting for display postscript). It has no alternative to the all or nothing Unix security model (root/luser), it has not improved over the "everything is a file" innovation from Unix.
That is why innovators like Rob Pike, Dennis Ritchie and Ken Thompson are not that impressed with Linux.
(heck, not even a decent replacement for the X11 mess... still waiting for
There are various bits of UNIX (and I include Linux here, as it's essentially a UNIX clone) that have been bolted on without regard for the elegance of the whole system. In particular, graphics, pseudo terminals and networking were all added late in UNIX's lifetime and considerably clutter the system and limit its capabilities.
Take the ubiquitous psueudo terminals as an example. Almost nobody actually uses a genuine VT220 (or whatever) as their input device. However, the output from every command-line program in UNIX goes through something that pretends to be such a device. The kernel has much elaborate stuff (the tty driver) built in to convince command line programs that they're talking to a real terminal. The kernel knows about command line editing, it knows how to print control characters nicely, and it knows what key means "word erase".
This is all crap! It adds unnecessary complexity to the kernel, and not only that, but every command line program that wants a a slightly more sophisticated interface (e.g. cursor-based editing) has to do it itself (c.f. GNU readline). This not only bloats the kernel and many of its applications, it also means that the commands are less versatile than they could be (requiring people to use tools like expect to demangle their output).
Under Plan 9, there are no special system calls devoted to terminals or networking: instead, the interface to device drivers is made more versatile (all you need is open, read and write to access a device driver, no fancy ioctls or fcntls required. This gets back to the original purity of the 7th Edition programming interface: programs are a joy to write, and once written can be put to many more uses, as the currency of command line programs (text written to stdin/stdout) is also the currency of device drivers.
Because everything is unified under one hood (the name space), I don't have to write a special program to get fancy functionality. Want to find out what programs have a particular file open? /proc/*/fd
grep filename
Plan 9 is all about the joys of writing less code, more cleanly, and finding it more useful when written; of having a box of tools that can be plugged together in a multitude of different ways, transparently and securely across networks; of having a clean user interface that is concerned principally with power and simplicity rather than appearance.
Of course in this day and age, when a word processor takes >2,000,000 lines of code and "features" are rated more highly than overall usability, it's not surprising that Plan 9 isn't that well known, or that Dennis Ritchie reverts to Windows NT in order to browse the web.
As for myself, I'll stick to Plan 9's (and Inferno's) deep joy for as long as I possibly can!
>> The GNU philosophy is intended to keep the software free - I don't care about your freedom to enslave my software.
>You know, that's a very good summary of GNU software. The freedom of the software is more important then the freedom of users. BSD applies the reverse philosophy. Which license is better, is subjective.
Close. The freedom of society to use the software is more important than any individual's freedom to use, or prevent others from using the software. That is usually called Socialism, versus Individualism. Welfare versus selfishness. Which philosophy is better, is subjective.
p.s. Personally, I dislike government mandated Socialism, but software, and "Intellectual Property" in general seems to be inflated in value and overly hoarded. Sharing information eventually increases compassion, so that charity should not need to be mandated from authorities.