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.
Thankyou DennisI have used C exclusively as my main programming language throughout my entire career from leaving university all the way to retirement (and still do as a hobby), and where possible, UNIX and Linux.
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 shawmIt's a sad thing. I didn't know him, only heard his name in passing when I was learning about the C language last semester and using it extensively on my internship during the summer. I'm ashamed that I didn't recognize his name until the later part of the eulogy. His worked has touched me professionally, and for me, that is personal. He lived and died well.
Goodbye World (2)I taught C Programming at the Higher Technical Institute, Nicosia, Cyprus back in middle 80 and early 90s and I had a dozen of books to recommend to my students. However, the one at the top of the list was Ritchie's and Kernighan's "The C Programming Language". As for many C fans the book is still on my library as the finest and best book on C language.
Ritchie's memory will remain for ever with all of us who teach/taught good programming style.
Thank you Master.
Rest in Peace, DennisI am very sad. A great visionary is gone.
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 worldI learned about his death several days later, and I felt really angry at the media not reporting on the death of someone whose work is now one of the foundation of all IT infrastructures (to say the least).
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 RIPDennis went to our university in Caracas. His memory will remain forever in our Alma Mater. Check this photos of his visit to USB: http://ldc.usb.ve/fotos.php
RIP DennisI liken Kernighan, Thompson and Richie's contributions to computing to Bach, Haydn and Beethoven's contributions to music. The power and grace of K&R has been lost on this generation, and needs to be found again.
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 longVery moving eulogy for a man whose work did indeed affect innumerable lives, including my own. I can't say that I'll miss Dennis Ritchie because I didn't know him, and that makes me a little sad. For people who did know him, I'm sorry for your loss.
RIP DennisWe all stand on the shoulders of the giants who've preceded us... often without recognition or credit, especially as the years pass. Thank you, Dennis, for your seminal contributions to our art and profession -- and thank you, Maddog, for your moving eulogy and tribute. -- Lorin
I told you that I was writing this with tears in my eyesIn any case, the spelling of "Caracas" is corrected.
Elegance, BeautyI still value elegance and beauty in code, this I wholly attribute to dmr. Along with Don Knuth he was, and always will be, an inspiration.
Small correctionThe name of the city is "Caracas".
Anyway, a very nice article, congratulations. Mr. Ritchie will be sorely missed, may he RIP.
RitchieI'm 43 now, and I know that I and probably everybody of my generation owe our first jobs to what Ritchie created with C and UNIX. Regardless of what it led to, that was where we all started. I looked over at my bookshelf this morning and checked out my old K&R. It's tattered and torn and looks like it survived a hurricane! Good times! He will be missed.
He is not forgottenHis work was a foundation. I was amazed by it and still now.
subjectThanks for sharing!
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.
RIPHis work will never be forgotten. Leaving behind something as awesome as the C language is something only a true genius can do.
MSBuild is now just another GitHub project as Redmond continues its path to the light.
New rules emphasize collegiality in coding.
Upstart lands in the dust bin as a new era begins for Linux.
HP's annual Cyber Risk report offers a bleak look at the state of IT.
But what do the big numbers really mean?
.NET Core execution engine is the basis for cross-platform .NET implementations.
The Xnote trojan hides itself on the target system and will launch a variety of attacks on command.
Spammers go low-volume, and 90% of IE browsers are unpatched.
Adobe scrambles to release patches for vulnerable Flash Player.