And the story starts back in 1979, when some really cool guy, named Bjarne Stroustrup (picture above), didn't enjoy the languages which existed those days and decided to work on a new one - "C with classes". Obviously, he wasn't full innovator and C++ is not the very first object-oriented programming language. You didn't think so, did you? Actually the first one, was Simula. It was pretty good. It had classes, objects, inheritance etc. But why didn't our friend Stroustrup enjoy it? Because Simula was slow. Other languages were fast, but weren't convenient enough for a broad development. So he decides to create something which was fast and convenient. And he started improving C, i.e. adding new features to it (like classes and objects). The C was chosen because it was general purpose, fast, portable and widely used. So he started developing it and his creature had the name "C with classes" or "New C". There were different names, because the standard name wasn't decided. It is always like that. Similar with children, first you make a baby and then decide on name :). So, in 1983, the programming language came out with new features (e.g. single line comment with "//") and its final name - "C++". You know from C, that "++" is an increment operator (i.e. i++). Stroustrup says: "the name signifies the evolutionary nature of the changes from C".
The language is being developed ever since. Shortly about releases:
- 1985 - the first commercial implementation of C++ was released
- 1989 - C++2.0 was released. New features included: multiple inheritance, abstract classes, static member functions and protected members. Later feature additions: templates, namespaces, exceptions, new casts and boolean type.
- 2011 - C++11 was released. And 11 not because it was 11th release, as some of you might have thought, but because it was released in 2011. New features and libraries added.
- 2014 - C++14 was released. Minor fixes and new features.
- 2017 - C++17 (or also called C++1z)
- 2020 - C++20
Enough with names and unnecessary talking. What makes C++ so popular?
- C++ is simply fast
- it has low level access to hardware and memory
- you can use different styles of programming (OOP, procedural, functional etc.)
- it is old, hence there are lots of libraries implemented already
- easy to embed other languages
Other than that, it has been living since a while, so a lot of libraries are already implemented for it, which can come handy to many engineers. Also, C++ is not isolated or strict language. You can use different styles of programming and easily embed other languages.
Even though it is really convenient and fast, it is criticized a lot. If you have used C++, you may probably guess why. Imagine having a vehicle. One tool (other programming languages) gives you opportunity to ride it. Another one (e.g. C++) gives you opportunity to ride it and also to smash it into parts and make it much faster vehicle. If you don't know how to do it, the chances are high that you end up with broken vehicle.
If you are still reading this post, you should be really bored to read the whole boring and long post.
Anyways, thank you for reading!