C++

Partager :

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

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

C'est génial que la migration progresse régulièrement. Je suis particulièrement satisfait de voir que les développeurs de jeux adoptent C++20 et j'attends avec impatience la prise en charge de toutes les plateformes de jeux. Cette implémentation représentera un défi pour les fournisseurs, mais je suis sûr que cela en vaudra la peine, rien que pour les concepts et les plages.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Je suis vraiment surpris de voir le taux d'adoption de C++20. Les choses sont clairement en train de bouger. L'adoption des nouvelles normes est beaucoup plus rapide que par le passé.

Jason Turner

Formateur C++, Conférencier, Auteur, YouTuber

Je suis très heureux de constater que les versions des cinq dernières années sont les plus utilisées. De même, voir les versions antérieures à C++11 passer sous la barre des 10 % d'utilisation est une bonne nouvelle. Encore quelques années et nous pourrons arrêter de les inclure dans ce type d'enquêtes !

Titus Winters

Principal Engineer chez Google

Migration vers de nouvelles normes C++

Gardez en tête que beaucoup de développeurs utilisent des normes C++ différentes. Des enquêtes comme celle-ci nous rappellent la nécessité d'écrire du code qui fonctionne partout, pas seulement pour la dernière norme.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Je trouve cela vraiment surprenant, car je ne vois pas encore beaucoup d'entreprises demander de formation à C++20. Beaucoup de gens s'estiment heureux de passer à C++17.

Jason Turner

Formateur C++, Conférencier, Auteur, YouTuber

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

Je pense que la fonctionnalité [Modules] a encore besoin d'être développée, mais j'attends que l'on me prouve que j'ai tort.

Guy Davidson

Head of Engineering Practice, Creative Assembly

J'espère que les outils vont évoluer afin que l'utilisation de Modules soit facilitée au cours des 12 prochains mois !

Jason Turner

Formateur C++, Conférencier, Auteur, YouTuber

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

JetBrains propose une gamme d'IDE C++ pour vous aider à éviter les pièges et les tracas souvent associés au codage en C++ : CLion pour le développement multiplateforme et embarqué, ReSharper C++ pour les utilisateurs de Visual Studio, et Rider pour les développeurs de jeux Unreal Engine et C++.

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

Les ingénieurs préfèrent de loin écrire du code plutôt que des tests, et le temps passé à écrire des tests l'emporte sur tout autre avantage concret sur le long terme.

Guy Davidson

Head of Engineering Practice, Creative Assembly

La statistique selon laquelle un quart des développeurs n'écrivent pas de tests unitaires me fait froid dans le dos. Peu m'importe comment vous les exprimez ou le framework que vous utilisez, mais nous avons tous besoin d'écrire des tests.

Titus Winters

Principal Engineer chez Google

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

Cela traduit la situation actuelle concernant l'empaquetage du code C++ pour une consommation par des tiers. J'attends avec impatience que ce problème soit résolu, mais je ne suis pas optimiste à ce sujet.

Guy Davidson

Head of Engineering Practice, Creative Assembly

L'état de la gestion des dépendances et des paquets m'attriste. Les builds reproductibles et les chaînes de dépendances claires apportent une valeur énorme et largement sous-estimée. « Ça fonctionne d'une manière ou d'une autre » est trop souvent la devise dans ce domaine.

Titus Winters

Principal Engineer chez Google

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

Selon moi, de nombreux ingénieurs C++ manifestent un syndrome de Stockholm envers CMake. Il est devenu le standard par défaut, pour le meilleur et pour le pire, comme le démontre la nette avance qu'il a encore sur ses concurrents.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Quels compilateurs utilisez-vous régulièrement ?

Dans CLion, vous pouvez utiliser les compilateurs basés sur GCC, Clang, MSVC et IAR. Pour les cas rares ou personnalisés, une fonctionnalité de compilateur personnalisé vous permet d'utiliser n'importe quel compilateur arbitraire dans CLion.

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

Python est omniprésent comme langage de programmation pour l'intelligence artificielle et le machine learning, donc pas de surprise ici. L'existence de bibliothèques de qualité comme numpy et pandas en fait un choix évident. Peut-être ont-elles besoin d'équivalents dans la bibliothèque standard, ou peut-être devons-nous régler les problèmes d'empaquetage.

Guy Davidson

Head of Engineering Practice, Creative Assembly

Parmi les outils suivants, quels sont ceux que vous ou votre équipe utilisez pour la mise en application des directives ou pour d'autres analyses ou aspects de qualité de code ?

Comme seules 30 % de personnes évitent l'analyse statique, je suis raisonnablement assuré que le code open source va gagner en fiabilité et en sécurité.

Guy Davidson

Head of Engineering Practice, Creative Assembly

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

Dans ce cas, ce qui est petit est mieux. J'aimerais voir comment les en-têtes précompilés, les modules et les builds Unity vont interagir l'année prochaine.

Guy Davidson

Head of Engineering Practice, Creative Assembly

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.