Why Dennis Ritchie Is Important

I first heard of the death of Dennis Ritchie yesterday, through a link (from Twitter or one of my blog feeds) to Rob Pike’s short announcement on Google+.

(Rob Pike has another post up now.)

My first thought was, “I don’t even know when the last time was that he was in the media at all”. He was so private. In my entire career in computing, I barely remembered the occasional interview of him, since he never said anything outrageous or self-aggrandizing.

My second thought was, his impact on my life was profound, but in such a different way from the impact on my life by, say, Steve Jobs. Whereas Jobs by personal example and creation of consumer products inspired me to get into computing, Ritchie by his quiet contributions laid the very foundations for the work I actually do.

C

Ritchie invented the programming language C, for one thing; C grew into the foundation of almost all programming in the computing industry. I was feeling slightly bad about just having recently poked a little bit of harmless fun at the C family of programming languages, given the importance of C, but remembered that Ritchie said it himself: “C is quirky, flawed, and an enormous success”. So succinct, this comment, just like C with its spare syntax!

C was not so easy for me to learn at first, but mastering it eventually gave me a sense of real power and a basis for understanding and using higher-level languages. I learned how to implement and tune data structures using C. I studied the assembly language generated by C compilers to understand assembly language, as well as understand how compilers work. When learning high-level languages such as Scheme, I found it particularly useful to study the C code generated by some of the compilers for these languages. C was a lingua franca for understanding how things worked, a low-level language that was just a step above machine language. The mental model provided by understanding C and how it compiles is surely a required part of a complete education of a programmer!

C will still be alive a century from now, even if higher-level languages supplant it for most uses.

Unix

C was not invented in a vacuum. It was developed and refined by Ritchie in order to implement (along with Ken Thompson) the Unix operating system and complete programming environment. The world is profoundly indebted to Unix and its variants, of course. I have used some kind of Unix, happily, during my entire career. I have used a dozen Unix variants, from ULTRIX to SunOS to Apple’s A/UX to NetBSD to Linux, and finally to Apple’s Mac OS X, where my most important permanently open application is arguably Terminal (for the bash command line)!

Some form of Unix will still be alive a century from now. Its basic ideas and ideals are timeless.

Free and open source software movement

Finally, an entirely unintended consequence of Ritchie’s contributions to C and Unix was that they enabled the free software movement and the amazing community and products that developed from that movement. I have not only benefited from the availability of free software, but also I have been inspired by the sharing culture behind it, and live it every day. Even if Ritchie was not a direct part of it, the generous spirit in which he did his work and encouraged the spread of C and Unix outside Bell Labs somehow seems embedded permanently in the movement.

A century from now, Ritchie will still be remembered. I am sure of that.

comments powered by Disqus