The Developer Ecosystem in 2019: Key Trends for C, C++, and a bit of Rust
As a tool vendor, we keep our finger permanently on the pulse with what’s going on in terms of key trends and important changes in the development world. As our IDEs cover lots of languages and technologies, there is a lot of ground to cover in all different directions. In the C++ team, we are obviously most interested in the C and C++ ecosystems and the related languages and technologies around them.
The Developer Ecosystem survey, which JetBrains runs yearly, aims to reveal all this kind of information. And today we are happy to share with you the results of the 2019 edition of this survey. Especially, we’ll take a closer look at the most interesting things we’ve found from this year’s study related to C, C++, and there’s even a bit about Rust too at the end.
Top C discoveries
The most interesting findings regarding C development were about the various tooling adoption. The project models distribution has mostly remained unchanged from 2018, however, Makefiles has secured itself a stronger position with 50%. A similar situation can be seen with the compilers, where GCC is trending, but Clang has grown its share from 23% to 35%:
A new question on dependency and package management tools was introduced this year that led to the discovery that for the C language 60% don’t use any dependency manager, while 22% rely on a system package manager. Nuget and Conan lead the list of specific dependency managers, with 6% of the share for each:
In terms of the IDE/text editors, all of the top-4 tools have strengthened their positions since last year, and again Vi/Vim is leading the trend:
We do wonder how many of the CLion users who answered this question are using the IdeaVim plugin to emulate the Vim mode and its key bindings ;)
Top C++ discoveries
In C++ our first question is always: what about C++ language standards adoption? C++11 and C++14 are still very popular among C++ developers, but C++17 is now at nearly 30%. But more importantly, we keep asking respondents if they plan to upgrade to a newer standard in the upcoming year, and this year we found out that one in three developers is planning to adopt C++17 in the next 12 months!
Next year we’ll definitely add the upcoming C++20 (which is going to be a huge!), and see how many developers are bravely pioneering with it already. What about you, will you be one of them?
CMake and GCC are the top project model and compiler, respectively. However, we have to admit that CMake is still growing and is now at over 40%, and in terms of compilers Clang overgrew the Microsoft Visual Studio C++ compiler and reached 32% (which is still less than half of the GCC usages):
This year we introduced 3 new questions into the C++ section. The first was about dependency managers which had some interesting results. While the share of those using a specific dependency manager (not a system one) is similar to the C-language case, the leader board has a completely different distribution. Unlike the case in C, Nuget gains 12% here, while Conan only takes 5%:
Conan seems to be the fastest growing dependency manager these days, acquiring a bigger audience, especially on Linux and macOS. It will be interesting to check on this distribution in a year from now and compare. By the way, if you are interested in starting with Conan in CLion, read this guest blog post from our friends on the Conan/JFrog team.
The next two questions were taken from the C++ Foundation survey and both are dedicated to coding guidelines and code quality. Interestingly, in the question regarding the tools for guideline enforcement and code quality checks, in comparison with the C++ Foundation survey, we added the option ‘Tool provided by my IDE’. And it won with 38%!
This fact makes us (as a tool vendor) feel some extra responsibility and pushes us to provide wider integrations with various tools in our IDEs to make them easily accessible for our users.
Regarding the guidelines sources the C++ developers are actively using, Effective C++ series (books by Scott Meyers) leads, with the Google C++ Style Guide and the main project of C++ Core Guidelines following up right behind it:
By the way, before this data was weighted and processed, and all these nice infographics were drawn, I was processing the raw data and including a few other sources on my own, to prepare for my talk “C++ ecosystem: For better, for worse”, in which I try to identify the common aligning trends across all sources and analyze the reasoning behind them. I also dug deeply into the most popular areas of C++ language adoption to see how these trends are reflected there. The recording of this talk from ACCU 2019 is available here:
And what about Rust?
Rust is often considered a language that every C++ developers should learn, or at least pay attention to. How is the language doing now, a few years after announcing v1.0? First of all, it seems Rust is most popular for home and side projects, with only 14% using it for their production work. And these home projects are relatively small, as more than 90% of respondents who chose Rust as one of their primary languages work with codebases of fewer than 300 files.
But what types of projects are done in Rust? Utilities and scripts for systems programming seem to be the most popular application area. However, it’s interesting to see some active Rust usage in other areas:
That was the round up of some of the most interesting facts and you are welcome to check out the full results:
The raw data (obviously, anonymized) will be published later, so you can investigate and analyze it deeper on your own. If you have any comments or thoughts on the C, C++, or Rust facts, share them in the comments below!
Your C++ Team
The Drive to Develop