• [^] # Re: Critique

    Posté par . En réponse au journal Explorez les richesses du langage Python. Évalué à 2.

    Les morceaux de codes restent complétement triviaux et quelqu'un qui ferait du C++ plus ou moins assidument ferait plutôt un truc du genre

    #include
    #include
    #include
    #include

    class Personne {
    std::string prenom, nom;
    public:
    Personne(const std::string &prenom_, const std::string &nom_): prenom(prenom_), nom(nom_) {};
    friend std::ostream& operator<< (std::ostream&, const Personne&);
    };

    std::ostream& operator<< (std::ostream &os, const Personne &p) {
    os << p.prenom << ' ' << p.nom;
    return os;
    }

    void test() {
    std::vector liste;
    liste.push_back(Personne("Victor", "Stinner"));
    liste.push_back(Personne("Damien", "Boucard"));
    std::copy(liste.begin(),liste.end(),std::ostream_iterator(std::cout, "\n"));
    }

    Concernant le temps de compilation, bien sûr c'est long.Mais est-ce que c'est plus long que d'écrire un milliard de tests ou de planter après 2h d'éxécution pour pallier à l'absence de la phase de compilation (genre se tromper sur l'objet que tu passe à une méthode, détecter à 98% par le compilateur, jolie execption à l'éxecution sinon :)).

    Autre point : tu t'appuye sur quels projets python de taille importante pour porter de tels jugements ? Quel intérêt de l'objet si tu n'utilise pas un minimum l'encapsulation ?

    Pour information le mot clé const, ça indique un contrat fort, ne pas l'avoir c'est un manque assez désagréable. static ça ne réduit pas grand chose et des mécanismes similaires existent en python. private et protected, voir remarque plus haut.