In Memory of Dennis Ritchie

About an hour ago I heard the tragic news of Dennis Ritchie’s passing. Feel free to pass by this, but Dennis Ritchie was a huge inspiration to me. I may not have known him personally, but he has touched my life in more ways imaginable. He was an incredibly brilliant person, and a great mind is now gone from this world. In spirit, however, he will never be forgotten… not if I can help it.

Who was he? He was the creator of the C Programming Language, and one of the creators of the Unix operating system – the original from AT&T Bell Labs. Given that C is among my favourite computer languages, and Unix (and its derivatives) is absolutely my top operating systems for computers, his work is rather important to me. To those who don’t use either, or only one, well, just know that without Unix, the Internet as a whole may not be what it is today. Indeed, the people of Bell Labs that created Unix are very important for the Internet. At the time it was made, it was one of (if not the) first NOS. The OS indeed stands for Operating System. What does the N mean, though? Network. This was vital for the Internet (“network of networks”). What is such a thing without networking capability? Absolutely nothing. Besides being networked, it is also a multi-user (more than one user can be logged on at the same time, including the same user more than once) and multi-tasking (more than one process running on the computer at same time, albeit one program will be operating at a time) operating system. It is used to this day, and its derivatives more so (the Linux kernel is a free version of Unix).

Since Unix was written (or needed) to be powerful, flexible and extensible, there was one other issue to be resolved: it had to be portable (read: possible to run on different platforms). Originally, Unix was written in the assembly language. And while it is a powerful language, there’s a couple problems there.

  1. It is not portable. Different processors have different instruction sets, and therefore different assembly instructions.
  2. It’s not as easy to maintain, it takes a lot more code, and it is harder to read – especially if you are unfamiliar with assembly entirely.

The benefits of assembly (being its fast, efficient and closer to hardware) do not outweigh its cons, and therefore something different was needed.
The solution would be a new language: C – which was a “new” B language. So, back to the whole point of this history book: Dennis Ritchie designed and wrote the C programming language and Unix was then programmed in C by the team: Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna (and others I’m sure too). The ones that are more known are: Brian Kernighan, Ken Thompson and Dennis Ritchie. One of the well known styles of the C programming language is in fact K&R – which stands for Kernighan & Ritchie. Clever, I know. Although the current standard is beyond K&R C (which had some things to be improved, definitely), it is well known by pretty much every C programmer (and likely C++ programmers that never touched C).

And although there is far more to the story of the Internet, make no mistake: C and Unix are a very important part of it and both are very relevant to this day. Note that this was all in the late 60s to early 70s, too, so the very fact they’re both still around in an age where things are outdated almost as soon as it reaches the shelves, is highly impressive. Without a portable Unix operating system, the Internet as it is known may not be what it is.

I didn’t know Dennis, but I am indebted to him. I think the world is in many ways, certainly those who are on the Internet. Dennis Ritchie, rest in peace and thank you ever so much for your wonderful creations, your dedication and work at Bell Labs, and even for making this world a better place. In short: thank you for C, Unix and all the work you did that helped the creation of the Internet and the services that run on the Internet.