Language: EN

cpp-historia-y-evolucion

History and evolution of C++

C++ is one of the most influential programming languages (perhaps the most) and widely used in system development, embedded software, video games, and applications.

Its history spans decades of evolution and, in many ways, it has long been a reference and inspiration for all other languages.

Additionally, it is the subject of this course 😉. So, for general knowledge, let’s take a moment to briefly look at its history.

1980s: Origins

C++ was created in 1979 by Bjarne Stroustrup at AT&T’s Bell Labs, with the purpose of developing a language that combined the low-level features of C with the capabilities of object-oriented programming.

At that time, the language was named “C with Classes,” and its main goal was to improve the modularity and reusability of code.

In 1983, the language changed its name to C++ (referring to the increment operation in C) and added features such as encapsulation, inheritance, and polymorphism. Essential concepts in object-oriented programming.

The commercial version of the C++ language was released in 1985, marking the beginning of an era in programming (which goes through different stages, including me writing this).

1990s: Standardization and Popularization

Throughout the 1980s, C++ gained popularity, largely due to its compatibility with C. This made the transition easier for C developers, and partly because it offered an object-oriented model.

By 1990, C++ had become one of the most important languages in system software development and high-performance applications. This growth in C++ usage propelled the creation of an official standard.

In 1998, the first standardized version of C++ was published, the ISO/IEC 14882:1998 (known as C++98), which consolidated the syntax and structure of the language and established the official specifications.

This version also established the Standard Template Library (STL), which included data structures such as vector, map, and generic algorithms that helped developers write code more easily.

STL was created in 1994 by Alexander Stepanov and Meng Lee, and some of its elements were already in use before their official inclusion in the standard.

2000s: Need for Update

In the 2000s, C++ began to face certain challenges. Especially the risk of becoming obsolete due to the emergence of new languages like Java and C#.

These languages offered many modern features, such as simple syntax, automatic memory management, portability, libraries, and faster update cycles, etc., etc.

Meanwhile, C++ began to be perceived as a difficult language to learn and use correctly, partly due to the lack of regular updates and the complexity of its memory management.

To remain competitive, the C++ standardization committee began planning a significant update. (Here it comes!)

2011, The Return of the King

In 2011, after more than a decade since the last major update, C++11 was released. This version was a revolution for the language, adding features to try to bring it up to the level of “modern” languages (modern in 2011).

cpp-2011

The Return of C++

C++11 introduced significant improvements such as lambda functions, automatic type deduction (auto), smart pointers, concurrent and parallel programming, among others.

But, more importantly, C++11 marked a turning point, because it demonstrated that the language could evolve and adapt to modern needs. Furthermore, that there was intent to do so.

So, from that moment on, the standardization committee decided to adopt a cycle of regular releases with new versions approximately every three years, establishing a new era of constant evolution for C++.

C++14, C++17, and C++20

Following the success of C++11, the next versions, C++14 and C++17, solidified the approach of frequent updates.

C++14, released in 2014, focused on minor improvements and fixes to C++11, such as enhancing type deduction and adding the std::make_unique functionality.

But C++17, released in 2017, added more advanced features, such as std::optional, std::variant, parallelism in the STL, and additional data structures like std::any.

Later, C++20, released in (guess!) 2020, was another major update. It included new features like concepts, modules, coroutines, ranges, and regular expressions in the standard library.

These features brought C++ closer to other modern languages without sacrificing its performance and low-level control.

C++ Today

Following the cycle of regular releases, C++23 brings a series of practical improvements. It is not as disruptive an update as C++20; this version focuses on optimizing the usability and consistency of the language.

Among the new features, C++23 expands algorithm support in ranges, offers improvements in the standard library to make it more intuitive and flexible, and includes additional tools for debugging and more convenient syntax for type deduction in templates.

Currently, C++ remains one of the most relevant and widely used programming languages in software development.

However, the truth is that it has changed a lot since 1998. (In fact, it has become quite complex). If you learned C++98, it’s time to update yourself.

So, if you’ve endured all this text and want to learn to program in modern C++, continue with the rest of the course 💛.