Last weekend Dennis M. Ritchie, creator of the C Programming Language, the UNIX Operating System, The Plan 9 Operating System and many other key contributions to computing, passed away due an extended illness. I learned about it yesterday trough Rob Pike, former dmr’s colleague and friend.
I’m writing this post to honor him and his legacy. While I’ve seen people mourn his departure, I’ve also noticed most technical people don’t really understand why his work is important for today’s computing, so I’m here to give a refresh. Since I’m good with visual tools (mindmaps) I’ve made one to describe the extension of dmr’s contribution to the world. You can get a glimpse of how this is important. The main topics are their key contributions, the sub-topics are the current technologies that were built upon dmr’s work. Click on the image to see a larger resolution version.
The C Programming Language
You can name this a the mother of UNIX, UNIX-like and many programming languages that people use today. The focus on simplicity by giving just a small set of tools is where it’s power resides. Most operating systems available, and in development, today are written in C. Most of the services that make the Internet work have been programmed in C. C also influenced other languages such as C++, Objective-C, even Python and Google’s Go.
The UNIX operating system
Today’s Internet rely in UNIX-like operating systems running crucial services such DNS, webservers, email servers, etc. Nothing of this could be possible without an Operating system that was built with the simplicity and design that it has. The vision/philosophy behind is where it’s power resides. “write programs that do one thing and do it well”. The GNU Project, Linux, the *BSD where conceived on the idea of replicating such invention. Even Windows has some UNIX bits inside.
This is probably the less-known Dennis Ritchie’s contribution. Today is crucial. Web “2.0” would not be able to be AJAXian if there was not IPC. IPC means Interprocess Communication, simply put: make two system processes exchange messages. This foundation was key for concepts such threads, RPC and others. Today’s AJAX relies on the RPC concept, for instance.
So, either you are programming the next hot Web 2.0 or just writing a C program for playing with sockets remember there were giants on which shoulders you are standing now. Thank you Dennis, I have the book.
“UNIX is very simple, it just needs a genius to understand its simplicity.” -Dennis Ritchie