
Dennis Ritchie and Ken Thompson in 1972
The death of Steve Jobs has been discussed and his life memorialized over the last couple weeks, and for good reason. Jobs was one of those rare celebrities that the computer industry produces. He was a very public face for a very celebrated line of products and an evangelist for a way of thinking about how we, as a culture, use technology and integrate it into our lives.
Another computer legend died recently and, while his name recognition is no where near Jobs’s, without his work the current computer world might look very different, especially Apple products.
Dennis Ritchie (September 9, 1941 – October 12, 2011) created both the C programming language and (as one of many engineers) the UNIX operating system, both while employed at AT&T Bell Labs in the late 60′s and early 70′s.
The C Programming Language
Computers are only capable of carrying out a very specific number of simple instructions; they achieve complex tasks by stringing many (MANY) of these simple instructions together. This “machine code” can be complicated for humans to work with directly, especially on a large scale project, and so most computer programs are written in a “programming language” that translates ( or “compiles”) a human-friendly set of instructions into a computer-friendly set of instructions. Roughly speaking: the friendlier a computer language is to humans, the “higher-level” it is. The friendlier a language is to computers, the “lower-level” it is.
With C Ritchie created a bridge between the high and low-level. An elegant, structured language easy for humans to speak that translated very fluently to machine language. It was also very easy to create versions of C for different types of computers.
C has been so successful it has inspired or evolved into many other languages including C++ (its immediate successor), JavaScript (running in your web browser), Java (used in everything from cars, home appliances and ground-control for space missions), ActionScript (the language that makes Flash animations do clever things), and PHP (which runs this WordPress blog). Of the top ten most popular programming languages in 2011 at least seven of them are descended from C (or are, in fact, C itself.)
The UNIX Operating System
It’s hard to over-estimate the importance of the UNIX operating system. There are a lot of reasons that it’s become such a workhorse of the information age. Bell Labs distributed UNIX for free to universities, which meant an entire generation of computer professionals became deeply familiar with it and brought it out into the industry. Being written in C meant it was easy to port to new hardware. It standardized a very reliable system of allowing multiple users to access the computer and run programs at the same time. And, at the same time UNIX was being birthed, an agency of the U.S. Defense Department was beginning to develop the technology that would eventually evolve into the present-day Internet, and a version of UNIX called BSD (“Berkley Software Distribution,” one of those branches of UNIX that evolved from the free university distributions) ran most of it.
And finally: when Steve Jobs left Apple in 1985, he almost immediately began putting together plans for what would become the NeXT computer which was unveiled in 1988. NeXT’s operating system was called NeXTSTEP and it was based in large part on that same BSD UNIX operating system. Returning to Apple in 1997 he brought NeXTSTEP with him and it eventually evolved into what is now OSX.
Any OSX user who opens the “Terminal” window is essentially opening a window onto a UNIX command line that any computer science major in 1975 would feel right at home with.