Infographic: C/C++ facts we learned before going ahead with CLion

Since the first CLion announcement and public preview build, we’ve received many questions about technologies and toolchains selected to be the first in CLion (CMake, GCC and GDB). We’ve also had a couple of interesting discussions about the C and C++ market on various conferences and here in our blog.

JetBrains has a fantastic Research team that runs some exciting market research studies. They investigate typical user profiles, technologies, pricing and other crucial aspects of product development.

Before going ahead with CLion, we had asked our Research team for insight into the C/C++ market. We wanted to know things like Who are C and C++ developers? What areas do they work in? What tools do they use? and so forth. After a lot of hard work, the Research team gave us the answers we were looking for, and a pack of interesting facts to boot.

From a practical point of view, this research was instrumental in setting our first roadmap. It confirmed our decision to start with the CMake+GCC/Clang+GDB toolchain, and to add LLDB as soon as possible after the 1.0 release.

Take a look at the infographic that sums up the results of our research:

I completely agree that CMake is becoming more popular. Unfortunately, not a single one of the projects I work on uses it. I look forward to a CLion with Gnu make support. Until then, it doesn’t make sense for me to use it. It’s too bad because I like what I see.

If 39% of all developers work on Windows, and 36% of windows developers work on Visual C++ compiler (sic!), it means that 14% of all developers use Visual C++ compiler. This is higher than 12% of “other” compilers overall, but, paradoxically, Visual C++ is supposedly somewhere inside that category.

That’s a good observation. The point is that various data has come from various data sources, that can be influenced by many factors. When we got some data on the same topic from different sources, we were trying to get some average. Actually various data sources gives slightly different numbers with inaccuracy up to 4-7% for each of these questions. For example for platform distribution we saw 40/50/10 variant (however the order was the same for all the options), and 39/44/17 is a average across all the sources given platform distribution numbers.
Compiler stat is more accurate across various resources, however we suspect that all-platforms compiler distribution was mostly measured across cross-platform projects, that means less percent for the Visual C++ compiler (and that’s the reason we include the Windows stat separately from the all platforms stat here).

The C++ debuggers stat looks a strange too. If 14% of all developers use Visual C++ compiler, then, probably, they use the IDE Visual Studio and its debugger.
But Visual Studio debugger is not in the debuggers list. Also most likely “WingDbg” is a misprint, you mean “WinDbg”.

Looks like a misprint. We’ll recheck and update. Thanks.
However about 14%, as I’ve mentioned before the point is that various data has come from various data sources, that can be influenced by many factors. When we got some data on the same topic from different sources, we were trying to get some average. Actually various data sources gives slightly different numbers with inaccuracy up to 4-7% for each of these questions. For example for platform distribution we saw 40/50/10 variant (however the order was the same for all the options), and 39/44/17 is a average across all the sources given platform distribution numbers.
Then if to take only Windows projects, the percent for VS and it’s debugger will be the most, however for cross-platform projects the things can differ and it affects the stat.
Anyway thank you for the reasonable notice.

Statistics drawn from job ads are so noisy as to be nearly lacking signal entirely. I doubt any such result merits inclusion here, except perhaps to note that CLion may have given it (or chose not to give it) unwarranted attention.

Besides the appalling level of ignorance exhibited by HR people placing such ads, the numbers are strongly affected by personnel turnover: jobs ads are placed when somebody gets fired, or leaves. They are also affected by project turnover: as projects are canceled or abandoned, new projects are started, leading to ads. Job listing numbers include a very strong admixture from the fraction of incompetent users of the language. Industries that have difficulty attracting competent developers must advertise more to get them.

All that said, it appears that the final conclusions are unimpeachable, which is to say they agree with what I was sure I already knew.

I used to be considered a C++ programmer for a brief time, back in the 90’s when I worked on an Insurance system using Borland’s C++Builder.

Since then, I’ve always wondered where C++ is mostly used these days. I found the Industry Distribution tile intriguing. I wonder if the concentration around Finance/Banking is indicative of the fact that most high-speed, algorithmic trading systems are written in C++?

The latest version of the Autotools suite is a very fine build system construction set. Currently, its biggest flaw in my eyes is a *very* steep learning curve, and, as a consequence, hordes of cargo cult programmers throwing their build systems together by copying & pasting snippets they have found on the interwebs, all without understanding what they are actually doing.

Unfortunately, I’m afraid the build system “done right” is yet to come (?). CMake is certainly easy to get started with, and it’s hard to make it do simple things very wrong, even if you don’t understand what you are doing, which is good. Yet, if you need to do complicated stuff, like autogenerating code before the build where results are not known in advance (just to give one specific example), things get even worse than with Autotools…

So, to take it to the editor war space, I’d say it’s fine that stuff like Atom is popping up, but vim & emacs are still *the* editors out there.

MinGW is a native Windows port of GNU development tools, which includes GCC, GNU Binutils, GDB, and a number of small support libraries. Neither CLang nor the Intel compiler are GNU software, therefore they cannot be considered alternatives for a MinGW compiler.

Hi Davide,
Currently Qt GUI is out of product scope. However you can try writing a plugin by your own. CLion uses the general IntelliJ platform API.
Regarding the oss license, which e-mail address and full name you were using? I’ll try to find out what’s the problem.

For this we’ve made a separate research. If to speak shortly we were collecting data from various sources: TIOBE, Stackoverflow, OReilly, GitHub, Jobs site and other. Then several metrics and ratings were built and the resulted data were presented. We were trying not to rely ONLY on TIOBE index, since it counts just Google searches, and we wanted some wider metrics to be built.

I am trying to understand where would Google, Microsoft, Apple, Amazon or Adobe be. Do they not make job ads maybe?

Google=Marking? OS?
Microsoft? No idea where they fit. Application or OS or infrastructure or application servers.
Apple=Electronics? OS?
Amazon=application servers.
Adobe = application are there no application programmers anymore? seems odd? is this retail?

Do you have any idea what category these company would fall in. Maybe the number of C++ programmers in these large companies are still small compared to the million or so programmers in the US.

These companies are big, but still there are more areas where C++ is more popular. Trading area is huge to tell the truth, with hundreds of companies in it, and all in C++. Embedded, gaming – follow the same. However, some of those from your list may fall into listed groups (like electronics, I believe). OS development is in C++, but the number of developers are not that big in comparison to Game Dev or Finance.

We used different sources: reddit, Stackoverflow, OReilly, GitHub, Jobs site, several paid data sources we own and others. So this is an aggregated result.
Finance and Banking are really very close, however there are some areas to differentiate these two. Many sources separate Finance as more about investments and money management, and Banking is just about all the banking processes and bank-related systems. We can unite them actually into one group, but here they were separated just because data sources often do the same way.

Unfortunately no. This data is our internal report that we can’t share publicly, especially taken into consideration that some parts were taken from the paid 3rd party sources. And some is based on the anonymous surveys made by JetBrains.