UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.
Dennis Ritchie
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?
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.
I'm just an observer of Java, and where Microsoft wants to go with C# is too early to tell.
My father worked for Bell Labs. Hence, I knew very much about the place. I knew it because also he was involved with telephony.
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.
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.
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.
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.
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.
For infrastructure technology, C will be hard to displace.
C++ and Java, say, are presumably growing faster than plain C, but I bet C will still be around.
I've done a reasonable amount of travelling, which I enjoyed, but not for too long at a time.
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.
Obviously, the person who had most influence on my career was Ken Thompson.
Over the past several years, I've been more in a managerial role.
I fix things now and then, more often tweak HTML and make scripts to do things.
Any editing, software work, and mail is done in this exported Plan 9.
I'm not a person who particularly had heros when growing up.
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.
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.
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.
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.
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.
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.