It's Good To Be Back

I began writing for CUJ with its premiere issue, dated December 1987/January 1988. Little did I know at the time that I was beginning a series of monthly columns that would continue without hiccup for over 13 years. Along the way, I also took on the job of Senior Editor for most of the 1990s. Were it not for the demands of running a small software company, I might well have never left. But leave I did, and somehow CUJ continued on quite well without me.

I can't help but reflect on all that has changed over the years. Of course, by the time you read this, I'll be dangerously close to my 60th birthday. I'm also less than a week away from a 20th anniversary dinner with friends who began the standardization of C. And I've completed my 40th year earning a living as a computer programmer. You'll forgive me if the passage of time has become a bit of a preoccupation lately. Too many round numbers, and big ones at that.

What pleases me most, looking back, is the continued success that the C language has enjoyed. To lob out another big round number, I began writing C about a third of a century ago, while the ink was still drying on Dennis Ritchie's first compiler. I had the sense to recognize the promise of C even then. Today, the help wanted ads in major markets are the clearest indication that C is one of the two most-used programming languages in the world today.

The other one is C++. During the lifetime of CUJ, it has grown from a brash offspring of C to become the language of choice for many major programming projects. I'm happy to see that the two languages have managed to preserve their interoperability, despite strong forces pulling them in somewhat different directions. Our little company writes quite a bit of code in both C and C++ every year. With rare exception, all our C code can compile as C++. And all our C++ code leverages our C library for improved portability. If there's another family of languages with anywhere near as much synergy, I'm not aware of it.

The biggest change, to me, has been the size of typical programs written in C and C++. Sixteen years ago, we watched the bytes and fretted over the kilobytes. Today, we watch the kilobytes and fret over the megabytes. But there are still many of us who work at the byte/kilobyte scale, thanks to an explosion of small embedded applications and C compilers that help us write them. So the change has not been a simple scaling in sizes so much as a dramatic increase in the dynamic range of project sizes that we routinely tackle.

That word "routinely" is important. The second biggest change I see is the number of significant projects that not only get routinely tackled, but also get routinely completed on time and under budget. We've developed programming as a reliable craft. It may not be the engineering discipline that some would hope for, but it is moving away from the black art celebrated as late as the 1980s.

I've weathered too many "programming revolutions" to believe that either C or C++ is the sole cause of this dramatic shift. Bigger and faster computers have eliminated barriers to productivity. A new generation of managers with a better understanding of software has prevented many a nervous collapse among the Dilberts in our ranks. But I've written enough code in other putative high-level languages to know that C and C++ definitely have a positive impact, too.

The third and last big change I'll address is the alteration in our environment caused by the Internet. No, I don't mean downloadable web applets or toasters you can control from your cellphone. Most of the changes I see are both good and bad. It's great that you can develop software with people working on different continents, but not when those people get your job and do it at lower pay. It's great that you can download patches to support customers faster, but not when you're pressured to ship buggy products that must be patched in the field. The one thing that hasn't changed in all this time is the dynamism of our field. There's lots still going on, and lots for CUJ to report on.

It's good to be back.

P.J. Plauger
Senior Contributing Editor
pjp@plauger.com