Blog 2 min de lecture

Les adeptes du C++ orthodoxe : minorité ou majorité silencieuse ?

Share this article
Les adeptes du C++ orthodoxe : minorité ou majorité silencieuse ?

Blogueurs, influenceurs et membres du comité de normalisation C++ prônent activement l'usage du C++ moderne. À travers articles, tutoriels et réseaux sociaux, ils mettent en lumière les atouts et les fonctionnalités innovantes des dernières normes C++, dans le but d'informer et d'inspirer la communauté des développeurs. Leurs efforts conjugués visent à encourager l'adoption du C++ moderne, en tirant parti de ses capacités avancées pour écrire un code plus efficace, plus maintenable et plus robuste.

Cependant, tous les développeurs C++ ne sont pas favorables à l'adoption du C++ moderne, pour diverses raisons. C'est ainsi qu'est apparue l'approche du C++ orthodoxe, qui préconise l'utilisation d'un sous-ensemble minimal du C++.

Le C++ orthodoxe, tel que défini par ses adeptes

Le C++ orthodoxe (parfois désigné sous le nom de C+) est un sous-ensemble minimal du C++ qui améliore le C, tout en évitant tout ce que le C++ moderne a de superflu. C'est l'exact opposé de ce que le C++ moderne est censé être.

Pour résumer, les adeptes du C++ orthodoxe sont les partisans du C++ présenté par Bjarne Stroustrup il y a quarante ans :

https://www.youtube.com/embed/69edOm889V4

Voici quelques exemples de projets relevant de l'approche C++ orthodoxe :

Règles privilégiées du C++ orthodoxe :

  • Un C++ proche du C est un bon point de départ. Si le code ne requiert pas davantage de complexité, n'y ajoutez pas de complexité C++ inutile. En règle générale, le code devrait rester lisible par quiconque maîtrise le langage C.
  • Ne faites pas cela: la fin du « raisonnement de conception » en C++ orthodoxe devrait intervenir juste après « Très simple, et ça fonctionne. EOF».
  • N'utilisez pas d'exceptions.
  • N'utilisez pas le RTTI.
  • N'utilisez pas les en-têtes C++ qui enveloppent ceux de la bibliothèque C (<cstdio><cmath>, etc.), utilisez plutôt ceux du C (<stdio.h><math.h>, etc.)
  • N'utilisez pas les flux (<iostream><stringstream>, etc.), utilisez plutôt les fonctions de type printf.
  • N'utilisez rien de la STL qui alloue de la mémoire.
  • N'abusez pas de la métaprogrammation à des fins purement académiques. Utilisez-la avec modération, uniquement là où elle est nécessaire et là où elle réduit la complexité du code.

Comme on le voit, les partisans du C++ orthodoxe préconisent l'usage d'un sous-ensemble minimal du C++, mais les ressources en ligne laissent penser qu'ils sont minoritaires. De fait, la majorité se prononce en faveur du C++ moderne. Pourtant, à l'échelle de la communauté C++ dans son ensemble, la question reste posée : la plupart des développeurs utilisent-ils activement les fonctionnalités modernes, ou s'en tiennent-ils essentiellement aux concepts de base ?

Il est impossible d'apporter une réponse précise à cette question, mais il est clair que de nombreux projets restent fidèles à l'approche orthodoxe en raison de leur base de code héritée. Cela empêche souvent les développeurs de passer au C++ moderne, et entretient la prédominance des concepts C++ fondamentaux.

Share this article