Software Development

Two developers' tributes to Dennis Ritchie

The contributions of Dennis Ritchie, who is known as the father of the C programming language, are discussed by developers Justin James and Chad Perrin.

Computer scientist Dennis Ritchie, who is best known for creating the C programming language and for co-authoring The C Programming Language with Brian Kernighan, has passed away at the age of 70. Developers Justin James and Chad Perrin share their thoughts on the innovator and his legacy.

From Justin James:

Dennis Ritchie has died. While the world is still talking about the passing of the iconic Steve Jobs, Dennis Ritchie was barely known outside the world of software development, and his passing will barely be noted in the mainstream. Indeed, even most programmers today have either never heard of him, or are not quite sure what his contribution to the world of computing was. To put it simply, nearly every system you use, just about every piece of consumer and professional electronics on the market, depends upon Dennis Ritchie's contribution to the world of computing: the C programming language. Now time for some ancient history.

Dennis Ritchie and Ken Thompson were coworkers at Bell Labs. At one point, they were involved in the development of the Multics operating system, which was a very influential operating system. Then they started working on UNIX. Thompson wanted a better language for programming on UNIX, so he wrote the B programming language. Not much longer, Ritchie took a lot of the ideas from B and made a language of his own for programming UNIX: C. Later on, Ritchie teamed up with Brian Kernighan (who also worked at Bell Labs) to write the definitive book on C, The C Programming Language (popularly known as "K&R").

If writing the language that most major UNIX systems are written in wasn't enough, other platforms also used C. Look at the lineage of Apple's OS X, for example and its roots in UNIX. Microsoft Windows, in its guts, has a pile of C. Of course, UNIX-like operating systems like Linux and BSD are also written in C. And C has become a very popular language for embedded systems development; only recently have ROM chips become speedy enough to allow for Java to start replacing C and Assembler for firmware development. Most of your performance-dependent applications are either written in C or C++, which is derived from C. Applications such as Web browsers and office suites such as Microsoft Office are typically written in C++ as well. And earlier this year, the next generation of C++ was released, showing that the C language is still alive and well. The Objective-C language (which is also derived from C) is the basis for most iPhone and iPad applications. It is safe to say that the modern world runs on top of C. Things would have worked out just fine even if C had never been invented -- there were other people working on languages that filled similar roles -- but C was what stuck.

Dennis Ritchie never had the visibility of a Bill Gates or a Steve Jobs. He didn't head a billion dollar company, he was not really into public appearances, and he certainly never sought fame for its sake. If the legends like Gates or Jobs are the Buzz Aldrins of the industry, Dennis Ritchie is a Michael Collins. One stays in the news on a regular basis and is the public face of the industry, but the other played just as important of a role while staying in the background. All the same, Dennis Ritchie's contributions to programming are foundational, and if C or something like it had never been made, the world would be a poorer place for us to live in.

Dennis Ritchie, thank you for everything.

J.Ja

