C++

Share:

These questions were shown only to the developers who chose C++ as one of their three primary programming languages.

Which C++ standards do you regularly use?

It’s great to see migration steadily progressing. I am especially glad to see game developers embracing C++20, and I’m looking forward to support from all game platforms. It will be a challenge for vendors to implement, but I am sure it will be worth it for concepts and ranges alone.

Guy Davidson

Head of Engineering Practice, Creative Assembly

I’m really surprised to see the rate of C++20 adoption. Things are clearly changing. We’re seeing a much faster adoption of new standards than we had in the past.

Jason Turner

C++ Trainer, Speaker, Author, YouTuber

I’m very glad to see that the solid majority of users are on releases from the last 5 years. Also, seeing the pre-C++11 releases drop below 10% is good news. Another couple years and we can stop including those in these sorts of surveys!

Titus Winters

Principal Engineer at Google

C++ standards migration

Always remember that there are users scattered throughout the standards timeline. Surveys like this remind us to write code that works everywhere, not just on the latest standard.

Guy Davidson

Head of Engineering Practice, Creative Assembly

I find this particularly surprising, since I’m not seeing very many companies ask for C++20 training yet. Many people still feel lucky to be moving to C++17.

Jason Turner

C++ Trainer, Speaker, Author, YouTuber

Is your current project planning to use any of these C++20 features in the next 12 months?

I feel that the [Modules] feature still needs some further development, but I look forward to being proved wrong.

Guy Davidson

Head of Engineering Practice, Creative Assembly

I hope that we see tooling catch up so that it’s easy to use Modules in the next 12 months!

Jason Turner

C++ Trainer, Speaker, Author, YouTuber

Which IDE / editor do you use the most for C++ development?

JetBrains has a range of C++ IDEs to help you avoid typical pitfalls and headaches that are often associated with coding in C++: CLion for cross-platform and embedded development, ReSharper C++ for Visual Studio users, and Rider for Unreal Engine and C++ game developers.

Which unit-testing frameworks do you regularly use?

Engineers much prefer writing code to tests for that code, and the time spent writing tests outweighs any real long term benefits.

Guy Davidson

Head of Engineering Practice, Creative Assembly

The statistic that a quarter of developers aren’t writing unit tests freaks me out. I don’t feel strongly about how you express those or what framework you use, but we all do need to be writing tests.

Titus Winters

Principal Engineer at Google

How do you manage your third party libraries in C++?

The ongoing situation with packaging C++ code for third party consumption is reflected here. I look forward to this problem being solved, but I have no optimism for that happening.

Guy Davidson

Head of Engineering Practice, Creative Assembly

The state of dependency management and package management makes me sad. The value of reproducible builds and clear dependency chains is massive. There’s so much “it happens to work” in this space.

Titus Winters

Principal Engineer at Google

Which project models or build systems do you regularly use?

I am on record as likening CMake to Stockholm syndrome for C++ engineers. It has become the de facto standard, for better or worse, as demonstrated by the clear lead it holds over its competitors.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Which compilers do you regularly use?

In CLion, you can use GCC-based, Clang, MSVC, and IAR compilers. For rare or custom cases, a custom compiler feature allows you to use any arbitrary compiler in CLion.

Which other programming languages do you use in your projects along with C++?

Python’s ubiquity as a programming language for AI and ML means there are no surprises here. The existence of quality libraries like numpy and pandas makes it an obvious choice. Perhaps they need analogues in the standard library, or we need to sort out the packaging issue.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Which of the following tools do you or your team use for guideline enforcement or other code quality / analysis?

With only 30% of people avoiding static analysis, I am reasonably confident that open-source code will become increasingly safe and secure.

Guy Davidson

Head of Engineering Practice, Creative Assembly

How do you or your team run code analysis?

Which tools or techniques do you use to optimize your C++ project build times?

Small is beautiful in this case. I’m interested to see how precompiled headers, modules, and unity builds interact in the coming year or so.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Thank you for your time!

We hope you found our report useful. Share this report with your friends and colleagues.

If you have any questions or suggestions, please contact us at surveys@jetbrains.com.