Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez C++ Discussion :

FAQ C++03 et FAQ C++11


Sujet :

Contribuez C++

  1. #1
    Membre expert
    FAQ C++03 et FAQ C++11
    Bonjour à tous,

    La rénovation de la FAQ approche, et de plus en plus de propositions concrètes pour la faire évoluer vers le C++11.

    J'ai une question à vous poser car je n'arrive pas à trancher seul : est-il utile de conserver la FAQ C++ dans sa version 03 ?

    Doit-on faire une FAQ C++11 en parallèle et mettre côte à côte une FAQ C++03 ?

    Ou alors mettre un lien de téléchargement pour obtenir la version hors ligne de la FAQ C++03, et mettre une seule FAQ C++ entièrement dédiée à la version la plus récente ?

    Il est également possible de conserver la FAQ C++03 nommément, et de faire que la FAQ C++ soit la version la plus récente (et ainsi de suite quand on changera de version, bien que cela occasionnera un nombre de doublons assez volumineux qui pourraient poser problème).

    Je comptais initialement faire évoluer la FAQ C++ en douceur en mixant les deux à la cppreference, mais la dernière proposition, celle qui nécessite de passer tous les NULL à nullptr, apparait comme étant à la fois nécessaire et incompatible avec l'idée initiale.

    Sur ce, j'aimerais connaître vos avis, car je ne suis pas en position de savoir si c'est utile, si des devs auront dans quelques années encore besoin de documentation et d'aide sur le C++03 (ce que je peux concevoir par exemple dans la maintenance future d'un système en C++03).

  2. #2
    Membre émérite
    Citation Envoyé par germinolegrand Voir le message
    Je comptais initialement faire évoluer la FAQ C++ en douceur en mixant les deux à la cppreference, mais la dernière proposition, celle qui nécessite de passer tous les NULL à nullptr, apparait comme étant à la fois nécessaire et incompatible avec l'idée initiale.
    Je pense qu'il est important de garder un certain parallélisme dans un premier temps, histoire de prendre conscience de ce qui a évolué : ce qui est obsolète, ce qui est nouveau, etc. Et de rajouter des items spécifiques à C++11 (en les insérant, si c'est pertinent, dans des rubriques existantes).

    Je ferais donc une 2ème FAQ, mais en reprenant chaque item de la FAQ 03. Chaque item aura alors 3 statuts : obsolète, mis à jour, et nouveau.
    Le "mis à jour" ne devra toutefois pas être utilisé pour des modifications mineures par rapport au sujet traité.

  3. #3
    Expert éminent sénior
    A cause de vieux projets, je pense que la 03 est toujours pertinente.
    Je dirais de rajouter un tag up-to-03, et un tag from-11-and-beyond (pareil pour 14, ...) pour les règles qui ne sont pas universelles.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Rédacteur/Modérateur

    Je pense qu'il ne vaut mieux pas garder deux versions parallèles de la FAQ, c'est trop de boulot, et les utilisateurs peuvent s'y perdre. Je pense qu'il vaut mieux rédiger les réponses avec un style C++11, mais signaler les divergences avec le C++03 quand ça concerne le sujet de la question.

    Par exemple, dans un article sur shared_ptr, j'utiliserais nullptr sans état d'âme ni explication. Mais dans un article sur nullptr, là je dirais depuis quand il existe et les alternatives précédentes. Et sur des questions avec des réponses trop divergentes, dupliquer la question avec un tag C++11.

    Et pour finaliser le tout, il faudrait quelques questions sur C++03, C++11, voire des question genre : "mon compilateur ne comprend pas nullptr ? => Il n'est pas en C++11".
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Membre du Club
    Par exemple
    Un peu dans le style de http://www.cplusplus.com/reference/array/

    C'est simple efficace et lisible.

  6. #6
    Rédacteur

    Je suis contre la disparition de la FAQ C++03.

    En effet, ya encore pas mal de boite qui utilisent du C++03, ou on forme des gens au C++03 et ou on utilise des compilateurs C++03. Tout ca pour dire, à mon sens qu'il reste pertinent d'avoir une FAQ C++03 propre.

    Je suis pour la création :

    • d'une FAQ C++11 qui répond au problématique propre du C++11 sans pour autant reprendre le contenu de la FAQ existante
    • D'un système de tag qui permettrait de dire que certaines entrées de la FAQ C++03 sont obsolètes en C++11



    Pour ceux qui avance que les doc mixent C++03 et C++11, pensez que c'est une doc. Dans la STL, il y a principalement eu des ajouts [1] (a de l'existant ou sur de choses entièrement neuves) et c'est facilement listable.



    Avec une FAQ, des choses qu'on prônait auparavant en C++03 ne sont plus bonnes en C++11 et tout mélanger ne semble pas être une bonne idée car on va se perdre et les lecteurs avec...


    --------
    [1] : Le seul retrait majeur que je vois c'est auto_ptr mais on s'en fiche, personne ne l'utilisait.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  7. #7
    Expert éminent sénior
    Salut,

    Je crois aussi que ce serait une énorme erreur d'abandonner la faq 03 parce que :

    1 - à part NULL qui a été remplacé (mais qui est toujours compris), using qui a dont l'utilisation a évolué (mais dont l'ancienne utilisation est toujours d'actualité), auto qui a completement changé de sens (mais qui n'apparaissait pas dans la faq) et auto_ptr (que personne n'utilisait), la grosse majorité des éléments abordés dans la faq méritent sans doute un léger dépoussiérage, mais reste tout à fait vrai.

    2 - Quand on voit le temps qu'il a fallu pour que les questions concernant VC6 tarissent, quand on voit le nombre de question relatives à BCB6 (ou à devC++) qui passent encore de temps en temps, quand on voit même le nombre de questions qui dénotent une optique d'apprentissage archaïque, on ne peut que se dire que C++03 a encore de beaux jours devant lui (tout en le regrettant )

    On peut très certainement avoir une (ou plusieurs!) page(s) dédiée(s) à toutes les Q/R spécifiques à C++3 (shared/unique_ptr, move sémantic, nullptr, static_assert, type_traits, function...)

    On peut attirer l'attention du lecteur, de différentes manières (par exemple, en insistant sur le fait que "c'est à l'ancienne sauce" chaque fois que nécessaire) sur le fait que ces pratiques commencent à dater.

    On ne devrait pas hésiter à rajouter des liens du genre "attention, ceci est valable pour C++03, mais nous vous conseillons, si vous en avez la possibilité d'utiliser la solution en C++11" (avec le lien vers la dite solution).

    Mais retirer les solutions propres à C++03... noon... Pas tout de suite en tout cas

    Peut être d'ici 2020, si les dieux nous prêtent vie .

    Mais le pire, c'est qu'on commencera à ce moment là à se poser les même question au sujet des entrées spécifiques à C++11
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Rédacteur/Modérateur

    Je crois qu'on est tous d'accord pour dire que les points liés à C++03 ne doivent pas disparaître. Là où on est moins d'accord, c'est comment le faire :
    - Deux versions de la FAQ, une par version du langage
    - Une seule version de la FAQ, qui agrège des questions génériques, et des questions plus liées à une version.

    Je suis plus pour la seconde solution. J'ai l'impression que oodini est plus pour la première. Pour les autres, je ne sais pas trop en lisant leurs messages...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  9. #9
    Expert éminent sénior
    Seconde version pour ma part. (ou un système de tags... c'est bien les tags)

    Sinon, vous aviez-vu : http://isocpp.org/wiki/faq ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    Membre expert
    Je ne vous cache pas que faire 2 FAQ simplifie amplement le boulot (même en apportant des modification à l'ancienne), car les technologies utilisées en interne ne sont pas les mêmes pour les anciennes FAQ (XML/wiki) et les nouvelles (BBcode), ce qui implique la migration et la réécriture a la mano de toutes les entrées. Si toutefois il faut le faire ça sera fait.

    Pour des tags, les nouvelles FAQ en ont.

    Je n'avais pas vu la nouvelle FAQ d'isocpp, faudra que j'explore ^^.

  11. #11
    Expert éminent sénior
    Citation Envoyé par germinolegrand Voir le message
    Je ne vous cache pas que faire 2 FAQ simplifie amplement le boulot (même en apportant des modification à l'ancienne), car les technologies utilisées en interne ne sont pas les mêmes pour les anciennes FAQ (XML/wiki) et les nouvelles (BBcode), ce qui implique la migration et la réécriture a la mano de toutes les entrées. Si toutefois il faut le faire ça sera fait.
    Tout dépend de ce que tu entends par "faire 2 FAQ"...

    Si c'est faire deux FAQ qui reprennent les même question, à quelques détails près, ca te fera toujours dupliquer les questions et les réponses...

    Et tu sais tout le bien que je pense de la duplication de code! ici, c'est pareil

    Si tu veux dire "une FAQ spécifique C++11 et un FAQ générale, qui pointe régulièrement vers la FAQ C++11 pour "pointer les deux aspects", alors, nous sommes bien d'accord.

    Selon moi, cette deuxième solution me semble beaucoup plus facile à gérer
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  12. #12
    Membre expert
    Je retire ce que j'ai dit, une âme généreuse a proposé ses services pour la migration de la FAQ actuelle ce sera donc fait ^^

    Il y a un système de tag, qui permettrait donc de taguer, malheureusement ceux-ci ne sont pas visibles (pour la recherche uniquement). Toutefois on peut aussi taguer en mettant en gras dans le texte (ou autre) et entre crochets dans le titre (la bonne vieille méthode a la mano).

    Citation Envoyé par JolyLoic
    - Deux versions de la FAQ, une par version du langage
    - Une seule version de la FAQ, qui agrège des questions génériques, et des questions plus liées à une version.
    Pour ma part j'avoue que je suis partagé. J'aime bien le système [until03]/[since11], mais d'un autre côté les arguments apportés par Dabidbrcz ne sont pas négligeables.

    Pour ce qui est du C++03, eh bien il me semble qu'il n'y a plus beaucoup de maintenance à faire s'il reste tel quel.

    Il faut aussi penser à C++14 dans un premier temps et à C++1y dans un 2e temps. (H.S: j'ai l'impression qu'il y a confusion, et que C++1y est utilisé officiellement pour C++14 ? Si tel est le cas, quel est la version incertaine pour C++17 ?). Le C++ iso semble décidé à bouger plus rapidement, il va falloir s'y adapter.

    re-HS-info: clang 3.4 est déjà C++14 compliant, language & library

  13. #13
    Expert éminent sénior
    Maintenant que la FAQ a été intégralement traduite en BBcode, il est peut être temps de se décider.

    Tout le monde est bien d'accord sur le fait qu'il faut -- à tout le moins -- garder la faq C++03 et indiquer clairement le fait que certaines possibilités sont issues de C++1x (11, 14, 17, à ce jour).

    La solution de tag semble agréer à tout le monde (ceux qui sont contre, levent la main, qu'on puisse les ). Mais quelles sont les possibilités techniques à ce sujet

    @Germino, as tu des informations intéressantes sur la faisabiltié de la chose

    EDIT Comment organiserons nous les entrées qui présentent des techniques différentes en fonction de la norme suivie
    D'une certaine manière, tout risque de dépendre de ces entrées "mixtes" (qui présentent une possibilité pour différentes normes, comme celle dont il est question -->ici<--
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  14. #14
    Membre expert
    Pour répondre à la question, j'ai bien peur que la réponse ne soit : à la mano (en attendant peut-être mieux).
    Il y a les tags invisibles qui peuvent être utilisés pour le moteur de recherche de la FAQ (et probablement je pense indexés par google en sus).
    C'est pas trop embêtant (le pire c'est quand une entrée C++XX n'est plus valable C++YY où il faut combiner deux tags).

    Pour celles qui sont différentes... dans un soucis de stabilité et de concision, je propose de préciser devant toutes les FAQ (pas seulement celles qui changent) la norme à partir desquelles elles sont effective, et que la plus récente soit placée en première (histoire de faire un peu la promotion des nouveaux standards).
    Il serait aussi possible, plutôt que d'encombrer le sommaire, de mettre les différentes versions à la suite dans la même entrée (ce qui nous évite la cure de taggage sur toutes les entrées). Par ailleurs cela nous permettra des tags peut-être plus explicites...

  15. #15
    Membre chevronné
    J'ai souvenir qu'on avait deja debattu sur ce sujet et qu'on etait arrive a la conclusion qu'il fallait garder la FAQ C++03. Par-contre impossible de remettre la main dessus... Koala01 y a participe si je me souviens bien, peut-etre qu'il arrivera a la denicher ? Il y avait pas mal d'arguments qu'il serait bon de re-sortir ici je pense (non pas que ca changerait grand chose, mais tout de meme...).
    Il y a 10 sortes de gens : ceux qui comptent en binaire et les autres.

    "Premature optimization is the root of all evil" --Donald Knuth
    traduction : "L'optimisation prématurée est la racine de tous les maux" -- Donald Knuth

    Si vous voulez apprendre à développer en Rust, un tuto (en français) est disponible ici.
    Si vous voulez voir mes projets, c'est sur github que ça se passe.