CppCon : Bjarne Stroustrup annonce le projet C++ Core Guidelines
Pour aider les développeurs à utiliser le C++ moderne de façon plus effective

Le , par Stéphane le calme

9PARTAGES

8  0 
Durant la conférence annuelle de la communauté C++ CppCon dont la session 2015 se tient à Bellevue (Washington, USA), le professeur de sciences informatiques danois Bjarne Stroustrup a annoncé le début d’un nouveau projet open source sur GitHub qui ambitionne d’aider les développeurs à utiliser de façon plus effective le C++ moderne. Par « C++ moderne », les auteurs entendent C++11 et C++14 (et bientôt C++17).

C++ Core Guidelines, le projet en question, a pour auteurs initiaux Bjarne Stroustrup et Herb Sutter, un expert reconnu du langage C++ qui n’en est d’ailleurs pas à son premier ouvrage. Des experts issus d’entreprises et organisations comme CERN, Microsoft, Morgan Stanley et bien d’autres ont également apporté leurs contributions. Le projet n’en est qu’à l’état « 0.6 » et les contributions sont toujours bienvenues car, comme le souligne Stroustrup, « nous avons besoin d’aide ».

Le danois a avancé que « les lignes directrices sont axées sur les questions des problèmes relativement de haut niveau comme les interfaces, la gestion des ressources, la gestion de la mémoire et la concurrence. Ces règles s’appliquent à l’architecture de l’application mais également à la conception de la bibliothèque. Suivre ces règles vous permettra d’écrire des programmes C++ qui n’ont statiquement pas d’erreurs de type, n’ont pas de fuites de ressources et attrapent plus d’erreurs logiques de programmation que ce qui se fait actuellement. Vous pouvez le faire sans une perte de performance et sans limiter la puissance expressive du C++. Cela soutient la thèse générale selon laquelle la récupération de mémoire n’est ni nécessaire ni suffisante pour assurer la qualité d’un logiciel. Notre C++ Core Guidelines rend un tel code plus facile à écrire que celui des anciens modèles de C++ et la sécurité pourra être validée par des outils qui devraient bientôt être disponible en open source ».

Les auteurs précisent qu’ils sont moins concernés par les problèmes qui sont relativement de bas niveau comme les conventions de nommage et les styles d’indentation.

Ils préviennent également que « vous pourrez trouver quelques-unes des règles contraires à vos attentes ou même contraires à votre expérience. Si nous ne vous avions pas proposé de modifier votre style de développement d’aucune façon, alors nous aurions échoué ! S’il vous plaît essayez de vérifier ou d’infirmer ces règles ! En fait, nous aimerions avoir un retour sur certaines de nos règles avec des mesures ou de meilleures exemples ».

« Vous trouverez quelques-unes de ces règles évidentes voire allant de soi. S’il vous plaît, souvenez-vous que l’un des objectifs d’un guide est d’aider quelqu’un qui a moins d’expérience, qui vient d’un background différent ou qui a utilisé un autre langage ».

Même si le dépôt GitHub n’a pas été officiellement annoncé, il est déjà disponible et ce depuis la semaine dernière.

dépôt GitHub

Source : CppCon

Et vous ?

Qu'en pensez-vous ?

Forum C++

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Arzar
Membre émérite https://www.developpez.com
Le 22/09/2015 à 21:44
Pour info ces guidelines font souvent référence à des constructions qui ne sont pas dans le langage ou la STL (array_view, string_view, not_null<> etc), mais qui sont disponible dans la GSL (guideline support library), dont le dépot github est :
https://github.com/Microsoft/GSL
Avatar de air-dex
Membre émérite https://www.developpez.com
Le 23/09/2015 à 2:32
Une très bonne initiative.

Citation Envoyé par Stéphane le calme Voir le message
Les auteurs précisent qu’ils sont moins concernés par les problèmes qui sont relativement de bas niveau comme les conventions de nommage et les styles d’indentation.
Les tailles d'indentations sont pourtant un vrai problème. Les tailles d'indentation sont comme les bises quand on se salue, où personne n'a jamais le même nombre. Perso je milite pour le '\t' comme unité universelle d'indentation. Plus de problèmes de 2, 4, 8 ou un autre nombre d'espaces, ce serait un unique '\t' pour tout le monde quelque soit le langage.
Avatar de Luc Hermitte
Expert éminent sénior https://www.developpez.com
Le 23/09/2015 à 11:36
\t n'est pas portable aux forums, imprimantes, console (grep cout *.cpp), etc. A moins d'avoir un écran très large et de ne pas se soucier du fait que nos yeux+cerveau gèrent mieux les textes qui sont sur des lignes courtes.

