Concepts / The Early History of the C Language

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.

  • Programming

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++

C with ClassesEarlier working nameC++Coined by Rick Mascitti in1983replaced
How did the working name become a name that signals an evolution of 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.

Worked example

Reading the name as a clue

What relationship between C and the new language does the name C++ suggest?

  1. 1
    Keep the C

    The C in the name makes the language’s connection to its parent visible.

  2. 2
    Read 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.

  3. 3
    Combine the clues

    The name presents the language as a changed and extended C, rather than as an unrelated invention.

Result

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++CC+Syntax errorIncrement operatorUnrelated languageretains the C connectionuses the meaning ofwas ahad already named
How does the chosen name convey the intended connection, and why would C+ not work as well?

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 like

    Assuming the intended name must have been C+.

    Why it fails

    C++ was chosen deliberately, and its ++ refers to C’s increment operator as a wordplay about change from C.

    Do this instead

    Read 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 like

    Replacing C++ with C+ because both seem to suggest an added change.

    Why it fails

    C+ was described as a syntax error and had already been used for an unrelated language.

    Do this instead

    Recognize 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 fails

    The name was selected to signal that the language evolved from C.

    Do this instead

    Treat the C in the name as a visible marker of continuity.

Check Your Interpretation

MEDIUM

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.

More concepts starting with T