Dennis Ritchie: The C man who booted Unix
strcat(obit, "Quiet revolutionary");
Obituary It was 1968 and students and workers were on the march, protesting against the Vietnam War, with the western world seemingly teetering on the brink of revolution.
In the sleepy, leafy suburb of New Jersey's Murray Hill, a young maths and physics graduate was laying the groundwork for an entirely different revolution.
For Dennis Ritchie, 1968 was the first year of a 44-year career spent among the boffins of Bell Labs where he helped usher in the modern computing age.
Ritchie, who passed away this weekend – still as an employee of Bell, now Alcatel-Lucent Bell Labs – created the C programming language and, along with Ken Thompson, created Unix.
Thompson and Ritchie built the bridge that helped computers cross the chasm from being the kinds of room-size hulks owned by governments and corporations to working as systems for the everyman.
Computers were put the hands of private citizens and small businesses and helped create an entire hardware and software industry.
Nearly 40 years after he created it, C is the world's second most popular programming language, after Java and before C++, which both owe it a huge debt.
C was built on B, also from the Bell team.
It packaged a concise syntax with features and functionality that made it simple yet powerful tool for building a complex system such as Unix. Ritchie had joined Bell Labs in 1968 on the team working on building a general computer operating system.
Thompson was impressed and re-wrote most of Unix's components in C, with the kernel published in 1973.
C was important to the success of Unix. General-purpose programming languages had not existed before C; hardware proliferated and those making it tried to lock virgin customers in through the power of language. Herb Sutter, convener of the ISO/ANSI C++ Standards committee that owes its existence to Ritchie's work, summed up the topology of computing back then here:
Computers proudly sported not just deliciously different and offbeat instruction sets, but varied wildly in almost everything, right down to even things as fundamental as character bit widths (8 bits per byte doesn't suit you? how about 9? or 7? or how about sometimes 6 and sometimes 12?) and memory addressing (don't like 16-bit pointers? how about 18-bit pointers, and oh by the way those aren't pointers to bytes, they're pointers to words?).
C escaped the Labs and by the mid 1970s, developers began dropping languages including Programming Language One (PL/1) and the high-level ALGOrithmic Language (ALGOL).
C paved the way for object-oriented programming with C++ and went visual with Visual C and Visual C++ from Microsoft. Today, C and its descendent C++ are a popular choice for building operating systems, used in Windows and son-of-Unix Linux, and even bits of OS X. C also influenced Java from Sun Microsystems.
With success came danger: systems vendors being systems vendors, they reverted to type and started adding extensions to C to make it "run better" on their own particular hardware. This was an era when companies were running hard to win customers and establish market share.
It was decided, however, that C's continued success should be safeguarded by enshrining Ritchie's language as a standard. In 1989, the American National Standards Institute (ANSI) approved the ANSI C standard with International Standards Organization (ISO) following a year later.
Nobody came to Unix's rescue, however. During the 1970s, 1980s and 1990s, at least six flavours of Unix emerged: including BSD; XENIX from SCO; Hewlett-Packard's UX; AIX from IBM; and the Sun Microsystems and AT&T collaboration that was Unix System V R4 – which then went on to become Sun's Solaris operating system. As with C, vendors fiddled and added features, only for Unix to sink under the weight in the face of Windows from Microsoft and a new generation of cheap hardware from Intel.
What made C work? It is a high-level procedural language that used a compiler to access a machine's low-level memory and to execute, so it can span different platforms. Write a program in C for one vendor, and the application could be moved with relatively little porting to another. C is powerful: programs tend to be smaller than the equivalent BASIC code, and they execute fast. Programming with C is also accessible.
This might all have stayed locked up inside Murray Hill had it not been for the law. Under a 1958 US court antitrust court ruling, Bell Labs' then owner, AT&T, was required to license its non-telephone-related technology to anyone who requested it. When Ritchie and Thompson published their work on Unix in 1973, the labs had to hand over copies of Unix to several universities who requested it and began adding studies in Unix and C to their curricula.
In the wake of C and Unix, Ritchie was named head of the System Software Research Department at Bell Labs' Computer Sciences Research Center. He led two successive operating-systems projects in 1995 and 1996: Plan 9, a distributed operating system intended as the successor to Unix; and Inferno, which used Plan 9's distributed file system protocol but which could run as a virtual machine on other operating systems or run directly on the hardware. Inferno was written in a new language, called Limbo.
Computing, though, had moved on and it was Windows on Intel that was cutting the cost of computing and making the job of building programs easier and cheaper.
Unix has struck back, though – but using another name, Today, on the server, and on mobile the spirit of Unix lives on through Linux. Linus Torvalds announced his project of writing an open-source clone of Unix from scratch in 1991 while studying at university in Finland.
Ritchie and Thompson, meanwhile, went on to receive a Turing Award in 1983 and the US National Medal of Technology in 1998 for their work.
Looking back on this, Ritchie downplayed his role in the computing revolution he sparked. Talking to The Economist in 2004, he suggested that many of the improvements he came up with while developing C "looked like a good thing to do", implying anyone in the same place would have done the same thing.
Stroustrup calls it
However, Bjarne Stroustrup, who joined Bell Labs as a new graduate after Ritchie – where he designed and implemented C++ – saw it differently. "If Dennis had decided to spend that decade on esoteric math, Unix would have been stillborn," Stroustrup said.
Closing his tribute to Ritchie, Sutter said: "C is a poster child for why it's essential to keep those people who know a thing can't be done from bothering the people who are doing it."
Jeong Kim, Alcatel-Lucent Bell Labs president, told The Reg that Ritchie will be missed. "He was truly an inspiration to all of us, not just for his many accomplishments, but because of who he was as a friend, an inventor, and a humble and gracious man.
"We would like to express our deepest sympathies to the Ritchie family, and to all who have been touched in some way by Dennis," Kim said. ®