• [^] # Re: Un peu de bike shedding: je n'aime pas leur syntaxe des format string

    Posté par . En réponse à la dépêche Encore une couche de rouille avec Rust 0.11. Évalué à 1.

    Ça permet de passer toutes les variables dans un dictionnaire, sans forcément les connaître à l'avance.

    Ce qui est rarement utile.. Rendre moins lisible et moins maintenable la syntaxe la plus utilisée pour une possibilité rarement utilisée, bof!

    De plus, elle permet un formatage supplémentaire grâce aux indications (nombre de chiffres, remplissage avec des espaces, ...).

    Et alors? Avoir des formats strings lisibles n’empêche pas d'avoir des formatages supplémentaire..
    En Scala, ça donne ça: println(f"$name%s is $height%2.2f meters tall")

    J'ai l'impression qu'il y en a pas mal qui se disent, c'est comme ça que c'est fait en Python donc c'est forcément bien!
    Désolé mais si la lisibilité est subjective, la maintenable ne l'est pas elle et
    1) mettre les variables séparément des chaines ("foo {} faa {}",var1,var2) est moins maintenable que ("foo $var1 faa $var2")
    2) en utilisant les places holders nommés tu peux récupérer la maintenabilité ("foo {u} faa {v}",u = var1, v = var2) MAIS c'est au prix d'une verbosité et d'une redondance supplémentaire par rapport à ("foo $var1 faa $var2") (si le nom des variable est trop moche pour mettre directement dans la format string c'est un problème entre la chaise et le clavier, pas un problème de langage).

    Alors OK, les places holder nommés permettent quelques trucs supplémentaires utile dans 1% des cas, mais ça reste une syntaxe pas terrible pour le cas par défaut.

    De mon point de vue, les concepteurs de Python ont merdé sur ce point là, ça arrive et après c'est difficile de changer donc ils sont coincés OK, mais que les dev de Rust copient Python sans améliorer la syntaxe par défaut là..