Dennis Ritchie, one of the most influential people in the development of modern computing, passed away on October 8, 2011. Dennis designed the C programming language, and developed much of the Unix operating system. Its not my intention to go into great detail on the evolution of either of those. It suffices to say that C was the spark for languages like C++, Java, C#, and Objective-C – upon which most of the world’s software is built. Without Unix, we would not have SunOS, Linux, or MacOS X – heck, even the iPhone runs a stripped down Mach Unix kernel.
I felt compelled to write a tribute blog, because a lot of attention has been focused on Steve Jobs death on October 5, 2011. Without the work of the demure Dennis Ritchie, Jobs wouldn’t have much to sell. I saw no mention of Ritchie’s passing in the major news media. Most of it is still homage-de-Jobs and the recent Blackberry outage. I think that is truly a shame because Dennis Ritchie’s contributions and what they enabled are truly astounding.
In the summer of 1986, I was in my second year of university, taking summer courses to correct a “lack of discipline” I experienced in my first year. The University of Calgary computer science department allowed me to have an account on their DEC mainframes, even though I wasn’t taking any courses that really required it, because I had asked the administrators for access in order to learn C (in order to learn how to fully utilize the Unix operating system.) I’m grateful for the patience those administrators showed me, because I had a knack for getting into trouble (with computers.) Dave Mason and Keith Andrews, if you are out there, thanks.
I bought the K&R C book by Ritchie and Kernigan (on Dave Mason’s advice), and I was amazed how quickly I picked up the language; literally two weeks. Previously I had learned the procedural languages Basic, Pascal, Modula-2, and COBOL, and one thing about C stood out: it was concise. In very little text, requiring very little typing, you could build sleek programs. In some sense, that lack of verbosity was very enabling – especially at a time when auto-completion and code-generation didn’t exist because most terminals/computers didn’t have the horsepower.
I spent the next 20 years programming in C, or C derivatives like C++ and Java. This language was really a keystone in the development of everything digital. From your digital devices, their drivers, operating systems, to desktop computers, or other electronic devices; chances are a C compiler of some sort was used to turn that source code into machine instructions enabling them.
So thank you Dennis Ritchie, thank you for providing us the tools that continue to allow us to explore and solution the digital future.