Friday, October 14, 2011

R.I.P. Dennis Ritchie

Steve Jobs passed away a short while ago and the hue and cry continues. A very public passing, and world-wide.

Well, Dennis Ritchie passed away just a day or two ago, and the world was silent (mostly … tech-heads who know who he is are actively paying tribute I have read.)

Used without permissionimage

So who was he? Well, the shortest possible answer is that he was the father of the C language. See this article for more info on his history … the subtitle of the article is “The Shoulders Steve Jobs Stood On” and that is almost literally true.

Basically, every device on the Internet is either built with C language, or is built with a language that is a derivative of C language or with one that is implemented in C language.

Further, the UNIX operating system, which dominates Internet devices and servers and is the core of all things MAC is also written in C language. So, you see, almost everything you do every day in modern life was made possible by the work of Dennis Ritchie.

A great man has gone quietly, but will hopefully not be forgotten …

And by the way … an aside to my fellow computer scientists … have you read any of these seminal books by Dennis and his contemporaries?

  • The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie
  • UNIX Programming Environment, Brian W. Kernighan and Rob Pike
  • The Practice of Programming, Brian W. Kernighan and Rob Pike
  • Software Tools, Brian W. Kernighan and P. J. Plauger
  • The Elements of Programming Style, Brian W. Kernighan and P. J. Plauger
  • The AWK Programming Language, Alfred V. Aho, Brian W. Kernighan and Peter J. Weinberger
  • … and so on.

I think that books like these should be required reading in this craft so that new generations of programmers can be introduced to the incredible simplicity and elegance of solutions that came before.

Today’s dog’s breakfast of languages pretty much all evolved from work that is very well documented in these books. Fundamental techniques like the UNIX pipeline are still relevant today, solving certain problem sets faster and easier than any existing technology. Ever watch someone try to write a Java script or program to try to do what a few lines of SED, AWK and GREP in a pipeline can accomplish in seconds?

When you stand on someone’s shoulders, you should _know_ it …