• # Y'a un truc qui me chiffonne

    Posté par  (site web personnel, Mastodon) . Évalué à 4 (+1/-0).

    L'article parle de l'argument comme quoi Rust serait plus expressif et permet de faire des choses impossibles ou très compliquées en C++.

    Il explore donc la conversion de code Rust en C++ et montre que le code obtenu est en général assez proche du point de vue de sa structure algorithmique, de sa gestion du cycle de vie des objets, etc.

    Sa conclusion est qu'il n'y a pas de problème d'expressivité en C++: il permet d'écrire tout ce qu'on peut écrire en Rust, avec les mêmes résultats. L'avantage de Rust viendrait plutôt de la réjection des constructions invalides.

    Je crois qu'il y a là un gros problème avec la description de l'expressivité. Cette vision se concentre uniquement sur le code généré et exécuté. Or, l'expressivité de Rust, elle est plutôt dans les possibilités d'expliciter toutes sortes de choses qui justement ne sont pas utile une fois le code compilé. Mais qui sont par contre essentielles pour que le compilateur puisse bien faire son travail de vérification, et aussi pour que les développeurs du projet aient cette information.

    Cela va même plus loin puisque, si j'ai bien compris, l'auteur compare des lignes de code C++ sans les tests, et des lignes de code Rust avec les tests, car en Rust, les tests sont dans le même fichier que l'implémentation. Forcément, cela permet de conclure que le code C++ est plus petit…

    Finalement la chose à retenir est peut-être là: la valeur de Rust n'est pas d'écrire du meilleur code dans l'absolu. Elle est surtout de communiquer clairement la construction de votre code, non seulement avec le compilateur qui pourra peut-être mieux l'optimiser (je m'attendais à voir quelques mesures de performances ou de taille d'exécutables obtenues, mais non, rien du tout); mais surtout avec vos collègues ou le vous du futur qui va devoir relire, modifier et maintenir ce code. Dommage de passer à côté de ça, non?

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.