Dennis Ritchie the designer and original developer of both the C programming language, and co-creator of Unix has died at age 71 after a prolonged illness.
It seems incredible from today's perspective that two people, motivated mainly by enthusiasm, should develop both an operating system and a programming language but that's exactly what Dennis Ritchie and Kenneth Thompson achieved.
They met and started working together at Bell Laboratories around 1968. At the time the Bell Labs (now Alcatel-Lucent) were famous as the home of the transistor and many other basic research projects. Ritchie and Thompson were given the brief to "investigate interesting problems in computer science".
Like all good teams, Ritchie and Thompson had different but complementary qualities. Dennis Ritchie had studied physics and then moved on to pure computer science via maths. His PhD thesis was on recursive functions, but he got bored with it and never submitted it. Ken Thompson was an electronics enthusiast. It would be too much of a simplification to say that Ritchie was the theoretician and Thompson the practician but the difference in their backgrounds must have helped rather then hindered their working together.
Ritchie and Thompson set out to implement an operating system but because Bell had just had a bad experience with the Multics operating system and it not the ideal time to look for official resources and so they started work with an obsolete PDP 7. The story of how the Unix project expanded and eventually saw the light of day is told in our history article, Ritchie & Thompson.
So how does C fit into this?
Ritchie and Thompson wanted to make Unix into an operating system that could be used on other hardware so rather than use assembler they decided to create a new high level language that would be close enough to the underlying machine architecture to be efficient. They would then re-write Unix using it Ritchie set off working on the language problem and the result, eventually, was C, so called because it was based on a stripped down version of BCPL, known as B. And C comes after B.
Ritchie and Brian Kernighan published the book The C Programming Language in 1978, following development at Bell Labs. The book was followed by a second edition, which was translated into a wide range of languages and is still read today as the bible of C programmers.
Ritchie and Thompson's achievements were repeatedly recognised. In 1983 they received the Turing Award from the ACM . The citation read:
"The success of the Unix system stems from its tasteful selection of a few key ideas and their elegant implementation. The model of the Unix system has led a generation of software designers to new ways of thinking about programming. The genius of the Unix system is its framework, which enables programmers to stand on the work of others".
In 1990 they were awarded the IEEE Hamming Medal and at the end of that decade they received the National Medal of Technology of 1998 from President Bill Clinton
"for co-inventing the UNIX operating system and the C programming language which together have led to enormous advances in computer hardware, software, and networking systems and stimulated growth of an entire industry, thereby enhancing American leadership in the Information Age".
This year they were awarded the Japan Prize for their development of:
"the UNIX operating system which has significantly advanced computer software, hardware and networks over the past four decades, and facilitated the realization of the Internet."
Ritche's impact on the current state of computing is profound.Generations of students grew up knowing Unix intimately - not only its outside appearance but its internals. Unix was part of the curriculum! This had two effects. The first was that there was a steady stream of graduates entering industry and being surprised that they didn't find Unix and second was that the Unix system grew as academic exercises turned into almost usable programs.
This academic breeding ground for Unix influenced its style and way of doing things. As any Unix disciple will tell you Unix is logical and you can get a lot done in a few key presses. As any Unix beginner will tell you, Unix is logical even at the cost of usability and working out which keys to press is often difficult!
Unix and the Unix way of doing things eventually transmuted into Linux and is now the server OS that powers industry and the Internet.
C on the other hand has been the basis for all of the C-like languages we all know and use every day - Java, C# and of course C++. Whenever you write a three-parameter for loop, for(init;test;inc), you owe a debt to C and should think of the fun that Dennis Ritchie had inventing it and making it all work.
Ritchie & Thompson
Unix pioneers awarded Japan Prize
The rise of people power - Computer languages in the 70's
To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Twitter or Facebook or sign up for our weekly newsletter.