
Discussions about the current position of C ++ in the programming world, as a rule, divide participants into two fronts: some people dislike this language, predicting a quick death for it; others, on the contrary, claim that they wrote, write and will write in C ++. I would say that the truth is somewhere in the middle, but this would mean that C ++ is in a kind of “hanging” state, in which it was, for example, between the outputs of C ++ 03 and C ++ 11 standards. In fact, everything is a little different. How? Let's try to figure it out.
Go to the bottom?

')
Nothing like this. Maybe C ++ is not as popular in terms of learning by novice programmers as C # or Java, maybe new technologies are not sharpening it, produced by giant corporations, maybe it is not promoted by the same Microsoft and Oracle, but to say that C ++ has gone to the bottom - then impudently lie. Software written using C ++ has not gone away and requires support. New software, for example, game engines, also uses C ++ with might and main, and the standards C ++ 11, C ++ 14 and the upcoming C ++ 17 only confirm that this programming language is doing well. But let's get everything in order.
C ++ 11, C ++ 14, C ++ 17 ...

As mentioned earlier, between the C ++ 11 and C ++ 03 standards, the language was in a kind of “suspended” state. It seems that such libraries as boost, Qt and others developed and supplemented, C ++ / CLI appeared, and the new official standard was not and was not.
This went on for a long time, and the
C ++ 11 standard, planned for publication in 2009, was released only two years later. But nevertheless came out. And it didn’t just come out, but brought a lot of additions, extensions and “syntactic sugar”. Writing using the new standard has become easier and more convenient, many tools have been added to the standard library that make life easier for programmers. Official support for parallel programming was introduced, which is important, initialization lists designed to make the code clearer, lambda functions that probably found their fans ... And this, of course, is not all, but the article is a bit different - it makes no sense to list all the innovations.
Great, the C ++ 11 standard is out, but what's next? Simple again for 8 years? And no. It's no news that the standard
C ++ 14 has already been released. No, this extension, which introduced C ++ 11, is out of the question, but additions and improvements are taking place.
But last but not least, the trend has not been lost, and blanks for a new standard, C ++ 17, are already visible on the horizon.
Undoubtedly, some time will pass before the programmers learn all the delights of the new standards and learn how to apply innovations correctly. However, these innovations should have a positive impact on the quality of the code and software.
And what about the old software?
Existing software
A lot of software is written using C ++. And, of course, it must be supported. Want to see real examples? Please refer to the
appropriate list for help. Surely you will find there a lot of familiar products. I do not think that someone will rush to rewrite existing working C ++ code in C # or Java, just because it will be more convenient in the future, because "garbage collectors", etc. etc. It turns out that knowledge of C ++ is again necessary. And given the fact that C ++ has become much more convenient in working with the release of new standards, the idea of ​​writing modules / add-ons in modern C ++ is taking place and does not look insane. In the future, this code will be much easier to maintain. At the same time, it is still the same productive C ++, with an extensive set of features. A supplemented standard library will allow you to use ready-made solutions without the need to invent bicycles.
Popularity among beginners

On this front things are not going too smoothly: C ++ is not a very popular language among novice programmers and essentially loses to languages ​​such as C # or Java. Why? There are several reasons for this:
High entry threshold

Probably, there is no such programmer who would not hear about the complexity of C ++. Of course, the language is extensive, the nuances - an uncountable set. But what do we get in return? Productivity + in-depth control of the processes taking place (especially if going down a bit from C ++ to pure C). Here again, mention should be made of the C ++ 11 standard, which is more friendly to beginners, offering convenient syntax, various kinds of containers, algorithms, and other convenient things designed to make life and writing code easier.
Nevertheless, although the probability of this is very reduced, you can still shoot yourself if you wish.
Weak promotion
I think it is no secret to anyone how languages ​​such as C # or Java are being promoted by corporate corporations: Microsoft and Oracle. I’m not sure to talk about Java, because I don’t know much about the trends on this front, but Microsoft’s progress is very noticeable. Most Microsoft technologies are sharpened specifically for C #. The hackathons conducted by Microsoft again run using C #. No, this is not bad, just a statement of fact.
For C ++, there is no such support. Yes, various tools are released for it to make the work and the process of creating applications easier. Here it is worth remembering the same
Qt , recently released
ReSharper C ++ from JetBrains. In
Visual Studio 2015 introduced support for some of the innovations of the latest standards, plus some additional features - it became easier to work.
But with the scale of the aforementioned advances, this is still not comparable.
Specialization
Despite the fact that C ++ is a language that gives the developer, as they say, all the cards in hand, the area of ​​its application is not comprehensive and occupies a certain niche. There are competitors, it also has its influence. Take mobile development, for example. The main platforms are occupied by various languages: Windows Phone - C #, Android - Java, iOS - Objective-C. And this does not mean that under these platforms there is no possibility to write in C ++, the only question is how convenient it will be and whether it will also be effective. For the web, development for which every year becomes more popular and more popular, C ++ is also not very suitable. The ability to work with sockets is, libraries, like Wt, is. But have you heard a lot about C ++ web applications? Here I am not. Given the fact that mobile and web development have become very popular and are only gaining momentum, the choice of beginners in favor of other languages ​​is understandable.
TIOBE Index
Words are words, but as they say, it’s better to see it once than hear 100 times.
So I suggest to look at the current state of affairs. Quite popular in this regard is the
TIOBE index, which reflects the ratings of the language, its change in the rating table and other indicators.

As can be seen, compared to last year, C ++ not only did not slow down, but was able to enter the top three. Moreover, it is one of the two languages ​​in the top five, whose rating, albeit slightly, has nevertheless risen.
Conclusion

I think that you have already formed an opinion on the current position of C ++ in the modern world. Let me express my own.
Shouting that C ++ is not alive is alive, since it would be a lie. Talking about the fact that C ++ dies is also impossible, since it is still a big lie.
C ++ is alive and occupies its specific niche. Emerging standards add innovations to the language, making it more convenient and easier to handle. Software written in this language has also not gone away and requires support. In certain areas, C ++ is the best suited for writing software, and this, combined with the above, means one thing - C ++ is relevant, it does not intend to develop and take positions.
If you want to share this article with an English-speaking audience, then please use the link to the translation: Sergey Vasiliev.
C ++ in the modern world .