C++ is one of the most popular languages in existence, and continues to be one of the most widely used object-oriented flavors of the venerable C language.
History of C++
Danish computer scientist Bjarne Stroustrup began working on an upgrade to C in 1979. For all its power, C is primarily a procedural programming language. While procedural languages are among the earliest style of programming languages, they do have some significant disadvantages. Notably, because a program written in a procedural language consists of a sequence of programming statements, the larger the program grows, the more unwieldy it becomes.
Object-oriented programming languages improve on that paradigm by more closely imitating life and adding classes, objects, methods and communication between objects. This makes object-oriented programming more suitable for larger, complex applications.
Stroustrup initially called his work “C with Classes,” adding object-oriented features to C’s compiler. By 1982, however, Stroustrup was working on a full-fledged successor to C, with C++ being released in 1985.
C++ Features and Advantages
As an object-oriented language, C++ has the features one would expect from such a language, including classes, data abstraction, encapsulation, inheritance and polymorphism. Because of its heritage in C, C++ shares a high degree of compatibility with the parent language.
C++ has a strong focus on system-level programming. As a result, C++ has long been a favorite language for creating operating systems and low-level software.
C++ is made up of two parts, the core language and the standard library. Because the standard library is generally included in any C++ implementation, developers can expect a common set of features and abilities to be available across platforms.
As a result, C++ is a very portable language and is a favorite choice for developing cross-platform applications and utilities.
C++ has a well-deserved reputation for performance. In fact, it’s not uncommon for developers writing software in other languages to use C++ to handle more intensive operations. Its emphasis on performance also makes C++ an excellent choice for systems with limited resources.
One of the things that helps the language’s performance is its memory management features. Unlike some languages, such as Java, that have automatic garbage collection, a C++ programmer is responsible for managing memory. This gives tremendous power to the programmer, but can also open the door for issues with less experienced developers.
Because C++ has been around so long, there is also a very large, healthy developer community around the language. This makes it easy to get help, as well as find additional libraries.
In spite of its many advantages, C++ does have some disadvantages. As one of the earliest examples of an object-oriented language based on C, C++ is sometimes considered to be overly complex and cumbersome, especially when compared with subsequent languages.
In many ways, this is to be expected. Creators of newer languages benefit from looking back at the improvements of those that came before them, seeing what worked and what could be improved upon. As a result, languages like Java, Swift, C# and others focused on being more straightforward and simple to use, and thereby avoided some of the complexity of C++.
The Type of Project C++ Work On
As the above illustrates, C++ lends itself to a wide variety of projects.
Countless applications that people use on a daily basis, such as Firefox and Chrome, are largely written in C++.
Many common databases, such as MySQL, are also written in C++, since it can provide the performance needed for large databases.
Similarly, many games are also written in the language. Few applications require the kind of performance that graphics-intensive games do, making C++ the ideal language for many modern games.
Performance is such a strong point that many compilers for other languages are still created using C++.
Again, as these examples show, C++ is heavily used in situations where performance is key.
C++: 35 Years and Going Strong
While many newer, flashier languages have come along and, in some cases, improved upon C++, the fact remains that the old language is still a workhorse. C++ continues to be the go-to language when performance, portability and scalability are essential.
Newer languages may get more attention and fanfare, but any developer that chooses to learn C++ will benefit in the long run. According to the TIOBE Programming Community Index, C++ currently holds the fourth spot on the list of most popular languages. What’s more, since 2001 it has never dropped out of the top five. This is a testament to its enduring power, and it is unlikely that anything will change that.