When legacy code is mixed with modern language features and patterns, when the rich heritage of C++ and its compatibility restrictions co-exist with the adoption of best practices from other languages and technologies, some of us C++ developers become lost and need to follow and stick to a more conservative path. Recent independent research studies show that developers are still staying with C++11, slowly adopting any new standards. Will C++20 change that?
On the other side, many developers tend to avoid using unit testing frameworks and code analysis tools, are barred from throwing exceptions, and often still build packages manually. Alongside the areas where strict limitations are imposed on the subset of the language used, there are others, like game development, that find workarounds to emulate language features not yet accepted to the language standard. What are the real reasons for this state of affairs, what biases might be at play, and what are some of the improvements planned?
In this talk, we will overview the C++ ecosystem based on several independently conducted research studies (the most recent will be held at the beginning of 2020), identify the common aligning trends across all the sources, and analyze the reasoning behind them. We'll also decompose the C++ development into top areas and will analyze C++ usage projected on them.