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
-
Juno Tab 3 Launches with Ubuntu 24.04
Anyone looking for a full-blown Linux tablet need look no further. Juno has released the Tab 3.
-
New KDE Slimbook Plasma Available for Preorder
Powered by an AMD Ryzen CPU, the latest KDE Slimbook laptop is powerful enough for local AI tasks.
-
Rhino Linux Announces Latest "Quick Update"
If you prefer your Linux distribution to be of the rolling type, Rhino Linux delivers a beautiful and reliable experience.
-
Plasma Desktop Will Soon Ask for Donations
The next iteration of Plasma has reached the soft feature freeze for the 6.2 version and includes a feature that could be divisive.
-
Linux Market Share Hits New High
For the first time, the Linux market share has reached a new high for desktops, and the trend looks like it will continue.
-
LibreOffice 24.8 Delivers New Features
LibreOffice is often considered the de facto standard office suite for the Linux operating system.
-
Deepin 23 Offers Wayland Support and New AI Tool
Deepin has been considered one of the most beautiful desktop operating systems for a long time and the arrival of version 23 has bolstered that reputation.
-
CachyOS Adds Support for System76's COSMIC Desktop
The August 2024 release of CachyOS includes support for the COSMIC desktop as well as some important bits for video.
-
Linux Foundation Adopts OMI to Foster Ethical LLMs
The Open Model Initiative hopes to create community LLMs that rival proprietary models but avoid restrictive licensing that limits usage.
-
Ubuntu 24.10 to Include the Latest Linux Kernel
Ubuntu users have grown accustomed to their favorite distribution shipping with a kernel that's not quite as up-to-date as other distros but that changes with 24.10.
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