The Meeting C++ Community Survey results for 2020
published at 25.02.2021 13:57 by Jens Weller
At the start of 2020 Meeting C++ launched a continuous survey for the C++ community. In this post I will look at some of the results of the first year of running this survey.
Details on the survey
Before I get to start on some of the results, I'll give a recap on how the tool works and what the difference to other surveys in the C++ community is. While the launch was last year, the first ideas for the survey tool go back to 2016, when I was doing research for talks once again, and noticed that there is not much data on lots of different topics about the C++ community. We do not have much data on the adoption to C++11 from 2011 - 2016. And nearly no surveys or other public data points. Like what part of C++ do folks use, is Modern C++ really used that much and so on.
This changed in 2017 with the first survey from Jetbrains, followed by isocpp.org starting their own survey in 2018 and Barteks Coding Blog doing a first End of the year survey for 2018. So for the last 3 years, there is some data on the C++ community. I wanted to add to this body of data, and my approach is a bit different then the other surveys, in choosing to do a continuous survey, instead of a yearly one. My tool stores an aggregate but also the vote it self. Which offers some other interesting insights and options I'll go into later.
And as all those survey can only give us a good picture of how C++ is with folks contributing their time to these surveys, please consider to take one or two of these surveys right now for 2021:
And isocpp should also launch their survey in spring of 2021 afaik.
Survey results for 2020
As the Meeting C++ Community survey has currently over 70 questions, I'll just go into a few basic questions now and go more into detail in a follow up blog post. You can click through all results already, and compare to the continuous survey or just the live results of 2021. You might also want to look at the results for 2020 from Jetbrains and isocpp.
One of the most interesting questions is, which C++ Standards are actually used? The Meeting C++ Community survey has a few questions asking this in different ways: what do you have experience with, what do you use currently and what do you use the most at work? The first two are multiple choice, while the last is single choice. Lets take a look at the last two:
And when comparing the results with 2021:
For reference the single choice question:
But it gets interesting when you ask for feature usage, I'll go into the different C++11 - C++17 features in a follow up post, but one of the other unique questions in the survey is, what standard containers do you use?
Let me point out that span is not a container. I chose to have it in this question, as I often rather collect data on something that is related, then answering the question "why is span not in this question an option" over and over again. This is true for other questions too, I rather offer an answer that falls not 100% into the category. And as I am able to add options to questions, I have done this in a few instances. Everything after an "other" option usually is a later addition. New libraries get released, new standards will come...
C++ and Tooling
A few questions go into the area of what tools are used in the C++ community. Let me show you the graphs for IDEs and build systems in the multiple choice versions. The single choice versions are for these not as interesting, especially in build systems its then even more CMake.
What build system(s) do you use?
The survey also contains a ton of questions, which are more related to the community of C++ then C++ it self. Questions after how long you do C++, in which age group you are or if you are looking for a job.
And in case you do look for a job: Meeting C++ organizes an online job fair on March 16th!
I find these questions interesting and relevant. Also my survey tool allows to combine questions, and filter one questions by the answers of another. While this is often a kartesian product of useless combinations, it will give insights in the more useful combinations. Combinations like age class and standards experience or tool use might be interesting in the future.
Errors & Biases
Launching this tool has been a big success. And lots of lessons learned from it. Though in September 2020 I noticed that one of my SQL Queries scaled in a quadratic way, in the sense that loading a new question took longer and longer, the more questions were answered in the survey, not only the session. Its one of the bigger errors I had to fix, with this change I also gave you the option to answer the next question when the result of the previous is answered. The captcha is necessary to keep the bots out, but can be bypassed by creating a login or by entering "CppCast" since my appearance on CppCast last year.
Last but not least let me address that all of these surveys are biased in one way or another. Thats nothing bad, but something to be aware of. As it also gives different motivations to ask questions or which questions you find interesting enough to ask in your yearly survey. So comparing the questions between the surveys is a good thing to do. For my own survey, I think that there is a certain bias in the audience for C++ I reach, it is a mostly self selected audience of folks finding C++ interesting enough to follow it on the web, on social media AND invest the time to answer questions for the survey.
Join the Meeting C++ patreon community!
This and other posts on Meeting C++ are enabled by my supporters on patreon!