Dennis Ritchie, creator of C and co-creator of Unix, has died.
John Mashey writes:
Dennis was an old friend, and I’d heard this yesterday from Doug McIlroy. See this for how Dennis, Steve Bourne and I evolved my PWB stuff into UNIX V7’s environment variables. Dennis in particular suggested the idea of just making them a 2nd argument list, which kept most of it out of the kernel and kept simple semantics.
Fortunately, Dennis got a Computer History Fellow Award a while back, among others.
While sad, I’d like to remember that Dennis had fun, as with Rob Pike in this prank on Arno.
Dennis has already been covered by NPR and is getting lots of other press, as he should.
But, while Dennis and Steve were about as far apart as you could get in personality and nature of accomplishments, honoring DMR takes nothing from Steve. Both were great, just in very different directions. Of course, it is interesting that the iPhone runs a UNIX-derivative with apps written in a C+Smalltalk derivative.
This discussion on Usenet in 1989 has a lesson. Dennis Ritchie wrote:
The question arose: why does C use a terminating character for
strings instead of a count?Discussion of the representation of strings in C is not fruitful
unless it is realized that there are no strings in C. There
are character arrays, which serve a similar purpose, but no
strings.Things very deep in the design of the language, and in the customs
of its use, make strings a mess to add. The intent was that
the behavior of character arrays should be exactly like that
of other arrays, and the hope was that stringish operations
on these character arrays should be convenient enough. …Given the explicit use of character arrays, and explicit pointers to
sequences of characters, the conventional use of a terminating
marker is hard to avoid. The history of this convention and
of the general array scheme had little to do with the PDP-11; it
was inherited from BCPL and B.
Robert Firth replied:
A correction here: the C scheme was NOT inherited from BCPL.
BCPL strings are not confused with character arrays; their
implemetation is not normally visible to the programmer, and
their semantics are respectably robust.
Eric S Raymond replied to Firth:
I’ve seen bonehead idiocy on the net before, but this tops it all — this takes
the cut-glass flyswatter. Mr. Firth, do you read what you’re replying to
before you pontificate? Didn’t the name ‘Dennis Ritchie’ register in whatever
soggy lump of excrement you’re using as a central nervous system? Do you
realize that the person you just incorrectly ‘corrected’ on a point of C’s
intellectual antecedents is the inventor of C himself!?!Sheesh. No wonder Dennis doesn’t post more often.
Next time dmr posts something, I suggest you shut up and listen. Respectfully.
While Dennis Ritchie also replied to Firth:
Robert Firth justifiably corrects my misstatement about
BCPL strings; they were indeed counted. I evidently edited
my memory.