Editor's Forum


Brother, Where Art Thou?

This has been a much-anticipated issue. As always, we strive to bring pertinent and practical articles to print when you need them, the current issue attesting to the fact. In addition to articles exploring handy software tools, Bobby Schmidt handles your hard questions with his characteristic enlightened wit, and Herb Sutter explains why exception specifications aren’t as popular as you may have thought they were. We are also most fortunate to have Randy Meyers, chair of the C Standards Committee, as a columnist. Each installment of his column not only brings me more understanding of C99, but also helps me understand C89 better.

C++ adheres faithfully to its C89 legacy, deviating only when coerced by the dictates of object orientation and type safety. It is this well-intentioned faithfulness that has bequeathed to C++ its multifarious nature, which on occasion has been a bit of stumbling block for those who would master the language. Why this “as close as possible to C” posture? It grew from C++’s beginnings as “C with Classes”, of course. There was never any intention of creating a language to compete with C. Au contraire; C++ was made to leverage existing C code without changing it. This symbiosis was doubtless the key to the entrenchment of C++ throughout the C community, and the introduction of object-oriented development to the world of computing at large.

Now C99 has raised the bar by adding important features that Randy elucidates for us bi-monthly, features crucial to effective scientific and systems programming. So what happens to the C/C++ connection? Have these languages diverged too much to attempt to salvage compatibility; should C++ shed its papoose vesture and go its merry way, or are they still too close to be considered different? It partly depends on where you are, but one thing is sure: playing leapfrog won’t preserve the cooperative relationship — C and C++ must evolve in concert or they will grow incompatibly apart.

I’m quick to confess I don’t know The Answer. In any case, the issues are too complex to explore here, so I refer you to the first in a three-part series beginning in this issue by C++ creator Bjarne Stroustrup on the future relationship between C and C++. The outcome, whatever it is, will surely have its effect on a large portion of the software development community.

Chuck Allison
Senior Editor
cda@freshsources.com