History of C++

History of C++

The C++ programming language is a powerful general-purpose programming application software platform. It is a universal programming language that has developed over the years and is popular worldwide. C++ programming language was designed and developed as an extended version of the C programming language to add object-oriented programming concept features. In general, C++ programming language has become one of the most widely used languages ​​globally for commercial-purpose system software development, game development, cross-platform applications, and high-performance universal system software applications.

History of C++

A Detailed History of the C++ Programming Language.

Logo Before C and the Birth of C 1970s.

Before the C++ programming language, the C programming language was a programming language under development in the early 1970s. The C language was designed and developed by Dennis Ritchie at AT&T Bell Labs. Dennis Ritchie’s objective was to develop a high-level programming language for creating system software, such as CUI and GUI-based small operating systems. The C language was an advanced programming language, improving programming from its predecessors, such as B languages. At that time, the C language had many restrictions in both abstraction and efficiency.

  • 1972 – The C programming language was officially introduced during this time, and it quickly became popular due to its simplicity and programming efficiency features and capabilities.
  • 1978 – The first edition of “The C Programming Language” by Brian Kernighan and Dennis Ritchie was officially published during this year. This strongly established C as a widely used programming language.

The C++ programming language was born 1979–1983.

The C++ programming language had its origins in a small project at Bell Labs called “C with Classes,” led and created by Bjarne Stroustrup. The purpose of C with Classes was to combine the efficiency and capabilities of the C language with the abstraction class capabilities of higher-level languages, especially the then-in-demand object-oriented features.

  • 1979 – Bjarne Stroustrup began work on the C with Classes concept, a precursor to the C++ language. Bjarne Stroustrup added or introduced features such as classes, class constructors, and subclasses from a basic class inheritance root class to the C language to provide object-oriented programming (OOP) capabilities.
  • 1983 – The C++ programming language was officially renamed C++, where the “++” symbol represents the increment operator in the C language. This represents an advanced version of the C language. Bjarne Stroustrup’s goal was to improve and advance the C language, not to replace its fundamental core, introducing new features such as improved abstraction concepts, modularity, small-block source code creation, and source code reuse.

C++ programming: Early development and standardization 1985–1990.

The late 1980s saw rapid development in C++ programming, and several advanced design developments laid the foundation for modern C++ programming.

  • 1985 – The first commercial version of the C++ programming language was released, and AT&T Labs made it available for public use. This C++ version included built-in support for classes, basic inheritance, operator overloading, and data type checking. It also provided a number of ready-made templates, allowing for generic programming (creating functions and classes that work with any data type).
  • 1989 – This year, Stroustrup released the first edition of “The C++ Programming Language,” which became the standard reference for learning C++ programming at the time.
  • 1989–1990 – During these years, the C++ language underwent continuous design evolution, with numerous improvements made to advanced object-oriented features such as multiple inheritance and virtual functions. Stroustrup played an important role in this complete design and development phase.

First Standardization Version 1990–1998.

Subsequently, the C++ programming language became more robust and mature, and gradually gained popularity as a standardized language.

  • 1990 – The ANSI/ISO C++ Committee was created to design and develop a standardized multi-purpose version of the C++ language. The ANSI/ISO process took nearly a decade to complete, making the C++ programming language one of the first large-scale programming languages ​​with a formal standard purpose.
  • 1998 – ISO/IEC 14882:1998, also known as C++98 version, was the first international standard version for the C++ language. This version formalized many features of the C++ language and included improvements and developments in advanced issues such as template metaprogramming, the Standard Template Library (STL), and exception error handling.

Modern C++ Evolution 2000–2010.

Over time, the C++ programming language continuously evolved into a more powerful and flexible programming software application, incorporating all the features and functions of the modern programming paradigm.

  • 2003 – This year, a minor update was made to correct C++ programming issues, bug fixes, and some minor improvements. Following this, version C++03 was released. This version contained no major updates or new features, but it clarified some fundamentally confusing concepts in the C++98 standard version.
  • 2005–2006 – The C++0x project began in this year, with the aim of creating a new version of C++ programming that incorporated many modern programming features.
  • 2011 – This year, the C++11 standard version was released. This was one of the most important updates in C++’s history.

This included some special or advanced features.

  • Lambda expressions were added in this version to support the functional programming concept style.
  • Move semantics features were introduced to optimize performance by allowing system resources to be moved instead of copied.
  • Type inference was introduced with the auto keyword.
  • New standard library features were added, such as nullptr, smart pointers, and concurrency support, such as threads and atomics features.
  • Range-based for loops features were allowed for easier looping iteration on collection data types (stack, queue, and destination data types).

Continuous evolution 2014–2020.

After the C++11 version, the C++11 language continued to evolve, focusing on modern programming concept techniques and improving programming usability.

  • 2014 – The C++14 standard version introduced several bug fixes and minor improvements compared to C++11. In particular, C++11 lambda expressions became more robust and there was better support and environment for using user-defined literals.
  • 2017 – The C++17 standard version focused on further improving new programming features and adding new functionality. For example,
  • Structured binding features were introduced for unpacking the tuple data type or pair.
  • Optional types were introduced to represent particular data type values ​​that may be absent in the program.
  • File system library support was provided for easier handling of file and directory location paths in file handling.
  • 2020 – This year, several new features were added to the standard version of the C++20 language, primarily including:
  • Programming concepts, a method for indicating constraints on template types, improvements to template error messages, and improved type safety.
  • Using coroutines in existing programs, allowing for more readable, compatible asynchronous program source code creation.
  • Ranges library support was added, providing a more functional-style method for working with data type default ranges.
  • Calendar and timezone library support for advanced date and time handling in existing programs.

C++23 version: Major update improvements.

By the year 2023, C++ programming will become a highly advanced, multi-purpose, mature programming language. It includes several new features to improve both the security and device system performance of the C++ language. The C++23 standard version includes several further improvements to make the language easier to use and more robust for multi-purpose use. These include:

  • Added pattern matching statement features (which allow you to create a new format for more advanced switch-case statements).
  • Support for contracts was provided in the C++23 standard version, which provides a more expressive way to indicate preconditions and postconditions for programming functions.
  • Added the improved program constexpr (compile-time computation) feature, which allows more complex digital computations to be performed during program compilation.

Status to date and C++26 standard.

C++26 is currently in development and was scheduled to be released in March. The C++26 standard version includes many new features and functions, including reflection, contracts, preconditions, postconditions, and invariants, std::execution (Sender/Receiver), and language security, integrity, flexibility, and reliability.

Leave a Reply