Ces questions n'ont été posées qu'aux développeurs ayant sélectionné C++ comme l'un de leurs trois principaux langages de programmation.

C++

Quelles normes C++ utilisez-vous régulièrement ?

12%40%30%42%18%11%C++98 / C++03C++11C++14C++17C++20Je ne suis pas sûr·e
Matt GodboltCréateur de Compiler Explorer.

« Cela fait plaisir de constater l'adoption du C++ moderne. Une personne sur cinq est sur la dernière version, ce qui est génial, et beaucoup d'autres prévoient de passer au moins à C++17 l'an prochain. Les modules et les concepts semblent être de puissants facteurs de motivation. »

Migration des normes de C++

41%17% 9%17%17%Non, je ne l'envisage pasvers C++11vers C++14vers C++17vers C++20
Andreas KlingCréateur de SerenityOS et de la chaîne YouTube éponyme

« Il est logique que beaucoup de personnes qui étaient déjà sur C++17 aient envie d'adopter C++20. »

Est-il prévu que votre projet actuel utilise l’une de ces fonctionnalités C++20 au cours des 12 prochains mois ?

48%46%33% 5%31%ModulesConceptsCoroutinesAutreAucun·e
Andreas KlingCréateur de SerenityOS et de la chaîne YouTube éponyme

« Les modules arrive en tête des classements, comme prévu. Les temps de build de C++ se dégradant chaque année, il sera très intéressant de voir comment les gens vont utiliser les modules pour contrer cette tendance. »

Quel IDE / éditeur utilisez-vous le plus pour le développement C++ ?

28%26%24% 6% 3% 2% 2% 2%Visual Studio CodeCLionVisual StudioVi/VimQtCreatorEmacsSublimeXcode
Tous les résultats

Quels frameworks de tests unitaires utilisez-vous régulièrement ?

32%11% 9% 5% 4% 2%30%16% 4%Google TestCatchCppUnitBoost.TestdoctestCppUTestJe n'écris pas de tests unitaires pour C++J'écris des tests unitaires mais je n'utilise aucun frameworkAutre

Matt GodboltCréateur de Compiler Explorer.

« Il est tout de même décevant de voir qu'un tiers des développeurs n'écrivent aucuns tests unitaires. »

Comment gérez-vous vos bibliothèques tierces en C++ ?

26%23%21%21% 9% 7% 5% 1%14% 5%Le code source de la bibliothèque fait partie de mon buildJe compile les bibliothèques séparément en suivant leurs instructionsJe télécharge des bibliothèques toutes prêtes sur InternetJ'utilise un gestionnaire de paquets systèmevcpkgNugetConanbuild2Aucune de ces propositions, je n’ai aucune dépendanceAutre
Matt GodboltCréateur de Compiler Explorer.

« Près de trois quart des personnes interrogées ne disposent pas d'une bonne solution de packaging ; le fait de devoir générer les bibliothèques séparément, de faire des prebuilds ou d'utiliser la gestion des paquets du système, implique soit un travail de développeur, soit une dépendance vis-à-vis de parties externes pour les construire. Cela peut entraîner des retards pour les nouvelles versions et ajoute de la complexité à la mise à niveau ou au changement de compilateurs. »

Andreas KlingCréateur de SerenityOS et de la chaîne YouTube éponyme

« Ce ne serait pas C++ si nous n'avions pas 40 solutions concurrentes à ce problème, mais je ne peux m'empêcher de me demander si nous ne nous porterions pas tous mieux si nous en choisissions une et que nous nous y tenions. »

Quelles méthodes de signalement d'erreur sont autorisées sur votre projet actuel (dans le cadre de votre travail ou de vos études) ?

80%
Exceptions
54%
Codes d'erreurs numériques
20%
Types de classes stockant les résultats et les erreurs

Quel·s modèle·s de projet ou système·s de build utilisez-vous régulièrement, le cas échéant ?

55%36%31%10% 9% 9% 6% 6%CMakeMakefileProjet Visual StudioGradleNinjaProjet XcodeSystème de build personnaliséQmake
Tous les résultats

Quels compilateurs utilisez-vous régulièrement ?

GCCClangMSVCIntelСompilateur pourmicrocontrôleursPersonnalisé·e·sAutreGCC78%Clang43%MSVC30%Intel9%Сompilateur pour microcontrôleurs7%Personnalisé·e·s2%Autre1%
Matt GodboltCréateur de Compiler Explorer.

« Il est intéressant de voir que les compilateurs open source arrivent en tête de liste des compilateurs régulièrement utilisés. Dans mon monde, sous Linux, les compilateurs MSVC ne sont pas disponibles, mais j'ai toujours imaginé qu'il y avait plus de programmeurs sous Windows et que l'utilisation de MSVC serait donc plus importante. »

Andreas KlingCréateur de SerenityOS et de la chaîne YouTube éponyme

« Il est très intéressant de voir que GCC progresse plus que Clang. On dirait que GCC a plus progressé avec C++20. »

Quels autres langages de programmation utilisez-vous dans vos projets en plus de C++ ?

45%31%21%15%15%12%11%11%PythonCLangages de scripts Shell (bash/shell/powershell)JavaJavaScriptSQL (PL/SQL, T-SQL et autres extensions de programmation de SQL)C#HTML / CSS
Tous les résultats

Parmi les outils suivants, lesquels utilisez-vous (vous ou votre équipe) pour appliquer les directives ou autres opérations d'analyse ou d'amélioration de la qualité du code ?

38%23%21%17%11% 7% 4% 3% 2% 1%Outil fourni par mon IDEClang-tidyClangFormatClang-analyzer / Clang Static AnalyzerCppcheckCpplintCoverityStackPVS-StudioParasoft C/C++test
Tous les résultats

Andreas KlingCréateur de SerenityOS et de la chaîne YouTube éponyme

« La mise en forme automatique du code est encore largement sous-estimée. Cela peut paraître bête, mais en utilisant un outil comme ClangFormat, il n'y aura plus jamais de dispute à propos du style de code ! »

Merci du temps que vous nous avez accordé !

Nous espérons que vous avez trouvé ce rapport intéressant. N'hésitez pas à le partager avec vos ami·e·s et collègues.

Rejoignez le JetBrains Tech Insights Lab

Participez à des enquêtes et à des études sur l'expérience utilisateur pour aider les produits JetBrains à gagner en facilité d'utilisation, mais aussi en puissance. En participant à nos études, vous aurez également la possibilité de gagner des récompenses.

Si vous avez des questions ou des suggestions, contactez-nous à surveys@jetbrains.com.