C++

Partager :

Ces questions ont seulement été posées aux développeurs ayant indiqué que C++ était l'un de leurs trois principaux langages de programmation.

Partager :

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

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

Pas de surprises concernant le niveau d'adoption de C++23 et celui des normes antérieures, qui sont pratiquement les mêmes que ceux des années précédentes, on est dans une fenetre temporelle glissante. C++23 affiche un taux d'adoption de 10 % en 2023, légèrement inférieur à celui de C++20 en 2020 (12 %). Cela peut s'expliquer par le fait C++20 avait apporté un plus grand nombre de nouvelles fonctionnalités que C++23.

Inbal Levi

Ingénieure logiciel en chef chez MPGC Services Ltd (Millennium), membre du comité WG21

C'est super de voir que l'utilisation de C++20 est déjà aussi répandue dans les secteurs des systèmes embarqués et du développement de jeux. Cette version du langage accroît les capacités lors de la compilation, ce qui est bénéfique pour ces secteurs dans lesquels les performances d'exécution sont primordiales. J'espère que C++23 connaîtra des taux d'adoption similaires dans les années à venir.

Bryce Adelstein Lelbach

Architecte principal chez NVIDIA

La forte hausse de l'adoption de C++20 fait sens car ses implémentations sont devenues beaucoup plus mature et riches en fonctionnalités. Je pense qu'une grande partie de la communauté va passer de C++17 à C++20 au cours des prochaines années.

Migration vers de nouvelles normes C++

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

57 % des personnes qui utilisent C++98/03 disent qu'elle n'envisagent pas de changer de norme ? C'est un peu décevant, mais étant donné que seuls 8 % des repondants utilisent encore C++98/03, cela signifie qu'à peine 4 % du code C++ mondial reste sur cette ancienne norme, ce qui similaire à ce qui se passe avec d’autres langages de programmation.

Envisagez-vous d'utiliser l'une de ces fonctionnalités de C++20 dans votre projet actuel au cours des 12 prochains mois ?

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

Bien que de gros progrès aient été faits récemment au niveau de la prise en charge des modules C++20 dans les systèmes de build et l'écosystème, je suis étonné que la moitié des répondants prévoient d'utiliser les modules C++20 (en production je suppose) dans les 12 prochains mois. Cela me semble beaucoup et je ne pense pas que cela sera le cas en réalite.

Inbal Levi

Ingénieure logiciel en chef chez MPGC Services Ltd (Millennium), membre du comité WG21

Je suis vraiment contente du taux d'adoption rapide des fonctionnalités dans le secteur des systèmes embarqués, qui est généralement connu pour sa lenteur dans l'adoption des nouveautés. Je pense que cela s'explique par les avantages significatifs que C++20 peut apporter à ce secteur.

Bryce Adelstein Lelbach

Architecte principal chez NVIDIA

Je me demande combien de personnes ont réellement essayé d'utiliser les modules. On voit qu'il a beaucoup d'intérêt mais pas tellement d'adoption.

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

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

Le marché est clairement dominé par Microsoft et JetBrains. Il semble que la croissance rapide de l'utilisation de VS Code commence finalement à ralentir (du moins parmi les développeurs C++) et que les trois principaux IDE – CLion, VS et VS Code – aient maintenant des parts de marché équivalentes.

Quels frameworks de tests unitaires utilisez-vous régulièrement, le cas échéant ?

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

29 % des répondants n'écrivent toujours pas de tests unitaires pour leur code C++, ce qui est décevant, même si ce chiffre baisse légèrement au fil des années. L'avenir du langage dépend aussi de l'évolution de ses utilisateurs sur ce point.

Inbal Levi

Ingénieure logiciel en chef chez MPGC Services Ltd (Millennium), membre du comité WG21

Je suis surprise d'apprendre qu'autant de développeurs écrivent des tests unitaires sans framework. Des efforts sont faits par le comité afin de promouvoir les gestionnaires de paquets. J'espère que dans les années à venir cela incitera plus de personnes à écrire des tests unitaires et à utiliser un framework pour le faire.

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

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

Cela fait plaisir de voir que de moins en moins de développeurs compilent les bibliothèques manuellement en utilisant leurs instructions. Espérons que le recours aux solutions automatisées réduira encore davantage cette pratique, qui est propre aux écosystèmes C et C++.

Inbal Levi

Ingénieure logiciel en chef chez MPGC Services Ltd (Millennium), membre du comité WG21

Cela montre bien que la communauté C++ attend une prise en charge plus importante des gestionnaires de paquets.

Bryce Adelstein Lelbach

Architecte principal chez NVIDIA

Je pense qu'on pourra atteindre un point d'inflexion où ces gestionnaires de paquets (vcpkg, Conan, etc.) seront suffisamment matures et largement utilisés pour devenir une norme de facto. Mais nous n'en sommes pas encore là.

Quels modèles de projet ou systèmes de build utilisez-vous régulièrement ?

Bryce Adelstein Lelbach

Architecte principal chez NVIDIA

Il est très intéressant pour moi de voir que de voir que la part de marché de CMake a baissé et que celle de Ninja a augmenté. Ce n'est pas une tendance dont j'avais connaissance. Ce n'est peut-être que du bruit, mais compte tenu de la croissance rapide de CMake jusqu'à présent, ces données peuvent vouloir dire qu'il atteint un point de saturation.

Quels compilateurs utilisez-vous régulièrement ?

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

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

Python aussi est très utile et mérite de figurer parmi les outils des développeurs C++.

Bryce Adelstein Lelbach

Architecte principal chez NVIDIA

La tendance est à l'utilisation de JavaScript et de Rust avec C++. Compte tenu de la popularité croissante de Rust, je suis surpris que l'utilisation combinee de Rust avec C++ ne soit pas plus importante. Cela peut suggérer qu'il est plus difficile d'utiliser Rust dans des projets existants que dans de nouveaux projets.

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

Bryce Adelstein Lelbach

Architecte principal chez NVIDIA

Je pense que la diminution de l'utilisation des outils d'analyse fournis par les IDE peut s'expliquer par une tendance à intégrer l'analyse statique dans la CI, par exemple en exécutant l'analyseur statique Clang-tidy/ClangFormat/Clang dans GitHub Actions.

Comment procédez-vous ou comment votre équipe procède-t-elle à l'analyse du code ?

Quels outils ou techniques utilisez-vous pour optimiser les temps de build de vos projets C++ ?

Diego Rodriguez-Losada Gonzalez

Architecte principal chez JFrog

Il y a encore cinq ans, le marché des IDE pour C++ était essentiellement dominé par un seul produit, Visual Studio, qui était spécifique à Windows. On développait donc sous Windows pour avoir accès à un bon IDE. Aujourd'hui, deux principaux fournisseurs sont présents sur ce marché – JetBrains et Microsoft – et leurs IDE, CLion et Visual Studio Code, ne s'adressent pas qu'aux développeurs Windows.

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 amis et collègues.

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