Je pense que ce qui n'est pas très clair pour beaucoup (y compris pour moi), c'est à quel point un langage comme C++ est multiparadigme, et à quel point il n'implique pas d'utiliser toutes ses possibilités. Ce n'est pas parce qu'une police de caractères propose des glyphes latins, grecs, et hébreux que c'est une bonne idée de mélanger tout ça dans le même texte.
Certains utilisent C++ comme un C amélioré (avec des classes à la place des struct, les opérateurs <<, les const et les références par exemple), d'autres comme un pur langage objet (encapsulation et héritage), d'autres ne jurent que par les algorithmes génériques à la STL, certains excluent les templates ou les exceptions, etc.
En théorie, j'ai l'impression les avantages majeurs de la POO se voient surtout sur les gros projets (travail indépendant sur des modules, évolutivité à long terme), surtout quand leur architecture générale a été conçue par des gens qui connaissent bien leur boulot (design patterns etc). Tant que tu as des exemples du style "class Voiture: public Vehicule", ça parait complètement déconnecté de ce dont tu as besoin pour écrire un programme lambda de 150 lignes.
Mais sur le fond, certaines possibilités offertes par le C++ sont quand même des trucs de niche, qui sont à des années lumière de ce qu'un programmeur peu expérimenté peut maitriser. Je crois qu'il m'a fallu des années pour comprendre par exemple que la surcharge des opérateurs n'était pas utile pour 99.9% des projets, ou qu'on pouvait faire du code propre sans template variadique. Et puis après j'ai arrêté le C++ parce que ça n'était pas l'outil dont j'avais besoin, et voila.
[^] # Re: Pas le même paradigme
Posté par arnaudus . En réponse au message Avantages du C++ sur le C ?. Évalué à 4.
Je pense que ce qui n'est pas très clair pour beaucoup (y compris pour moi), c'est à quel point un langage comme C++ est multiparadigme, et à quel point il n'implique pas d'utiliser toutes ses possibilités. Ce n'est pas parce qu'une police de caractères propose des glyphes latins, grecs, et hébreux que c'est une bonne idée de mélanger tout ça dans le même texte.
Certains utilisent C++ comme un C amélioré (avec des classes à la place des struct, les opérateurs <<, les const et les références par exemple), d'autres comme un pur langage objet (encapsulation et héritage), d'autres ne jurent que par les algorithmes génériques à la STL, certains excluent les templates ou les exceptions, etc.
En théorie, j'ai l'impression les avantages majeurs de la POO se voient surtout sur les gros projets (travail indépendant sur des modules, évolutivité à long terme), surtout quand leur architecture générale a été conçue par des gens qui connaissent bien leur boulot (design patterns etc). Tant que tu as des exemples du style "class Voiture: public Vehicule", ça parait complètement déconnecté de ce dont tu as besoin pour écrire un programme lambda de 150 lignes.
Mais sur le fond, certaines possibilités offertes par le C++ sont quand même des trucs de niche, qui sont à des années lumière de ce qu'un programmeur peu expérimenté peut maitriser. Je crois qu'il m'a fallu des années pour comprendre par exemple que la surcharge des opérateurs n'était pas utile pour 99.9% des projets, ou qu'on pouvait faire du code propre sans template variadique. Et puis après j'ai arrêté le C++ parce que ça n'était pas l'outil dont j'avais besoin, et voila.