IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

yosefk fqa c++


Sujet :

Contribuez C++

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut yosefk fqa c++
    Bonjour,

    je ne sais pas si vous connaissez ce site, c'est plutôt... intéressant, disons.
    C'est une parodie de faq c++, mais en fait ce n'est que de la critique, assez dure parfois, de notre langage préféré (tout en anglais par contre):

    http://yosefk.com/c++fqa/

    On y trouve des phrases amusantes comme par exemple (traduction libre et approximative effectuée par votre humble serviteur):
    Si vous êtes un expert dans les complexités du C++, s'il vous plait considérez ce savoir comme un art martial: quelque chose qu'un vrai maître n'utilise jamais.
    Comme des critiques plus tranchantes, comme par exemple (traduction libre etc.):
    Je ne vais pas prétendre que le C++ n'est pas un langage de haut niveau puisque tous les livres sur le sujet prennetn soin de souligner le contraire. Par contre je dis qu'il est impossible de bien programmer, avec ce langage de programmation orienté objet de haut niveau, si on ne connais pas l'assembleur.
    Il y a des trucs vraiment mouarfant, genre la partie "defective c++" (allusion aux bouquins de Scott Meyers), mais parfois très agaçants aussi...
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Ce site existe depuis un petit moment maintenant.
    Il est controversé dans l'ensemble. Il y a des choses qui sont justes, mais tout cela est à prendre avec du recul.
    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...

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 362
    Points : 410
    Points
    410
    Par défaut
    Ce qui est vraiment dommage avec ce site, c'est son approche systématique.

    Je suis le premier à reconnaitre qu'il y a en effet de gros défauts au C++ ou des choses qui étaient des qualités (par rapport à d'autres langages), et qui n'en sont plus suite à l'apparition de nouveaux langages qui sont encore meilleurs sur ces mêmes points.

    Mais ces défauts ne sont pas du tout mis en valeur par ce site, car il critiques tout uniformément.

    Exemple : Dans What is the big deal with OO, je trouve la critique parfaitement anecdotique, et je n'ai jamais eu de problème de ce genre. J'irais même jusqu'à dire que je ne connais pas de langage qui gère la compilation plus rapidement que C++ (templates exceptés, mais il faut bien admettre que peu de langages professionnels gèrent vraiment les templates)

    Contre-Exemple : Dans What's the big deal with generic programming?, je trouve la critique parfaitement justifiée et elle aurait mérité d'être mise en valeur par rapport à la précédente.

  4. #4
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Citation Envoyé par Feriaman Voir le message
    Contre-Exemple : Dans What's the big deal with generic programming?, je trouve la critique parfaitement justifiée et elle aurait mérité d'être mise en valeur par rapport à la précédente.
    Ah ? commentaires inlines :

    Templates are hard to use (and not only define & implement) due to cryptic compiler error messages, extremely long compilation time and remarkable hostility to symbolic debugging
    Faux... suffit juste de savoir s'en servir c'est tout.


    Templates are a form of code generation, and hence they don't make code faster or slower compared to code you'd write manually.
    faux... ( ET etc)

    They do tend to make it larger since the compiler generates the same code many times.
    Faut sortir des années 90...
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  5. #5
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Citation Envoyé par Goten Voir le message
    Templates are hard to use (and not only define & implement) due to cryptic compiler error messages, extremely long compilation time and remarkable hostility to symbolic debugging
    Faux... suffit juste de savoir s'en servir c'est tout.
    Ah...
    J'espère que tu participeras au sujet "Template: quels outils" pour nous éclairer de ton savoir.

  6. #6
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Quote fail, je réagissais aux points :
    "due to cryptic compiler error messages" et "extremely long compilation time"
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 362
    Points : 410
    Points
    410
    Par défaut
    Citation Envoyé par Arzar
    J'espère que tu participeras au sujet "Template: quels outils" pour nous éclairer de ton savoir.
    Je plussoie Arzar.

    Tu as le droit d'être extrémiste, et tu as le droit de n'avoir pas la même opinion que moi (ou plutôt en l'occurrence que l'auteur de la FQA, que j'approuve sur ce point).

    Si tu sais des choses que nous ne savons pas : s'il te plait instruit nous.

  8. #8
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    J'ai donné des exemples, maintenant si ça fait de moi un extrémiste... :'

    Les messages cryptique : définition de concept + static assert.

    Les expressions template (ET) => code plus rapide à l'exécution.

    La rapidité de compilation => y'a les PCH, évité les instantiations inutiles et prématures. (mais ici je vous l'accorde c'est pas toujours la panacé)

    Le code bloat : comme je l'ai dis, on est plus dans les années 90 les compilos sont intelligents.

    Fin bon, suffit de regarder les projets dehors qui utilisent _massivement_ les templates (TMP / ET etc) pour se rendre compte que ce qu'il dit est caduc, et que non ce n'est pas qu'un outil d'universitaire un peu fou, c'est utilisé dans du code de production qui _tourne_ vraiment...


    edit : quant à l'histoire des outils, puisque c'est ça qui à l'air de vous avoir fait réagir (alors que moi je ne réagissais jsutement pas à cette partie) j'utilise presque uniquement vim et ce que vous décrivez j'ai appris à composer avec.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  9. #9
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par Goten Voir le message
    Fin bon, suffit de regarder les projets dehors qui utilisent _massivement_ les templates (TMP / ET etc) pour se rendre compte que ce qu'il dit est caduc, et que non ce n'est pas qu'un outil d'universitaire un peu fou, c'est utilisé dans du code de production qui _tourne_ vraiment..
    _massivement_ n'est pas forcément le premier terme qui me serait venu pour l'utilisation des génériques dans des projets en entreprise.

  10. #10
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    _massivement_ n'est pas forcément le premier terme qui me serait venu pour l'utilisation des génériques dans des projets en entreprise.
    Je pensais plus à une utilisation indirecte (via une bibliothèque), d'ailleurs quand je l'ai écrit j'avais spirit en tête.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo