The Early History of the C Language
The name C++ was coined by Rick Mascitti in 1983 as a replacement for 'C with Classes', and it signals that the language is an evolution of C.
A Name with a Clue
C++ is a deliberate name, not a typing mistake or a random decoration. It connects the language to C while suggesting that C has been extended. Following how the name changed, and what its symbols mean, gives a compact way to understand the language’s early direction.
From C with Classes to C++
The language was first known by the working name C with Classes. In 1983, Rick Mascitti coined C++ as its replacement. The new name kept C visible: it signaled that the language was an evolution of C, not a break from it.
Reading the name as a clue
What relationship between C and the new language does the name C++ suggest?
- 1Keep the C
The C in the name makes the language’s connection to its parent visible.
- 2Read the ++
In C, ++ is the increment operator, which adds one to a variable. In the language name, it is reused as a wordplay suggesting one step of change applied to C.
- 3Combine the clues
The name presents the language as a changed and extended C, rather than as an unrelated invention.
C++ signals an evolution of C. The name uses the meaning of the increment operator figuratively; it is not an instruction to increment the C language itself.
Why C++ and Not C+
C+ may look like a shorter way to say “C with one change,” but it misses the point of the chosen name. The source gives two reasons it was rejected: C+ is a syntax error, and that name had already been used for an unrelated language. Using it would therefore have both failed as a valid name in the relevant syntax and risked confusion with the other language.
The Design Purpose Behind the Name
The choice to present the language as an extension of C fits its early purpose. It was designed primarily so its creator and friends would not have to program in assembler, C, or the various high-level languages then in fashion. The central aim was practical: make writing good programs easier and more pleasant for the individual programmer.
The language’s development also proceeded through use and discussion rather than from a finished formal plan. Design, documentation, and implementation happened at the same time; there was no formal paper design, project, or design committee. The language changed in response to problems users encountered and conversations among a small group of colleagues. This history helps explain why the name’s emphasis on continuity matters: the stated direction was to build on C while addressing practical programming needs.
The alternative name D was also rejected. The reasons given were that the language extended C, did not try to fix problems by removing features, and would have shared a name with several would-be successors to C that already used D. These reasons reinforce the same naming choice: the language was framed as a continuation and extension, not as a clean break.
Naming Misreadings to Avoid
Common mistake Treating the plus signs as decoration or a typing error.
What it looks likeAssuming the intended name must have been C+.
Why it failsC++ was chosen deliberately, and its ++ refers to C’s increment operator as a wordplay about change from C.
Do this insteadRead C++ as a name that keeps the C lineage and signals an evolution of that language.
Common mistake Assuming C+ would have been an equally suitable shorter name.
What it looks likeReplacing C++ with C+ because both seem to suggest an added change.
Why it failsC+ was described as a syntax error and had already been used for an unrelated language.
Do this insteadRecognize that the chosen spelling conveys the increment idea while avoiding the stated problems with C+.
Common mistake Reading C++ as the name of a wholly separate language.
Why it failsThe name was selected to signal that the language evolved from C.
Do this insteadTreat the C in the name as a visible marker of continuity.
Check Your Interpretation
A learner says, “C++ is just C with a decorative plus sign, and C+ would have meant the same thing.” Explain why that interpretation misses the history of the name. Include what ++ refers to, why C+ was rejected, and what the name says about the language’s relationship to C.
Hints
- Separate the operator’s meaning in C from its figurative use in the language name.
- Recall both stated problems with C+.
- Connect the C in the name to the language’s origin and design direction.
Key Takeaways
- Rick Mascitti coined C++ in 1983 to replace the working name C with Classes.
- The ++ is C’s increment operator, reused in the name to suggest one step of change and an evolution from C.
- C+ was rejected because it was a syntax error and had already been used for an unrelated language.
- The language’s early purpose was to make writing good programs easier and more pleasant for the individual programmer.
- Its design, documentation, and implementation developed together in response to user problems and discussion.