Previous | Table of Contents | Next |
In The C++ Programming Language, Third Edition (Stroustrup, 1997), I summarize the standard library as shown in the following list.
The facilities provided by the standard library can be classified like this:
Thus, C++ finally has a standard library that covers the fundamental data structures and their basic algorithms. A programmer will of course want more facilities. Graphics is an obvious example. However, I saw the job of a standard to support library building and a library industry. There is little point in a small group of peoplehowever well-meaningtrying to supply every need of an enormous user population. Consequently, the standards committee sensibly restricted its activities to a relatively small set of library facilities. That set of facilities was partially determined by history and partly by the criterion that the standard library should provide what separately developed libraries needed to communicate. Thus, the standard library provides complex arithmetic because C++ implementations always did. The standard library provides string and list because if it didnt, every major library would have to provide its own string and list and still be forced to communicate with other libraries using only built-in types.
The standard string type is the result of the efforts of many people in the library working group of the standard committee. Its distinguishing feature is that it is a template that can be used to represent strings of characters in essentially any character set.
The standard library provides a vector type with associated operations to support numeric calculations, called valarray, based on the work of Ken Budge (Budge, Perry, & Robinson, 1992).
C++ was designed to serve users. It was not an academic experiment to design the perfect programming language, nor was it a commercial product meant to enrich its developers. Thus to fulfill its purpose, C++ had to have usersand it did (see Table 6.1).
Date | Estimated Number of Users |
---|---|
October 1979 | 1 |
October 1980 | 16 |
October 1981 | 38 |
October 1982 | 85 |
October 1983 | ??+2 (no Cpre count) |
October 1984 | ??+50 (no Cpre count) |
October 1985 | 500 |
October 1986 | 2,000 |
October 1987 | 4,000 |
October 1988 | 15,000 |
October 1989 | 50,000 |
October 1990 | 150,000 |
October 1991 | 400,000 |
In other words, the C++ user population doubled every 7.5 months or so. These are conservative figures. The actual number of C++ users has never been easy to count. First, there were implementations such as GNUs G++ and Cfront shipped to universities for which no meaningful records could be kept. Second, many companies, both tools suppliers and end users, treat the number of their users and the kind of work they do like state secrets. However, I always had many friends, colleagues, contacts, and many compiler suppliers who were willing to trust me with figures as long as I used them in a responsible manner. This enabled me to estimate the number of C++ users. These estimates are created by taking the number of users reported to me or estimated based on personal experience, rounding them all down, adding them, and then rounding down again. These numbers are the estimates made at the time and not adjusted in any way. To support the claim that these figures are conservative, I can mention that Borland, the largest single C++ compiler supplier at the time, publicly stated that it had shipped 500,000 compilers by October 1991. In 1996 alone, more than a million C++ implementations were sold (International Data Corporation study, 1997).
Early users had to be gained without the benefit of traditional marketing. Various forms of electronic communication played a crucial role in this. In the early years, most distribution and all support were done using email, and relatively early, newsgroups dedicated to C++ were created (not at the initiative of AT&T marketing) that allowed a wider dissemination of information about the language, techniques, and the current state of tools. These days this is fairly ordinary, but in 1981 it was relatively new. I think that only the spread of Interlisp over the ARPAnet provides a contemporary parallel.
Later, more conventional forms of communication and marketing arose. After AT&T released Cfront 1.0, some resellers, notably Glockenspiel in Ireland and its U.S. distributor Oasys (later part of Green Hills) started some minimal advertising in 1986. When independently developed C++ compilers such as Oregon Softwares C++ Compiler (developed by Mike Ball at TauMetric Software in San Diego) and Zortechs C++ Compiler (developed by Walter Bright in Seattle) appeared, C++ became a common sight in ads (from about 1988).
Previous | Table of Contents | Next |