Over the past decade, C++ has evolved from a research project at AT&T Bell Labs to become the most widely used object-oriented programming language. A thriving industry of tool vendors, class library and framework providers, consultants, and publishers has sprung up to support C++ developers. Although this is a tribute to the commercial success of C++, it also means that we're on the hook to deliver the goods.
One benefit of being a research project or a fringe technology is that you're judged by less stringent standards of excellence. Programmers often tolerate primitive development environments and inadequate documentation when a promising language or tool is in its infancy. C++ no longer has this luxury. Organizations are increasingly betting their businesses on C++ solutions. The commercial success of C++ has set high expectations with respect to improved software quality and increased reuse, extensibility, and portability. Rightly or wrongly, the language will be held accountable for the success or failure of projects that use it.
I'm confident that the C++ language and the C++ community can live up to these expectations. The next generation of C++ compilers and development environments are a substantial improvement over the environments we've worked with in the past. Morover, the language definition is finally stablizing as a result of the ANSI/ISO standardization process. In addition, we have many more resources to help guide us around the traps and pitfalls of C++ software development.
The latter point is particularly important. Creating a widely used language requires a community of users who are dedicated to helping others succeed. The C++ community has been particularly fortunate in this respect. For many years people like Bjarne Stroustrup, Andy Koenig, Stan Lippman, Rob Murray, Jim Coplien, Scott Meyers, and Robert Martin have been helping others succeed with C++ through postings on USENET, conference tutorials, C++ Report articles, and books on using C++ effectively.
Another valuable source of information are case studies, where experienced developers synthesize the lessons they've learned building software systems with C++. Remarkably, only a handful of case studies on large-scale C++ systems have been published, despite the fact that we now have more than a decade of collective experience with the language. Therefore, I'm pleased that this issue of the C++ Report contains three case studies from a group of C++ veterans who share their valuable insights on the rewards and challenges of applying C++ in practice.
John Lakos presents the first of a multi-part series of articles we'll be covering over the next several months. In this issue, he examines key physical design concepts that proved essential to the success of large C++ projects at Mentor Graphics. Tom Mueller explores the benefits and obstacles of using C++ on large-scale telecommunication switching systems at AT&T. Finally, Jerry Fitzpatrick describes his experiences reimplementing in C++ a complex family of graphics adapter testers originally written in C. It's the contributions of experts like John, Tom, and Jerry that give me confidence that we'll be able to deliver on the promise of C++.
Speaking of C++ experts, I'd like to extend a warm welcome home to Stan Lippman, who is publishing his first C++ Report feature article since retiring as editor-in-chief of last fall. Stan's been keeping busy at Walt Disney Feature Animation in sunny Burbank. He's been working on a modeling and animation framework and writing several books (between trips to Disneyland and Muscle Beach, of course ;-)). In this issue, Stan examines the performance impact of the various object models supported by C++. Keep an eye out for more of Stan's work later this year.
Back to C++ Report Editorials home page.