De plus, il faut distinguer indentation et alignement. Et \t ne permet pas d'aider à aligner. Seuls les espaces peuvent le faire. Dans le meilleur des mondes, il faut les deux pour ces deux problématiques, et un éditeur qui sache gérer ça (je sais qu'il y a ce qu'il faut dans emacs pour ça, mais je n'ai jamais vu les autres outils se vanter de savoir résoudre ce problème -- je n'exclus pas qu'il puisse en exister)

Mais bref, OSEF royalement de ça. Ce qui compte c'est un style unis dans un projet. Il y a bien d'autres problématiques bien plus critiques en C++.

-------------

Sinon, c'est une bonne initiative, bien qu'il y ait des trucs que je trouve bizarres dans l'histoire. Typiquement l'utilisation du non_nullable (ou un nom comme ça), alors qu'une référence (const ou non) fait très bien l'affaire.
Avatar de prgasp77
Membre émérite https://www.developpez.com
Le 23/09/2015 à 11:38
A étudier avec le plus grand soin. Merci pour l'info.
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 23/09/2015 à 16:35
Citation Envoyé par air-dex Voir le message
Perso je milite pour le '\t' comme unité universelle d'indentation.
Sans que ça tourne au débat tabulation vs espaces, la tabulation n'a pas une distance standard et ça devient vraiment horrible à gérer lorsque tu ouvres ton projet avec un autre éditeur de texte. Je me souviens d'un projet où j'avais utilisé des indentations avec Eclipse, l'enseignant a ouvert le document sous gedit et voyait le code apparaitre 3km à droite de l'écran. Depuis c'est simple, rien ne m'empêche d'utiliser la touche tabulation, je fais juste en sorte de configurer l'IDE pour que cela génère des espaces.
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 23/09/2015 à 19:03
Voilà qui me donne une base pour le jour où je souhaiterai revenir à C++.
Avatar de born to code
Nouveau membre du Club https://www.developpez.com
Le 24/09/2015 à 11:21
Bonjour, je m'appelle benjamin e'tudiant a l'ecole superieure d'informatique salama(Lubumbashi-RDC), j'ai un faible pour le c++ ... Pourriez-vous me donner une liste detaille'e d'ouvrages qui m'aideront a devenir un expert confirme' senior en c++ ? Pour l'instant, j'ai lu seulement le livre de Mathieu Nebra(programmez avec le langage c++) et y a-t-il un risque de ne connaitre qu'un seul langage( je vous prie d'etre franc avec moi)? Mais aussi dans quels domaines un programmeur doit-il exceller?
Avatar de dragonjoker59
Expert éminent sénior https://www.developpez.com
Le 24/09/2015 à 12:01
Citation Envoyé par born to code Voir le message
... Pourriez-vous me donner une liste detaille'e d'ouvrages qui m'aideront a devenir un expert confirme' senior en c++ ? ...
J'adore cette phrase. Expert confirmé senior... C'est pas le temps qui te permet de te définir comme tel? J'ai du mal à croire qu'un ou plusieurs bouquins puissent t'amener là...
Avatar de oodini
Membre émérite https://www.developpez.com
Le 24/09/2015 à 12:30
Citation Envoyé par dragonjoker59 Voir le message
J'adore cette phrase. Expert confirmé senior... C'est pas le temps qui te permet de te définir comme tel? J'ai du mal à croire qu'un ou plusieurs bouquins puissent t'amener là...
Lire du Sutter, du Meyers, du Josuttis, ou de l'Alexandrescu, ça peut aider, tout de même.
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 24/09/2015 à 13:37
Citation Envoyé par born to code Voir le message
Pourriez-vous me donner une liste detaille'e d'ouvrages qui m'aideront a devenir un expert confirme' senior en c++ ?
Citation Envoyé par oodini Voir le message
Lire du Sutter, du Meyers, du Josuttis, ou de l'Alexandrescu, ça peut aider, tout de même.
Pas beaucoup :
- expert : question de pratique, la lecture est nécessaire mais pas suffisante pour devenir expert
- confirmé : question de reconnaissance, on peut dire ce qu'on veut mais ce sont les autres qui confirme qu'on a le niveau
- senior : question d'âge, mais si tu souhaites déjà avoir les cheveux blancs tu peux demander une coloration chez le coiffeur

Benjamin, y'a pas de secret. Tu pourras lire tous les livres du monde, ça ne te donnera ni expertise, ni certification. Documente-toi pour savoir, expérimente pour savoir faire, et bosse pour aligner tes compétences sur les besoins du marché, avec l'ouverture d'esprit suffisante pour apprendre de nouvelles choses selon les besoins. L'expertise viendra avec ta motivation à faire toujours mieux, et la confirmation avec la reconnaissance des gens pour ton travail. Y'a pas de raccourci, et ceux qui te diront le contraire sont soit des gens qui ont quelque chose à te vendre, soit des gens qui sont eux-même loin d'être expert, confirmé et senior. Une expertise ça se construit et ça se renouvelle chaque jour.
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web