In the past few years, we talked about the “Revival of C++”. We had to admit Microsoft is the main participant of this activity, and I remember Craig Symonds and Mohsen Agsen used to mention this in a video.
In 2011, Microsoft published many articles to announce the return of C++, and quite a number of Microsoft experts including Herb Sutter explained on many conferences why C++ will revive, which is mainly because of the promoting use of modern C++. Meanwhile, the standard acknowledgement of C++11 led us to discuss C++ as a new language again.
However, up to 2011, C++ is already 30 years old. So it’s not that easy to make developers believe the new C++ has replaced many disappointing usages of the past with a fresh new method to improve the code.
Let’s take memory management as an example, which might be the most controversial in C++: over the years, object assignment is accomplished through the keyword “new”, and developers had to keep in mind that they need to call “delete” in somewhere of the code. The modern C++ solved the problem and boosted the use of shared pointer.
But for promotion, it’s not enough to just rely on the active C++ community and famous experts. Habit is a second nature. When you’re trying to promote a language or tool to someone, he might think you made sense but won’t do it as you expected.
This is what’s happening on C++. Many of us are still using “new” and “delete”, and it’s going to last very long. Besides, many developers will also keep calling the complex memory assignment to use this language.
The history of C++ influenced a plenty of things, even since the beginning of the project, developers has been considering this language to be very complicated.
Therefore, during the future promotion of C++, we shall remind the developer of the new C++ that when surfing the internet, “modern C++” and “C++” will lead to two different search results; the former means the latest usage, while the latter only represents the past.