C++: The Next Step
During the late 1970s and early 1980s, C became the dominant computer
programming language, and it is still widely used today. Since C is a successful
and useful language, you might ask why a need for something else existed. The
answer is complexity.
Throughout the history of programming, the increasing
complexity of programs has driven the need for better ways to manage that
complexity. C++ is a response to that need. To better understand why managing
program complexity is fundamental to the creation of C++, consider the
following.
Approaches to programming have changed dramatically since the invention
of the computer.
For example, when computers were first invented,
programming was done by manually toggling in the binary machine
instructions by use of the front panel. As long as programs were just a few
hundred instructions long, this approach worked.
As programs grew, assembly
language was invented so that a programmer could deal with larger,
increasingly complex programs by using symbolic representations of the
machine instructions. As programs continued to grow, high-level languages
were introduced that gave the programmer more tools with which to handle
complexity.
The first widespread language was, of course, FORTRAN. While FORTRAN
was an impressive first step, at the time it was hardly a language that
encouraged clear and easy-to-understand programs. The 1960s gave birth to
structured programming. This is the method of programming championed by
languages such as C. The use of structured languages enabled programmers to
write, for the first time, moderately complex programs fairly easily.
However,
even with structured programming methods, once a project reaches a certain
size, its complexity exceeds what a programmer can manage. By the early
1980s, many projects were pushing the structured approach past its limits. To
solve this problem, a new way to program was invented, called object-oriented
programming (OOP). Object-oriented programming is discussed in detail later
in this book, but here is a brief definition: OOP is a programming methodology
that helps organize complex programs through the use of inheritance,
encapsulation, and polymorphism.
In the final analysis, although C is one of the world’s great programming
languages, there is a limit to its ability to handle complexity.
Once the size of a
program exceeds a certain point, it becomes so complex that it is difficult to
grasp as a totality. While the precise size at which this occurs differs,
depending upon both the nature of the program and the programmer, there is
always a threshold at which a program becomes unmanageable. C++ added
features that enabled this threshold to be broken, allowing programmers to
comprehend and manage larger programs.
C++ was invented by Bjarne Stroustrup in 1979, while he was working at
Bell Laboratories in Murray Hill, New Jersey. Stroustrup initially called the
new language “C with Classes.” However, in 1983, the name was changed to
C++. C++ extends C by adding object-oriented features. Because C++ is built
on the foundation of C, it includes all of C’s features, attributes, and benefits.
This is a crucial reason for the success of C++ as a language. The invention of
C++ was not an attempt to create a completely new programming language.
C++ was not an attempt to create a completely new programming language.
Instead, it was an enhancement to an already highly successful one.