RIP Dennis
Paw Prints: Writings of the maddog
Over the weekend of October 8th a giant of computer science died. Like a lot of really great people in the field, he died without a lot of fanfare, most of his friends and colleagues finding out about his death several days later. I heard about his death last night from a post by Rob Pike, and while I wanted to blog about it last night, I found I could not, so I waited until this morning. I sit here typing with tears streaming down my face.
Dr. Dennis MacAlistair Ritchie, known as “Dennis” to many people and “dmr” to many more, passed away the weekend of October 8th after a long illness.
I will not discuss here the many accomplishments of the man, as there will be much discussion of this in other places easily found with a simple Internet search.
I will point out that unlike a lot of computer science people mentioned in news stories, Dennis did actually graduate from Harvard with earned degrees in applied mathematics and physics, and in 1968 earned a Ph.D from Harvard while he was working at Bell Laboratories. Harvard was the home of the Mark I and Mark II computers during World War II, some of the first digital computers in the world.
Yesterday when I heard of Dennis' death I tweeted “programmers everywhere owe him a moment of silence”. There may be programmers that question that, so please read on.
In 1969 when I was a college student learning about these wonderful machines known as “computers” there were a plethora of languages going on around the world. Algol, FORTRAN, COBOL, SNOBOL, PL/I, APL, LISP, ....the list goes on and on. And of course there were many, many machine and assembly languages, since different computer architectures were rampant.
Ken Thompson and Dennis Ritchie (hereafter referred to as “Ken” and “Dennis”, for I am sure they would not object to the informality) were working at Bell labs on an operating system that would soon be called “UNIX”. They had written the first version of this operating system kernel in machine language, but when the PDP-7 that they were working on ran out of address space and speed, they migrated UNIX to a PDP-11, which required an entire re-write of the operating system not only because of a different machine language, but a different machine architecture.
For those of you not familiar with the PDP-11 architecture, it has a CISC instruction set that many people think was the epitome of machine architecture. Complex enough to give flexibility in coding, but compact and simple enough to actually remember. However, the entire address space of the PDP-11 was 64K of (initially) core memory for instructions and 64K for data. Certain processors of the PDP-11 did not have separate instruction and data space, so all the instructions and data of a process OR the kernel had to fit into one 64K space (there were separate spaces for the kernel and processes). To put this in perspective, today the keyboard driver of the Linux kernel is larger than 64K, yet Unix on the PDP-11 was a time-sharing machine that had a network stack and could do real-time.
Dennis took a language and a compiler that Ken had written called “B”, and changed it to a language and compiler called “C”. Perhaps because of the small address space of the PDP-11, or perhaps because Dennis and Ken shared the philosophy of “simple is better”, “C” tended to be a small, tight language with relatively few built-in features, mirroring the UNIX kernel itself.
Both operating system kernel and compiler relied on a set of standard libraries to provide much of the functionality that programmers wanted. Keeping this functionality outside the kernel not only helped make the kernel more stable, but maintainable as well.
Eventually there was a programming book written for the “C” language, “The C Programming Language” by Dennis and Brian Kernighan, (afterwards known as “K&R”) which was only 228 pages in length. I bought a copy of this book, and marveled at its brevity, for it not only described the language so a person could program in it, but it also showed elements of programming style as the author of the language would envision. Today that book remains one of the thinnest, but most important books on my bookshelf. I often locate it just by looking for “thin white book”.
I compare “C” to the evolution(?) of Ada. When I first saw a draft language definition of Ada it was about the size of K&R, and I thought that it might have promise. Then the language was opened up to committee and the next time I saw the Ada language definition it was about the size of the Bible, both testaments. I knew Ada was doomed to failure. Today Ada has faded from the forefront of compilers and languages, while “C” remains one of the top languages.
“C” has its foibles and its critics. Some say that the inclusion and use of pointers makes the language prone to error. Others point to the fact that “C” is not “object oriented”. However good programming practices can diminish or remove most of these issues while still giving the programmer the absolute control that “a high level assembly language” can give, and of course there have been offshoots of “C” in the forms of C++, Objective-C, and C# as well as other popular languages.
Dennis was more than just “UNIX” and “C”, however, he was also a researcher, and after the development of “C” and “UNIX” were passed on to other people, Dennis worked on “Plan 9” and other research topics.
He was also active in the USENIX organization, and attended the events periodically. A quiet man, not looking for “worshipers”, he was very approachable to talk about technologies or life in general.
In later years, as the computer market grew and younger people with less knowledge of history came into the field, I found it sad that Dennis would be at a USENIX reception with a glass of wine in his hand and no one would be talking to him. Dennis was very approachable, and the people who did not recognize him and speak with him were the losers.
Dennis was also very humble about his contributions. His web page made jokes and downplayed the effect that he had on various projects. He was gracious enough to act as the master of ceremonies for the STUG and Flame (Lifetime Achievement Award) that the USENIX organization awarded to his former supervisor, Doug McIlroy.
Dennis was one of the “friends” of John Lions, who wrote a definitive book on the workings of the UNIX kernel, who went to the copyright holder (SCO) and asked them to allow John to publish his twenty year-old work so John could see it published before John died. Dennis later cooperated with me by signing several copies of that book to auction off, helping to provide a chair for John at the University of New South Wales in 2006. This was the first chair at UNSW funded by the efforts of alumni and “their friends”. It was John's book "Lions' Commentary on UNIX 6th Edition, with Source Code" that is credited with being the "most photocopied technical book of all time", and is still a recognized source of teaching students good programming techniques.
One group that did not miss out on speaking to Dennis was Simon Bolivar University in Caracas, Venezuela. I was visiting Caracas as a DECUS participant in 1995, and the University invited me to their campus. A couple of years before they had dedicated a computer laboratory to “Dennis Ritchie”, and Dennis had made the trip to attend the dedication.
As a historian of computers I can not say that if Dennis had never invented “C”, throughout the years some other person might not have created a language as powerful or with as much influence. Certainly there have been many languages and operating systems written that have had great influence on computer science and the computer industry.
Taking into consideration, however the history and the length of evolution of both “C” and UNIX, there are few languages and operating systems that have had as much effect and power, fewer that have generated as many jobs, as much revenue, or had as much impact over such a long time.
Dennis, my old friend, job well done.
Comments
comments powered by DisqusSubscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.
-
Fedora KDE Approved as an Official Spin
If you prefer the Plasma desktop environment and the Fedora distribution, you're in luck because there's now an official spin that is listed on the same level as the Fedora Workstation edition.
-
New Steam Client Ups the Ante for Linux
The latest release from Steam has some pretty cool tricks up its sleeve.
-
Gnome OS Transitioning Toward a General-Purpose Distro
If you're looking for the perfectly vanilla take on the Gnome desktop, Gnome OS might be for you.
-
Fedora 41 Released with New Features
If you're a Fedora fan or just looking for a Linux distribution to help you migrate from Windows, Fedora 41 might be just the ticket.
-
AlmaLinux OS Kitten 10 Gives Power Users a Sneak Preview
If you're looking to kick the tires of AlmaLinux's upstream version, the developers have a purrfect solution.
-
Gnome 47.1 Released with a Few Fixes
The latest release of the Gnome desktop is all about fixing a few nagging issues and not about bringing new features into the mix.
-
System76 Unveils an Ampere-Powered Thelio Desktop
If you're looking for a new desktop system for developing autonomous driving and software-defined vehicle solutions. System76 has you covered.
-
VirtualBox 7.1.4 Includes Initial Support for Linux kernel 6.12
The latest version of VirtualBox has arrived and it not only adds initial support for kernel 6.12 but another feature that will make using the virtual machine tool much easier.
Thankyou Dennis
Therefore the effect of Dennis's contribution has had on my life is profound to say the least.
A sad time.
Thank you Dennis
A shawm
Goodbye World (2)
Ritchie's memory will remain for ever with all of us who teach/taught good programming style.
Thank you Master.
Rest in Peace, Dennis
Dennis Ritchie has revolutionized computer science like no one else, he was a great programmer and a special person, whose work and influence will never be forgotten.
Rest in Peace.
Goodbye world
I emailed them to let them know and hope for them to give him proper credit, which they did without anyone asking when Jobs died. Fingers crossed, he may not have been looking for worshipers but his tremendous work deserves to be more visible to the eye of the common Joe.
I too have a copy of KnR's book and it is still recommended to any newcomer in the programming world for a reason. It is always a pleasure to write something in C, seing how concise and yet almighty that langage is.
"Goodbye World", and thank you.
Dennis RIP
RIP Dennis
RIP Dennis. I may not have known you, but your contributions have enriched my life, and that of many millions of people.
George (aka SndChaser)
so long
RIP Dennis
I told you that I was writing this with tears in my eyes
md
Elegance, Beauty
Small correction
Anyway, a very nice article, congratulations. Mr. Ritchie will be sorely missed, may he RIP.
Ritchie
He is not forgotten
subject
He turned out to be a major influence to my life, and certainly many more, even if very indirectly... And I'm very happy for that.
RIP