The original version of C did not have structures. So to make tables of objects, process tables and file tables and this tables and that tables, it really was fairly painful.
— Dennis Ritchie
At MIT, mostly what I did was documentation. I sort of read things. Wrote some descriptions of various aspects of the file system. Did not really do very much programming at all. At least on Multics.
C is peculiar in a lot of ways, but it, like many other successful things, has a certain unity of approach that stems from development in a small group.
I can't recall any difficulty in making the C language definition completely open - any discussion on the matter tended to mention languages whose inventors tried to keep tight control, and consequent ill fate.
For infrastructure technology, C will be hard to displace.
I've done a reasonable amount of travelling, which I enjoyed, but not for too long at a time.
At the same time, much of it seems to have to do with recreating things we or others had already done; it seems rather derivative intellectually; is there a dearth of really new ideas?
The visible things that have come from the group have been the Plan 9 system and Inferno, but I hasten to say that the ideas and the work have come from colleagues.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.
The first phase of C was - really, it was two phases in short succession of, first, some language changes from B, really adding the type structure without too much change in the syntax, and doing the compiler. The second phase was slower; it all took place within a very few years, but it was a bit slower, so it seemed.
One of the obvious things that went wrong with Multics as a commercial success was just that it was sort of over-engineered in a sense. There was just too much in it.
When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd.
At least for the people who send me mail about a new language that they're designing, the general advice is: do it to learn about how to write a compiler.
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around.
Obviously, the person who had most influence on my career was Ken Thompson.
Any editing, software work, and mail is done in this exported Plan 9.
Over the past several years, I've been more in a managerial role.
My father worked for Bell Labs. Hence, I knew very much about the place. I knew it because also he was involved with telephony.
My work was fairly theoretical. It was in recursive function theory. And in particular, hierarchies of functions in terms of computational complexity. I got involved in real computers and programming mainly by being - well, I was interested even as I came to graduate school.
I'm just an observer of Java, and where Microsoft wants to go with C# is too early to tell.
The kind of programming that C provides will probably remain similar absolutely or slowly decline in usage, but relatively, JavaScript or its variants, or XML, will continue to become more central.
A new release of Plan 9 happened in June, and at about the same time a new release of the Inferno system, which began here, was announced by Vita Nuova.
I'm not a person who particularly had heros when growing up.
I fix things now and then, more often tweak HTML and make scripts to do things.
C was already implemented on several quite different machines and OSs, Unix was already being distributed on the PDP-11, but the portability of the whole system was new.