From Chad Perrin (this is reproduced from Chad's site with his permission):

In a recent posting to a Linux User Group mailing list, one of the members mentioned that Dennis Ritchie had passed away and went on to describe his formative years when he encountered, and used, the C programming language and Unix operating systems that would never have existed in their current forms without the influence of Dennis Ritchie. The following is adapted from my response to that list.

Real Contributions

At some point in the last couple days, I heard about Dennis Ritchie's passing. As I have remarked in a few venues, Dennis Ritchie has done a lot more for technology markets, the advancement of the state of the art, and the lives and livelihoods of people with an interest in computing technologies than Steve Jobs ever did -- and remember, everyone who loves his or her smartphone, uses TiVo, or browses the Web has an interest in computing technologies. This disparity in the good these two men did applies even if we discount the damage Steve Jobs has done when we tally his contributions. Despite this, I doubt discussion of Dennis Ritchie's passing will even reach 1% the volume of discussion surrounding Steve Jobs' passing. While tech pundits all over the Internet are singing paeans to the Second Coming of Steve Jobs, a true great is being ignored except in small niches -- a great innovator whose contributions make Jobs' look like making mud pies in the sandbox and whose damage done is immeasurably small beside the tremendous harm Jobs has caused (even if we only count the harm done via his time at Apple and his cult of personality). I speak, of course, of niches such as LUGs, for those LUGs that have noticed Ritchie's passing.

We lost Dennis Ritchie just as I have altered the direction of my career, turning toward professional C and C++ development. My first C and C++ source code encounter was about a quarter century ago, and while I have touched the stuff on occasion since then (including what amounts to 1.5 college courses around the turn of the millennium and occasional piddling about since then), I have never really seriously delved into C and C++ until now. I'm also about ready to become a FreeBSD port maintainer for a paste buffer utility written in C. The timing is ironic, and as I look at the copy of Kernighan & Ritchie's The C Programming Language -- often referred to by programmers as "The White Bible" or just "K&R" -- it makes me sad that I never considered tracking Dennis Ritchie down in person to ask him to sign the book for me. I might need to take that book and my copy of Kernighan & Pike's The Unix Programming Environment on a pilgrimage to get Kernighan and Pike to place their signatures appropriately some time in the next couple years.

I am glad that subscriber to that Linux User Group mailing list was motivated to describe his experiences. I think the world needs more references to the undervalued contributions Dennis Ritchie gave to the world, both in terms of personal impact on those of us who are aware of his importance and in terms of the sweeping changes he helped bring into the lives of pretty much everyone on the planet (at least indirectly). I also think the world needs more reference to Steve Jobs' "contributions" -- a mixed bag at best -- like you (dear reader) need a hole in your head. The exception would be in cases where any new references exist for the purpose of contrasting the relative paucity and backhandedness of what Jobs has given the world with the more substantial, foundational, pervasive, lasting, and broadly positive contributions of Dennis Ritchie.

The Unrevealed Mystery

Incidentally, as I wrote the first (mailing list) draft of this, I recalled an interesting piece of writing: Dabbling in the Cryptographic World--A Story, by Dennis Ritchie. I am saddened that the day evidently never came when he felt comfortable sharing the final details of that story, and I wonder if they will ever come to light. It seems unlikely Robert Morris (Sr.) will ensure we learn the rest of the story in honor of Ritchie's evident suppressed desire to tell the tale, but I suppose hope springs eternal.

Chad Perrin

Also read: Dennis Ritchie, father of Unix and C, dies by Rubert Goodwins (ZDNet UK).

About

Mary Weilage is a Senior Editor for CBS Interactive. She has worked for TechRepublic since 1999.

52 comments
jeslurkin
jeslurkin

I am not a programmer, and I still am aware of some things he accomplished. I appreciate all that he accomplished,... and all that he thereby made possible. RIP

donmuko
donmuko

I wonder what the average age if the contributors is. I am in my 40's and I just learned about Dennis' passing. This man inspired my love for UNIX and I loved him and his colleagues who built this lovely os at a time, according to them, when engineering elegance and technological innovation reigned supreme over such worldly things as proprietorship. "Some people die many times before their death, some people do not taste of death but once" can't remember whether it was Shakespeare who said that. Goodbye dear Dennis

Sridev
Sridev

As a third person we might always feel that history is unfair to unsung heroes including Dennis however successful life is not about how the world perceived it rather it is how it was lived by the individual and how he/she felt about it. I am sure if you measure that way all great human beings, whether famous or not, measure up to the same. I am sure lives of Steve & Dennis would have been more or less equally difficult, strenuous, adventurous, exciting & more. Fame, as others perceive us, though might influence our lives, it makes little difference in how contented we are with our lives.

vjv.mabaso
vjv.mabaso

No disrespect to Dennis and sorry if this is inappropriate. But as i understand the grit of most of these comments is how come credit is given more to the Tool users (Steve) than the Tool creators (Dennis). But as we all know most if not all languages are based upon a previous one, and if most of you are so eager to transfer most of Steves' recognition onto Dennis, than why isn't the same sentiment being given to Thompson, since C was derived from B?? With that said i think we are all to blame for this "lack of recognition" since we ALWAYS measure and recognize a persons achievements after their passing. Also, ever ask yourself how much praise would have been given to Dennis if his death was prior to Steve?? At the end of the day though (sadly) is that we lost Pioneers regardless of their contributions. More will come and go, and a similar debate will arise and fall... Sounds like an endless loop to me... somebody terminate it. return 0;

Timwateru
Timwateru

God bless you Dennis and may the good Lord keep you safe in his mighty arms. You have changed the world of computing. A well done job. You left the mark for the generation of tomorrow to follow your examples. God bless Tim

oldbaritone
oldbaritone

Truly the passing of an era. Rest In Peace.

Jaybus
Jaybus

Anyone know why Bell Labs has pulled "Dabbling in the Cryptographic World - A Story"? It doesn't seem to be available any longer.

mail
mail

#include int main() { printf("Farewell Dennis\n"); return 0; }

bornbyforce
bornbyforce

He and his colleagues are the key to whatever we have today in our systems. C and Unix are two key things that established the foundation of modern computing. Whatever have been made on computers afterwards is either made by them or for them or heavily inspired by them. I honestly doubt this influence will ever be faded away. This is true meaning of immortality.

seanferd
seanferd

And a big thanks to Dennis Ritchie. edit: I see my title is already in use. Something else Charles Bundy and I have in common regarding this topic at TR. Hmm.

MikeGall
MikeGall

Don't get me wrong C was a great achievement but all these people commenting that "Dennis Richie made everything because it is all made with C" is bogus. A programming language is a tool, perhaps a really damn good and powerful one like C but still a tool. It is closer to an alphabet than anything. The inventor of the alphabet can't lay claim to Shakespeare's plays and in the same way Dennis Richie can't lay claim to every C app. More important I think is the concepts in UNIX. There are countless UNIX clones and at least at some level the concepts that stemmed out of it found its way into all the other OSs out there that are popular.

jlindner
jlindner

Both Brilliant men. One a household word, the other the farthest from it. Both changed the world we live in dramatically, one by chance the other by design.

ITOdeed
ITOdeed

I'm forever grateful for the adventure in digital development provided by C, C++, a very powerful language and much easier to learn than assembly. RIP, Dennis...

Sterling chip Camden
Sterling chip Camden

Not only is C/C++ everywhere, but it has also influenced nearly every language since its introduction. Java, JavaScript, Perl, Ruby, and many others owe some of their syntax and semantics to C. Before being introduced to C in 1984, I used to wonder what the {} on the keyboard were for. Actually, some of the early terminals didn't even have them.

kdf9buff
kdf9buff

I am sure Dennis Ritchie would be the first to mention his indebtedness to Martin Richard's BCPL. The first language to do "Hello World" and which was in turn designed to be a portable language for compiler writing. UNIX would have owed a great deal to Dijkstra's T.H.E. Operating System, via MULTICS, because Dijkstra recognised the importance of layering the kernal. Computing was a smaller world back then and there was a great cross-fertilisation of ideas. Dennis Ritchie was one who had the knack of picking and creating real winners. Thankyou Dennis

Justin James
Justin James

... but have been in or around the industry since we were kids, or studied the history. For example, I was somewhere around 4 or 6 the first time I sat down with my dad to do a type in program in BASIC, and visiting him in the summers I'd just sit in his office reading issues of SCO Magazine and learning about Netware 3.X... :) J.Ja

apotheon
apotheon

The level of recognition people receive -- the choice of who to regard as heroes -- is an indicator of the willful ignorance of the general populace and of what approaches to innovation will be most rewarded and (more to the point) more supported and thus more likely to actually spread and make their influence felt. Which would you rather have more fertile ground, going into the future, in which to grow? 1. "beautiful" design with no seams (legal or physical) so that we cannot see how something works, with patent, copyright, and terms of service lawsuits that enforce the ignorance of the users and attempt to destroy competing options 2. open design that encourages people to get involved, to port the system to other platforms, to add to it and improve it and share it I know which I'd choose.

seanferd
seanferd

He's a personality and business nob.

apotheon
apotheon

> But as i understand the grit of most of these comments is how come credit is given more to the Tool users (Steve) than the Tool creators (Dennis). But as we all know most if not all languages are based upon a previous one, and if most of you are so eager to transfer most of Steves' recognition onto Dennis, than why isn't the same sentiment being given to Thompson, since C was derived from B?? More precisely, the complaint is "What the hell has Jobs done for us that wasn't more than balanced by something he did to us, and how does that get him on the cover of People and Time, while Ritchie gets almost no mainstream recognition?"

apotheon
apotheon

TR deleted my comment. Short version: It looked like not only that essay, but the entire server had dropped off the internet. I found an archive of the essay. I then found that the server -- including the essay -- had reappeared on the Internet. Since then, someone changed something on the server side of TR, and now my comment is missing. Maybe they'll fix it and my comment will reappear. On the other hand, maybe they'll fix it and everything that disappeared will be gone forever. I don't really know. It sucks, though.

apotheon
apotheon

goodbye, dad edit: It's just a page that shows the following code, for those too lazy to click through. #include int main() { printf("goodbye, dad\n"); return 0; }

Charles Bundy
Charles Bundy

Handing you a piece of paper to write "War & Peace" versus developing paper, pen and ink from scratch. BTW I tend to think Ritchie and Thompson fall into the latter case. I haven't heard anyone say Dennis developed all these things, just that we wouldn't HAVE them without his contribution. ADDENDUM: And they freely shared knowledge... For anyone that hasn't read it - http://net.pku.edu.cn/~course/cs101/2008/resource/The_C_Programming_Language.pdf

oldbaritone
oldbaritone

that you never "programmed" with plug-in patch panels and wires. Yes, C is passe, but C was so far ahead of ASM there was no comparison, and C was portable. ASM was not. Unix was possible largely because of C. Unix was the first OS written in something other than ASM. An inventor cannot lay claim to the outcome produced by the tools he invented; true. But he deserves credit for being the pioneer upon whose work others built. Ritchie's concepts in computing are as fundamental as Bell's in telephony or Marconi's in radio. Without them, computing would be very different. Tom Watson, then IBM chairman, said in 1958: "I think there is a world market for about five computers." Dennis Ritchie's vision of the computer's potential was much broader. Time has proven Dennis right. C was written in 1969-1973. How many other 40-year-old programming languages still survive today? How much is programmed in C/C++ today? How many "C-like syntax" languages are in current use? And how much is programmed in other languages created in the same era as C? Can you remember SNOBOL? ALGOL? FORTRAN? They're ancient history, long forgotten. But C lives on. Dennis Ritchie was a pioneer. And his work withstood the test of time.

apotheon
apotheon

C's contributions are tied closely to those of Unix. You can't have Unix as we have had it without C -- whose cross-platform portability was at the time a huge win for Unix development. It's not so much that everything is made in C that makes the difference; it's what C provided that made it such an excellent choice for so much software to use it. The concepts that worked their way from Unix into other systems were influenced by what C provided, and would not have contributed their genetic material to other systems the way they have without C's influence. Furthermore . . . the tools used to build things are the most important things we build, in many ways. Every advancement is built on the advancements of the past, and the advancements we make in tools we use to build things are the advances that have the most profound impact on future advancement. Dismiss the importance of something that is "still a tool" only at great peril. Those who focus solely on the production of end-products, to the neglect of tools, are those who are most doomed to fade and fail in the long run.

MikeGall
MikeGall

but I have to wonder how much of it is because C is a great design and how much of it is because it is familiar? People know how to code in C but it doesn't do everything you'd like so you create C++. C++ is popular but you want to have a VM so you make java and pretty much copy syntax "line by line" from C/C++. I suspect most of the reasons languages look similar is because: a) they are interpreted and made by C developers. b) people learn how to make parsers/lexical analyzers for C in school so they can pretty much cut and paste that knowledge into their new language. c) don't want to have to convince people to try your knew language with cool features AND an completely foreign syntax (does workout okay occasionally though, ex. Python).

