Departments


Editor's Forum


I have always been more than a bit reactionary. Whatever is in this year is too avant garde for me. I prefer last year's model. That doesn't prevent me from pushing back the frontier of darkness from time to time. I am happy to study the latest programming techniques. I certainly enjoy implementing new ideas to see how well they work in real life. And I'm not above encouraging others to try the new stuff.

But when it comes to getting my own jobs done, no thank you. I worked my way through college writing FORTRAN programs for the Princeton Cyclotron Group. My own thesis data I reduced on a calculator. In graduate school, I helped implement a virtual memory operating system for online data acquisition. For my own work, I trusted only programs that others had used at least a year.

And so it has gone throughout my professional career. I wouldn't use macros in assembly language for a long time — not until I was sure that they cost me no serious loss of performance. I kicked the tires with C for almost a year before I became convinced that it was a good thing. My courtship with C++ would make a Victorian chaperone impatient.

Tom Plum once put it perfectly — "Many people want the absolute latest in leading-edge technology, so long as it's tried and true and safe." That's me in a nutshell.

Standard C has now reached that level of comfort for me. Like an old shoe, it's familiar and it seldom pinches. Some people equate this degree of stability with incipient decay. I don't.

I am pleased to see that the language is still evolving. Almost every day, I read about new dialects of C for special applications, or new extensions to the language or library. I am amused to see that most such experiments are meticulously built atop Standard C, and written in Standard C.

A mature field doesn't have to be dull. It does have to be safe for those who value safety. And it has to be stable for all concerned. The old fogeys like me can get work done. And the younger ones have something to rebel against.

P.J. Plauger
pjp@plauger.uunet