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

Hi all,

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:

CPP_infogr

Your questions are welcome in the comments below!

This entry was posted in Backstage and tagged , . Bookmark the permalink.

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

  1. AE says:

    If the web frameworks are continued to develop, I think, in time we will also see C++ in this area as well with AngularJS or such libraries.

  2. Matthew says:

    I am very surprised to find that CMake is reported as the number 1 build system for c++. Thanks for putting together this infographic and sharing some of your market research.

    • Anastasia Kazakova says:

      You are welcome.
      CMake is becoming more and more popular during the latest years.

      • Ryan Ware says:

        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.

  3. Max Yankov says:

    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.

    How does that work?

    • Anastasia Kazakova says:

      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).

      • Mikhail says:

        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”.

        • Anastasia Kazakova says:

          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.

        • Amir Abiri says:

          Perhaps some % of Visual C++ develop on Windows but for cross platform so use a different toolchain with Visual C++ just as an IDE ?

          • Anastasia Kazakova says:

            It looks like that’s exactly how it works. Many cross-platform projects use VS on Windows just as an IDE, no sense for them to compile with MSVC.

  4. Nathan Myers says:

    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.

  5. James says:

    These stats are really cool! I am surprised by the prevalence of GCC on Windows. I would have thought that VC++ would have a much tighter grip on Windows development.

  6. 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++?

  7. Yury V. Zaytsev says:

    In #7 you have a typo: “C/C+” instead of “C/C++”.

  8. I am glad to see that autotools is finally dying! Also this shows how C people is more old-school than C++ people. C++ guys tend to update their source faster then C guys. Which is true.

    Thanks for sharing this amazing research!

    • Yury V. Zaytsev says:

      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.

      • Bill Torpey says:

        As someone who has tried (and failed) to learn autotools, I have to say that the terrible state of the autotools documentation has a lot to do with it.

        That turned out to be a blessing in disguise, since it forced me to convert our build system to cmake. While cmake is far from perfect, it’s much more accessible, especially to a novice.

  9. Eli Zaretskii says:

    In #10, “C++ compilers on Windows”, I think MinGW and GCC should be combined, because the compiler provided by MinGW is GCC. Having them separately skews the real picture.

  10. Eli Zaretskii says:

    No, MinGW supports neither CLang nor Intel’s compiler.

    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.

  11. Davide says:

    I have used the trial of CLion, and I quite liked it. Would be nice to see an integration with Qt for GUI development (maybe a plugin?). Too bad my request for an oss license never got an answer :-(

    • Anastasia Kazakova says:

      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.

  12. tank lint says:

    some of those developers should help Tox to supress Skype

    tox.chat, utox.org

  13. Seva says:

    Could you please elaborate a bit about the sources for your statistic’s on number of devs using different languages? It’s quite different from the statistics provided which is widely recognized. In particular, the position of C programming language differs dramatically.

    • Anastasia Kazakova says:

      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.

  14. Marco says:

    As a firmware developer I’m quite surprised embedded systems don’t appear explicitly in your research. Are they possibly included in the “electronics” figures for the industry distribution?

    • Anastasia Kazakova says:

      This how the external research was built, where we take the data about industry distribution. I believe that a big part of embedded is under telecoms and electronics.

  15. yuka says:

    Wow!!! only 4.9 million? Living in the modern world, majority of people dont know how to program? What a catastrophe

  16. Scott Wardle says:

    Hey Guys,

    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.

    • Anastasia Kazakova says:

      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.

  17. Robert Geva says:

    Interesting data. I am interested in how was the industry distribution data collected? What are the sources? And BTW, what is the distinction between Finance and Banking?

    • Anastasia Kazakova says:

      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.

  18. Ankit says:

    Is it possible to get the raw data for this survey :)?

    • Anastasia Kazakova says:

      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.

  19. Pingback: Internet of Things: Why Tools Matter? - Qt Blog

Leave a Reply

Your email address will not be published. Required fields are marked *