Justin James
Justin James

... when I started typing, but only because I used to have a bad habit of nesting parenthesis in my sentences so badly that I actually needed them occassional. J.Ja

timothy
timothy

I didn't get into computers till I was 18, back in 1961. There are three classes of computer programming language, the low-level assemblers, the high-level stuff like Fortran and Basic and COBOL, and only two globals, both Forth and C allow a free mix of bit-twidling in a register with high-level structure - Forth is used in robotics, C _EVERYWHERE_ELSE_

apotheon
apotheon

> I was somewhere around 4 or 6 the first time I sat down with my dad to do a type in program in BASIC . . . That sounds awfully familiar. I'm rapidly catching up with 40, though (dammit).

apotheon
apotheon

Well, you can call him a tool user if you call Apple fans "tools", but that's not very nice. I suppose you could just call Jobs a tool.

apotheon
apotheon

I have that in hardcopy (same edition), but it's really nice to have a digital copy of it for my ebook reader too.

MikeGall
MikeGall

Both have I'd expect 100M's if not billions of lines of code in production. When I was finishing my degree in physics and doing computational research the breakdown in the group was probably 40% C 40% Matlab and 20% FORTRAN. Its still out there especially in nuke and astro as is COBOL and it is 10 years older. Yes C is still used and syntax is greatly copied. There are things that I wish weren't copied (";" as stratement terminators I know an eternal nerd debate) but for the most part it is a beautiful and expressive syntax.

