Ça ne sert à rien de se prendre la tête avec les nouvelles normes du C++ !

Cet article a été transféré sur mon wiki, il ne sera pas mis à jour sur ce blog. Je recommande de lire la nouvelle version sur la page suivante : Ça ne sert à rien de se prendre la tête avec les nouvelles normes du C++ !

« Ça ne sert à rien de se prendre la tête avec les nouvelles normes du C++ ! Il est plus simple d’attendre que les pratiques soient ancrées dans les habitudes pour les utiliser. »

Cette remarque n’est évidemment pas de moi, mais on me l’a déjà sortie plusieurs fois. L’idée, légitime, est de savoir pourquoi suivre l’actualité du C++ alors que (en tant qu’utilisateur du langage) nous n’aurons pas à utiliser des nouvelles fonctionnalités dans nos codes actuels avant plusieurs années. Ou pire, ces fonctionnalités seront abandonnées ou modifiées peu de temps après. On ne va quand même pas s’embêter à réécrire un code qui fonctionne encore, non ?

La raison est que ce travail de veille technologique sur le C++ est nécessaire. Je classerais les membres de la communauté C++ en 3 groupes :

  • Ceux qui travaillent sur l’amélioration du langage et de son écosystème ;
  • Ceux qui utilisent le C++ dans des applications finales ;
  • Ceux qui tentent de vulgariser les propos des premiers pour les rendre compréhensibles pour les seconds.

Le premier groupe est assez vaste et n’est pas composé uniquement des développeurs C++. On y trouve naturellement le comité de normalisation de C++ et ses study groups, tous ceux qui participent aux discussions sur la normalisation, ceux qui travaillent sur les bibliothèques (Boost, Qt, etc), ceux qui travaillent sur les compilateurs et les outils de développement en général, les universitaires, etc. Hors communauté C++, on peut citer les « linguistes » (qui étudient la sémantique des langages de programmation), ceux qui étudient les méthodes de conception et le cycle de vie des applications. Même parfois des développeurs qui utilisent d’autres langages (mais bon, pas les devs Java, faut pas pousser…)

Le deuxième groupe correspond aux utilisateurs finaux, qui utilisent le C++ (comme seul langage ou en complément d’autres langages) et les bibliothèques C++ pour le développement d’applications pour des clients ou pour leurs propres besoins. Ils recherchent avant tout l’efficacité (pour la rentabilité économique, pour ne pas se prendre la tête, ou simplement par ignorance).

L’échange entre ces deux premiers groupes est parfois difficile. Les premiers ont des préoccupations parfois très théoriques (et des réponses également très théorique) et cela nécessite un peu de travail pour comprendre. C’est à ce niveau qu’intervient le troisième groupe. Le but est d’assimiler (en partie) des discussions, études, articles, blogs, etc. des premiers pour restituer les conseils sous forme pratique, directement applicables par le deuxième groupe. Ce travail est nécessaire pour faire en sorte que le C++ soit un langage simple d’utilisation (le C++ est un langage très permissif, la seule chose qui empêche de faire n’importe quoi sont les bonnes pratiques de programmation) et qu’il soit utilisé par le plus grand nombre.

Bien sûr, la distinction n’est pas aussi forte en pratique, il existe des personnes du premier groupe qui sont aussi des utilisateurs finaux et il existe des utilisateurs finaux qui s’intéressent à l’évolution du langage.

Je me place clairement dans ce troisième groupe. Je n’ai pas la prétention d’avoir les compétences pour comprendre tous les tenants et aboutissants des proposals sur la norme ou proposer de bonnes pratiques. Ma compétence correspond surtout à plagier en toute impunité les propos des autres et tenter de les vulgariser ;-).

J’espère réussir un peu à rendre plus accessible les évolutions du langage aux lecteurs de ce blog (ou des précédents). En tout cas, mes bonnes pratiques ont évolué ces dernières années, ce travail est au moins profitable à une personne :-).

Advertisements

Un commentaire sur « Ça ne sert à rien de se prendre la tête avec les nouvelles normes du C++ ! »

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s