Previous | Table of Contents | Next |
by Bjarne Stroustrup
This chapter outlines the history of the C++ programming language from 1979 to 1997. The emphasis is on the ideas, constraints, and people that shaped the language, rather than the minutiae of language features. Key design decisions relating to language features are discussed, but the focus is on the overall design goals and practical constraints. The evolution of C++ is traced from C with Classes to the ISO standards effort and the explosion of use, interest, commercial activity, compilers, tools, environments, and libraries.
This chapter is a revised and extended version of History of C++:1979-1991 (Stroustrup, 1996).
C++ was designed to provide imulas facilities for program organization together with Cs efficiency and flexibility for systems programming. It was intended to deliver that to real projects within six months of when the idea was conceived. It succeeded.
At the time, I realized neither the modesty nor the preposterousness of that goal. The goal was modest in that it did not involve innovation and preposterous in both its time scale and its Draconian demands on efficiency and flexibility. Although a modest amount of innovation did emerge over the years, efficiency and flexibility have been maintained without compromise. Although the goals for C++ have been refined, elaborated, and made more explicit over the years, C++ as used today directly reflects its original aims.
This chapter is organized in roughly chronological order:
Most of this chapter is on the early years because the design decisions made early determined the further development of the language. It is also easier to maintain a historical perspective because I have had many years to observe the consequences of decisions.
Essential language features are presented to make this chapter approachable by a non-C++ specialist. However, the emphasis is on the people, ideas, and constraints that shaped C++ rather than on detailed descriptions of those language features or their use. For a description of what C++ is today and how to use it, see The C++ Programming Language, Third Edition (Stroustrup, 1997). For more details on the design and evolution of C++, see The Design and Evolution of C++ (Stroustrup, 1994).
Previous | Table of Contents | Next |