Charles Bundy
Charles Bundy

That C straddles the line between HLL and assembly. The reason it is still relevant today is that it allows you to latch on to hardware (pointers) yet keep track of things using ADT (typing.) Can you guys name another language that does this so brilliantly? I must admit to being half-brained (quarter?) right now and can't readily come up with an example...

Jaybus
Jaybus

All languages are based upon some other similar language, just as modern German and English came from older Germanic languages. The point is, they are what works. Would some other language work as well? Of course. Would they become as popular? Doubtful. It is simply easier for a native German speaker to learn English than it is to learn Japanese, just as a native C "speaker" can learn Python easier than Scheme.

apotheon
apotheon

C's relationship to Unix is inextricably tied to its greatest contributions to the world of computing -- and that goes far beyond the influence of pure widespread familiarity.

apotheon
apotheon

C gets used in robotics a bit, too.

seanferd
seanferd

At times, there were things for which I admired Apple and Next. Jobs wasn't one of them. I assume he must have had some sort of business acumen, but that isn't something I necessarily trust, either. It's a funny old world that depends upon Personalities in business, politics, and everywhere else, rather than more substantial things.

apotheon
apotheon

I didn't say that the plan to replace the code was always a good thing, you know. Replacing COBOL with Java, for instance, was really popular for a while -- and really stupid. These days, they lean more toward C#, I think. > I'd say that all the Fortran (and Cobol) that in business terms could be rewritten has, and the hold outs will be running the same code in the same language, from a bio-engineeered mouse shaped AI in the year 4236... I don't think so. If nothing else, anyone who would otherwise still be running COBOL in 4236 will have gone out of business. That COBOL code will have been "replaced" by evolution, as other businesses fill the vacated niches with their fresh new codebases somewhere along the way.

