• [^] # Re: Rust vs Go

    Posté par . En réponse à la dépêche Rust 0.12 : non, pas le jeu vidéo, le langage !. Évalué à 3.

    Je vais te retourner la question. Que penses-tu de :

    std::vector<int> v1, v2 = { ... }
    std::copy_if(v2.begin(), v2.end(), std::back_inserter(v1), [](int x) { return x%2 == 0; })
    

    Cette structure est triviale en C++. Et elle se comprend très bien telle qu’elle (au moins aussi bien que ta structure ruby), et est concise.

    Maintenant, replace la dans un contexte, à savoir, au milieu d’autres structure du même type, peut-être dans une boucle, bref. J’estime être pas mauvais en C++, je travaille avec quotidiennement, j’ai l’habitude d’en lire, et pourtant, quand j’écris du code, j’évite ce genre de trucs. Au final, la forme que je vais utiliser, c’est beaucoup plus :

    copy_even_numbers(v2, v1); // là, je vois tout de suite ce que ça fait, et je suis sûr que tout le monde comprend
    

    Et pour l’implémentation de copy_even_numbers, qu’elle fasse une ligne ou 4 ne change finalement pas grand chose. Si j’opte au final pour la forme du std::copy_if, c’est parce que je sais qu’elle est plus efficace qu’une boucle naïve.

    Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0