Each day since Dennis Ritchie passed away my 1978 copy of “K&R” — The C Programming Language, by Brian W. Kernighan & Dennis M. Ritchie — has glared balefully at me asking why I haven’t written something about his effect on my professional life. Indeed, the book, which replaced the stapled, hand-copied notes that went before it, has followed me across the country and to and from many companies. Its voyage parallels my own, and that of much of the computer industry.
First, in the 1970s, when C was avant garde — a research tool used by Bell Labs and a few Universities to help provide a serious computing environment on small machines — I used the book to help me get my Computer Science degree, writing a compiler that could run the code in the book. Then in the early 1980s, the book was my reference manual for developing real C compilers for monster mainframes, which then ruled the computing world.
Next, the book went with me, off to workstation maker Sun Microsystems, where Unix had finally reached the big time. Sun and dozens of other companies had found religion in the straightforward and easily-licensed C language and Unix operating system, ushering in the dawn of open systems and multi-vendor collaboration on system software. C was indeed king there.
The book got a long rest after that, C having been superseded for me by its later big brothers, C++, C#, and its spiritual descendant, Java. The simple sample programs in the original 228-page book, starting with the timeless classic “hello, world,” having been outpaced by monstrously large tomes on specialized programming for window systems, frameworks, and using esoterica like patterns. I missed the book’s straightforward and almost folksy writing style, which made even the most timid reader feel like a superhero at the keyboard.
But the book wasn’t finished with me. When our daughter dove into the world of robotics, I found that the C language, in close to its original form, was alive, well, and thriving. The book came off the shelf in service of teaching another generation a simple, elegant way to program that allows the developer to be directly in touch with the innards of the computer. The lowly integer variable — int — has grown in size over the years as computers have grown, but the C language and its sparse, clean, coding style live on. For that we all owe a lot to Dennis Ritchie.
Dennis Ritchie will be remembered for many accomplishments, starting with being the co-creator of the Bell Labs Unix operating system, forerunner of not just today’s Unix, but FreeBSD, Linux, Android, and Mac OS — for which he and Thompson won the Turing award and the National Medal of Technology. But for me I’ll always remember best the excitement I felt at being able to explore a programming language on my own when I first got my copy of The C Programming Language.
C is a general-purpose, imperative computer programming language, supporting structured programming,lexical variable scope and recursion, while a static type system prevents many unintended operations. By design, C provides constructs that map efficiently to typical machine instructions, and therefore it has found lasting use in applications that had formerly been coded in assembly language, including operating systems, as well as various Application software for computers ranging fromsupercomputers to embedded systems.