Tony Hopkinson
Tony Hopkinson

Fortran compiler for Itanium. Swap machine, keep code... That was their last plan anyway. These guys introduced me to their new stuff, to use something other than Fortran, in 2005. It was VB6... I'd say that all the Fortran (and Cobol) that in business terms could be rewritten has, and the hold outs will be running the same code in the same language, from a bio-engineeered mouse shaped AI in the year 4236...

apotheon
apotheon

As VAXen go offline, other systems take their place -- and the code on them doesn't come directly from the VAX that just got replaced, so there goes your FORTRAN. I didn't say nobody writes FORTRAN any longer. I said software in FORTRAN is being rewritten in other languages orders of magnitude more quickly than any new code is being added to the worldwide codebase of production software in FORTRAN. Sure, there are pockets where the opposite is the case, but I'm talking about the aggregate. Grade on the curve.

Tony Hopkinson
Tony Hopkinson

of Fortran code. 50 + vaxes all churning away quite happily running their stuff. Replacing it with anything else, is unjustifiable from any business perspective. It's easier and cheaper and better to take a half decent coder boy and teach them Fortran or Cobol, learning mini / mainframes will be a bigger hit anyway. Besides it's a good fall back position for me, if I'm out of work and jobs are bit thin on the round. Our colleagues from parts east won't be doing it.

apotheon
apotheon

Unlike C, the legacy of COBOL and FORTRAN is that software in these languages is being rewritten in other languages orders of magnitude more quickly than any new code is being added to the worldwide codebase of production software in these languages. The main reason FORTRAN and (especially) COBOL are not forgotten is that people are still tasked with replacing code originally written in those languages.

apotheon
apotheon

A lot of C's problems could be eliminated without turning the language into Pascal -- and Pascal is far from the ideal option for writing device drivers, even if writing device drivers in Pascal is technically possible. That's sorta my point.

apotheon
apotheon

The things people might find "constraining" about Pascal are actually pretty good reasons one might not want to use Pascal for device drivers, I think. I do, however, agree that implicit casting is bad.

Tony Hopkinson
Tony Hopkinson

A string you can't write past the end of for instance. Come to think of it just a string type... I'd been coding over ten years before I learnt C 'proper', pascal is sort of my native language. A lot of my preference for it is simply down to that. Don't have strong feelings about one way or the other, now VB6.... :(

Tony Hopkinson
Tony Hopkinson

Some very pragmatic ones, like the other drivers are C,the API's are C, any vendor stuff is C, anything embedded will be C... So you'd have to be a bit daft to do it now. My own personal preference is the less implicit casting the better, those who make C hit it's bleeding edge find Pascal constraning, I find it supporting. Be as much a first language thing as anything else.

Charles Bundy
Charles Bundy

but theoretically you can :) I don't know if Wirth would approve tho as Pascal was targeted towards education and software engineering. (Pascal keeps you from doing stupid stuff at the expense of making what should be simple, complicated.) Device drivers tend to be messy and in constant flux and require more freedom to abuse one's self...

apotheon
apotheon

Would you write device drivers in Pascal?

Charles Bundy
Charles Bundy

He seems to be agreeing with you :) "C is quirky, flawed, and an enormous success." "C has "the power of assembly language and the convenience of... assembly language."

Tony Hopkinson
Tony Hopkinson

Personally I would have chosen Pascal, but I learnt that before C. :p Can't argue with the evidence, and you can't have such a long lasting and prevalent impact if you weren't just a little bit good at what you do (or did :( ) , but not always to my taste.