Saturday, October 15, 2011

Dennis Ritchie

I missed Radio 4's Last Word yesterday, but I've just looked it up on iPlayer. I particularly wanted to hear what they had to say on Dennis Ritchie, who died on Wednesday. I was shocked to find no mention of him. The BBC certainly noted his death, and acknowledged his immense contribution to today's IT. So why did they have nothing to say in their primary obituary programme?

For those who don't know, Dennis Ritchie invented the C programming language. Much of Windows is written in C; some of it is written in C++, which is based on C. If you prefer Mac to Windows, Mac OS X is based on the Unix operating system, which was written in C. In fact, Dennis Ritchie wrote much of the original Unix; that's why he invented C.

The importance of C cannot be over-estimated. By the TIOBE Index, C is, at the time of writing, the second most popular programming language in the world. But its influence spreads far and wide. Look at family trees of computer languages; at the time of writing, of the top 10 languages in the TIOBE Index, all but Visual Basic owe some of their heritage to C.

In the early days of the Web, any pages that were generated dynamically would typically be written in C or Perl. Nowadays, much of that back-end code might be written in PHP, Ruby or Java. Some major Web companies, including Google, Yahoo! and Youtube, use Python. All of these languages have to be interpreted or compiled, that is translated to machine code, before the computer can run them. With the exception of Java, the interpreters for all of these languages are generally written in C. Several Java compilers exist, typically written in C++.

Ritchie's influence extends to smartphones. Apple's iOS iPhone operating system is based on BSD, a variant of Unix. Google's Android is based on Linux, which is a functional copy of Unix. iPhone apps are written in Objective-C and Android apps are written in Java, both languages based on C.

I've written before about my slightly odd habit of reading computer manuals. It started with Kernighan and Ritchie (Yes, Ritchie - him again!) It took me about a quarter of a century to find another computer manual that came close in terms of readability.

There has been much written in the past couple of weeks about Steve Jobs. He was an architect, not a builder. He could say what he wanted software to do, but he couldn't write it. His fame stems mainly from his being a charismatic salesman. The artisan programmers who made his vision a reality did so using tools made by Dennis Ritchie.