Le C++ en 2026 - FAQ #2
Dans ce nouvel épisode du podcast Human Coders, Camille et Matthieu reçoivent Arnaud Becheler et Nicolas Méo, deux développeurs et formateurs C++, pour faire le point sur ce que signifie coder en C++ aujourd’hui.
Ensemble, ils reviennent sur l’évolution du langage (tooling, compilation, bibliothèques modernes), ses cas d’usage actuels (industrie, performance, systèmes critiques), les différences avec Rust et Go, et les bonnes pratiques côté tests, migration et conception.
Ils partagent aussi leur expérience de formation, leur vision de l’avenir de C++, et discutent de l’impact de l'IA (et du développement “agentique”) dans leurs projets.
••TIMECODES ••
00:00:00 Introduction
00:02:03 C’est quoi faire du C++ aujourd’hui ?
00:09:34 Quels sont les cas d’usage de C++ ?
00:13:06 Pourquoi c’est de plus en plus facile de coder en C++ ?
00:18:35 Quelles sont les différences par rapport à Rust ou Go ?
00:31:18 Est-ce que c’est vraiment agréable de faire du C++ ?
00:34:46 Est-ce facile de migrer un projet C++ legacy sur les dernières versions du langage et avec les derniers outils ?
00:38:59 Y a-t-il des spécificités dans les tests avec C++ ?
00:44:14 Quelles sont les formations que vous donnez ?
00:49:29 Quel avenir pour le langage C++ ?
00:53:26 Est-ce que le développement avec des IA agentiques fonctionne bien avec C++ ?
01:01:44 Comment rencontrer d’autres développeurs et développeuses C++ ?
•• NOS FORMATIONS••
https://www.humancoders.com/formations
•• GUESTS ••
Nicolas Méo, Formateur Tests avec C++ pour Human Coders
https://www.linkedin.com/in/meonicolas/
https://www.humancoders.com/formateurs/nicolas-meo
Arnaud Becheler, Développeur C++ depuis 10 ans et Formateur C++ pour Human Coders
https://fr.linkedin.com/in/arnaud-becheler-phd-246029172
https://www.humancoders.com/formateurs/arnaud-becheler
Matthieu Segret, directeur associé de Human Coders
https://www.linkedin.com/in/matthieusegret/
https://x.com/matthieusegret
Camille Roux, directeur associé de Human Coders
https://www.linkedin.com/in/camilleroux/
https://x.com/CamilleRoux
https://twitter.com/camillerouxart
Sommaire de l'épisode
Transcription de l'épisode
Matthieu Segret : Bonjour à toutes et à tous ! Vous êtes bien sur le podcast de Human Coders. Je suis comme d'habitude avec Camille Roux et nous recevons aujourd'hui Arnaud Becheler et Nicolas Méo. Ils sont tous les deux développeurs C++ et formateurs pour Human Coders. Ils interviennent sur différentes formations C++, de l'initiation aux tests, en passant par la transition vers le C++ moderne. On voulait parler avec eux de ce langage que l'on connaît tous de nom, mais qu'on ne pratique pas forcément au quotidien. Arnaud, est-ce que tu peux te présenter ?
Arnaud Becheler : Je suis développeur C++. J'ai commencé le C++ pendant ma thèse pour faire des modèles de simulation. J'ai continué avec un post-doctorat et un premier travail dans l'industrie aux États-Unis. Je suis revenu il y a deux ans en France. C'est là que j'ai commencé ma collaboration avec Human Coders. En parallèle, je travaille chez Kickmaker, une boîte qui aide les clients à construire rapidement des prototypes en réunissant des mécaniciens, des électriciens et des développeurs.
Matthieu Segret : Et toi Nicolas ?
Nicolas Méo : Je suis développeur C++ depuis bientôt dix ans. J'ai commencé très tôt, en troisième, avec le guide de Mathieu Nebra sur le Site du Zéro. J'ai débuté ma carrière dans le nucléaire, puis j'ai fait de la publicité programmatique. En ce moment, je suis en poste dans la medtech, dans le domaine de la robotique chirurgicale.
C’est quoi faire du C++ aujourd’hui ?
Matthieu Segret : Pour moi, c'est un langage que j'avais essayé en troisième pour faire des interfaces graphiques sous Windows, puis en école d'ingé pour faire un compilateur. J'en garde le souvenir d'un langage complexe. J'imagine que les choses ont bien changé. C'est quoi faire du C++ aujourd'hui ?
Arnaud Becheler : L'expérience est très différente aujourd'hui. Camille, tu as mentionné deux choses qui font écho : le premier contact avec les erreurs du compilateur et le tooling. Aujourd'hui, le tooling a beaucoup évolué. J'utilise généralement VS Code avec pas mal d'extensions. Ce qui était à l'origine des messages d'erreur agressifs devient une aide précieuse. Si ton programme compile sans erreur et que tu as utilisé des méthodes modernes, tu as de très bonnes chances de n'avoir aucun bug à l'exécution. C'est une sécurité qu'on ne retrouve pas en Python, par exemple.
Nicolas Méo : Le compilateur propose une double boucle de feedback. On compile très régulièrement pour attraper les problèmes en amont. La communauté continue de faire évoluer les compilateurs pour rendre les messages plus lisibles. On a aussi des outils comme Conan pour la gestion de paquets ou CMake pour la chaîne de compilation, ce qui simplifie énormément le travail au quotidien.
Matthieu Segret : J'ai été surpris de voir qu'il n'y a pas eu de gestionnaire de paquets pendant longtemps en C++. Est-ce qu'il y a un effet de rattrapage ?
Nicolas Méo : La gestion de paquets est un vrai sujet. Il y a eu une longue pause dans le comité C++ entre 1998 et 2011. C'est la communauté Boost qui a fait évoluer le langage pendant ce temps. Aujourd'hui, on converge vers des solutions comme Conan, mais intégrer un paquet peut encore être une petite bataille selon la gestion des dépendances.
Quels sont les cas d’usage de C++ ?
Matthieu Segret : Concrètement, quels sont les cas d'usage du C++ aujourd'hui ?
Arnaud Becheler : Les cas d'usage évoluent. Quand on choisit un langage, on regarde les contraintes. Le C++ est pertinent là où on veut beaucoup de sécurité à la compilation et de bonnes garanties de fonctionnement. Avec le C++ moderne et des outils comme constexpr, on peut passer beaucoup de calculs et d'évaluations à la compilation. L'exécution est de plus en plus rapide. On le retrouve dans le nucléaire, le militaire ou le médical, où il y a des normes de sécurité critiques.
Nicolas Méo : Il y a aussi l'aspect performance pure. Beaucoup d'industries choisissent le C++ pour cela : finance, trading, publicité programmatique, télécoms et réseaux. Quand on doit gérer des centaines de milliers de requêtes par seconde, le C++ est très prisé.
Pourquoi c’est de plus en plus facile de coder en C++ ?
Matthieu Segret : Arnaud, tu disais que c'est de plus en plus facile de coder en C++. Pourquoi ?
Arnaud Becheler : C'est un mélange entre le langage et le tooling. Pendant les formations, les stagiaires disent souvent en plaisantant : "Mais c'est du Python !". Plus la bibliothèque standard évolue, plus on a des outils qui permettent d'ajouter de la flexibilité, notamment sur la gestion des types.
Nicolas Méo : On arrive de manière beaucoup plus intuitive à faire des choses qui, avant, prenaient beaucoup de lignes. Depuis que le comité a repris de l'activité avec des releases denses, le langage est devenu beaucoup plus digeste.
Arnaud Becheler : Un exemple technique : en Python, on peut affecter n'importe quel type à une variable. En C++17, on a introduit std::variant. Cela permet de déclarer une variable qui peut être une string, un double ou un entier de manière "type-safe". On n'a plus besoin de faire des héritages de classes complexes pour mettre des éléments différents dans une liste.
Quelles sont les différences par rapport à Rust ou Go ?
Matthieu Segret : Qu'est-ce qui fait qu'on va utiliser C++ plutôt que Rust ou Go, qui ont des avantages similaires ?
Nicolas Méo : Il y a d'abord le code legacy. Des entreprises comme Airbus, Dassault ou EDF ont des bibliothèques éprouvées depuis des décennies. Ensuite, il y a les compétences internes. Une fois qu'on a une équipe C++, on capitalise dessus. Pour le Go, c'est différent car c'est un langage avec un "garbage collector", il se rapproche plus du Java ou du C#. Pour Rust, c'est un autre débat.
Arnaud Becheler : Le C++ demande un coût de mise en place important (tooling, environnement). Pour un prototype rapide, on fera souvent du Python. Mais une fois qu'on a une structure projet en place (CMake, tests, CI), ça devient confortable. Rust apporte une sécurité totale sur la mémoire avec le "borrow checker", mais c'est très contraignant au début.
Nicolas Méo : Rust souffre un peu de sa jeunesse. La courbe d'adoption est lente et on manque de profils seniors. L'interopérabilité pour appeler du C++ depuis Rust est possible mais complexe. Le C++ s'inspire de Rust et commence à implémenter ses bonnes pratiques. Je pense que les deux coexisteront.
Arnaud Becheler : C++ a aussi une avance sur la programmation générique (templates). Et surtout, C++ a su rester rétrocompatible pendant des décennies. J'aimerais voir comment Rust s'adaptera sur le long terme.
Est-ce que c’est vraiment agréable de faire du C++ ?
Camille Roux : Est-ce que c'est agréable de coder en C++ au quotidien par rapport à des langages plus récents ?
Nicolas Méo : Ce qui me plaît, c'est de comprendre tout ce qui se passe à bas niveau. Il n'y a pas de boîte noire. On maîtrise l'allocation mémoire de bout en bout. Descendre dans les couches de l'OS pour explorer des "dumps" avec Valgrind, c'est passionnant.
Arnaud Becheler : Ça dépend de l'échelle temporelle. Pour un petit script de visualisation de données, faire du C++ est désagréable, on préférera Python ou R. Mais sur le long terme, pour un gros projet, le C++ donne une impression de solidité. On écrit des choses "dans le marbre". On évite beaucoup d'erreurs au "runtime" qu'on aurait en Python.
Migration et legacy
Matthieu Segret : Est-ce que c'est compliqué de migrer un projet ancien vers les dernières versions du langage ?
Nicolas Méo : Ça peut être douloureux selon la dette technique et le nombre de dépendances. Le point de douleur, c'est souvent l'intégralité des dépendances qu'il faut parfois recompiler. Mais si on le fait régulièrement, le coût reste raisonnable.
Arnaud Becheler : Le comité fait un gros effort pour ne pas avoir de changements cassants. En général, passer d'une version à une autre apporte surtout des optimisations et de nouvelles fonctionnalités sans tout casser. On peut adopter les nouvelles "features" graduellement.
Les tests en C++
Matthieu Segret : Qu'en est-il des tests ? Y a-t-il des spécificités ?
Nicolas Méo : Le C++ a eu un peu de retard sur le test unitaire. Le "mocking" est plus complexe car c'est un langage compilé. Il faut penser au couplage via des abstractions dès le départ. On utilise principalement Google Test (GTest) et Google Mock.
Arnaud Becheler : Il faut s'y prendre tôt. L'architecture doit être pensée pour être testable. J'utilise beaucoup des "scripts d'exemple" pour vérifier comment manipuler une classe. Si je dois inclure la moitié du projet pour tester une fonction, c'est que mon couplage est trop fort.
Les formations Human Coders
Camille Roux : Vous pouvez nous parler des formations que vous donnez chez Human Coders ?
Nicolas Méo : Je donne une formation sur les tests avec C++. On rentre dans le détail de Google Test et Google Mock : comment designer du code testable, comment écrire des mocks et des comportements avancés.
Arnaud Becheler : Mes formations portent sur le C++ moderne et la métaprogrammation. L'idée est d'aider les développeurs qui sont habitués à l'héritage de classes classique à découvrir le polymorphisme statique et les templates. On voit comment utiliser les outils récents pour rendre le code plus efficace et lisible.
Quel avenir pour le langage ?
Matthieu Segret : Quel est l'avenir du C++ ? Quelles sont les prochaines fonctionnalités attendues ?
Arnaud Becheler : La réflexion arrive en C++26. C'est la capacité du langage à comprendre comment il a été écrit. On attend aussi plus d'uniformisation du tooling.
Nicolas Méo : J'espère une standardisation de la gestion de paquets, même si c'est extrêmement complexe à cause de l'histoire du langage.
L'impact de l'IA
Camille Roux : Comment gérez-vous l'IA dans le développement C++ ?
Nicolas Méo : Dans les gros projets, le challenge c'est l'alignement et les hallucinations. Il faut donner énormément de contexte à l'IA (coding practices, version, script de compilation). Je demande souvent à l'IA de compiler régulièrement pour qu'elle se corrige elle-même.
Arnaud Becheler : L'IA est très forte pour itérer sur les erreurs du compilateur. Par contre, pour l'architecture, elle a tendance à proposer de l'orienté objet classique. Il faut savoir l'aiguiller vers des solutions plus modernes et efficaces. Notre rôle de développeur se déplace de plus en plus vers l'architecture et la conception.
La communauté
Camille Roux : Où peut-on rencontrer d'autres développeurs C++ ?
Arnaud Becheler : Il y a la CPPCon aux États-Unis, et des conférences similaires en Europe. La communauté Boost est très active sur Slack. En France, il y a des meetups locaux, comme à Paris ou Lyon.
Nicolas Méo : À Montpellier aussi, il y a un meetup C++. C'est le meilleur moyen de rencontrer des passionnés.
Matthieu Segret : Merci à tous les deux ! C'était passionnant. On espère que nos auditeurs auront appris beaucoup de choses sur l'état actuel du C++.
Arnaud et Nicolas : Merci, à bientôt !
Camille Roux : Au revoir et à bientôt pour un prochain podcast !
Retrouvez toutes nos formations sur le catalogue Human Coders et suivez l'actualité de la tech sur Human Coders News.
Informations sur l'épisode
- Date de publication
- Saison
- 2
- Épisode
- 23
- Durée
- 1:04:23
- Formateur·rice·s
- Série
- Human Coders Podcast