Outils d'utilisateurs

Outils du Site


ca_ne_sert_a_rien_de_se_prendre_la_tete_avec_les_nouvelles_normes_du_c

Ç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 :-).

ca_ne_sert_a_rien_de_se_prendre_la_tete_avec_les_nouvelles_normes_du_c.txt · Dernière modification: 2015/09/12 20:13 par 90.54.152.136