In this lesson, you will learn
- History and Evolution of C++
History and Evolution of C++
Here’s a brief overview and history of C++ programming language.
1970s: The Roots in C
- The C programming language is the root of C++.
- Dennis Ritchie developed C in the early 1970s at Bell Labs.
- It was designed for system programming and to provide low-level memory access
1979: Birth of C++
- The development of C++ began in 1979 by Bjarne Stroustrup, also at Bell Labs.
- Stroustrup was working on his PhD thesis and was interested in adding object-oriented features to the C language, which led to the creation of “C with Classes.”
- The first commercial release of C++ was in 1985.
- This version included classes, basic inheritance, inlining, default function arguments, and strong type checking.
1983: The Naming C++
- In 1983, the language was renamed from “C with Classes” to “C++.”
- The name signifies the evolutionary nature of the changes from C (“++” is the increment operator in C and C++).
1985: The C++ Programming Language
- Bjarne Stroustrup published the first edition of “The C++ Programming Language” in 1985.
- This book served as an important guide and reference to the language, which was still evolving.
Late 1980s: More Features
- By the end of the 1980s, C++ had evolved significantly.
- Features like virtual functions, function overloading, references, constants, and operator overloading were added.
1990s: Standardization and STL
- The 1990s saw the process of standardizing C++.
- The American National Standards Institute (ANSI) and the International Organization for Standardization (ISO) were involved in this process.
- In 1998, the ISO/IEC 14882:1998 (also known as C++98) was released.
- This was the first standardized version of C++.
- It included the Standard Template Library (STL), which provided a collection of common classes and interfaces.
Updates and Improvements
- In 2003, a minor update to the standard, known as C++03, was released.
- It fixed some problems and inconsistencies identified in C++98.
- The next major revision was C++11, released in 2011.
- This update included several significant changes like auto keyword, range-based for loops, smart pointers, lambda expressions, and improved STL.
- It was aimed at making C++ more memory-safe, comfortable for programming, and better performing.
Modern C++
2011: C++11 (C++0x)
- The release of C++11 marked a major update, introducing features like lambda expressions, auto keyword, nullptr, range-based for loops, and concurrency support.
2014: C++14
- C++14 was a minor update, focusing on performance improvements and bug fixes. It introduced features like generic lambdas and variable templates. C++17 brought significant enhancements, including structured bindings, inline variables, and filesystem library support.
2017: C++17
- C++17 brought significant enhancements, including structured bindings, inline variables, and filesystem library support.
2020: C++20
- C++20 is another major update, introducing concepts, ranges, coroutines, and modules. It significantly modernized the language with new features to improve productivity and performance.
Recent and Future Developments
C++23 and Beyond
- C++23 continues the evolution, focusing on improving the language’s usability, performance, and safety.
- Future updates aim to refine existing features and introduce new capabilities, driven by the ongoing efforts of the ISO C++ committee and the C++ community.
-
Key Contributions and Impact
- Object-Oriented Programming: C++ played a crucial role in popularizing object-oriented programming (OOP), which has become a dominant programming paradigm.
- Performance and Efficiency: C++ remains a preferred choice for system/software development, games, and real-time applications due to its performance and efficiency.
- Standard Library: The C++ Standard Library provides a rich set of tools and libraries that have been influential in the design of many other programming languages and libraries.
Throughout its history, C++ has evolved from a language with object-oriented features added to C, to a multi-paradigm language supporting procedural, object-oriented, and generic programming.
It has remained relevant and widely used due to its performance, use in system/software development, and its evolving nature that adapts to modern programming needs.
End of the lesson….enjoy learning
Student Ratings and Reviews
5.0
5.0 out of 5 stars (based on 1 review)
Excellent100%
Very good0%
Average0%
Poor0%
Terrible0%
Submit a Review