Envoyé par
Gugelhupf
@Pill_S
@persi
Il est tout à fait possible de faire ceci en Java maintenant :
Dictionary<String, List<String>> dico = new Dictionary<>();
Deuxièmement, utiliser l'inférence de type avec le mot-clé var à la place du type String c'est ridicule, on s'en sert pour les types plus compliqués à écrire comme Dictionary<String, List<String>>.
Ce qu'on peut craindre en C# c'est l'utilisation de l'inférence de type pour toutes les déclarations, voir pire, l'utilisation de dynamic à tort et à travers.
Si on peut le faire maintenant c'est que JAVA va dans ce sens non ? d'après ce que je vois sur les messages d'autres améliorations en ce sens sont en cours d'arrivage. Donc oui ca confirme une tendance, lié à un besoin de lisibilité (et aller à l'essentiel ca en fait grandement parti) et de productivité. C'est juste que JAVA est à la bourre la dessus, et que scala par exemple m'a l'air dans l'air du temps.
Il y a pas si longtemps le simple fait d'évoquer "var" était un blasphème aujourd'hui ca passe, demain ce sera ça le ridicule j'espère:
Dictionary<String, List<String>> test = new Dictionary<String, List<String>>()
la majorité a considéré (considère ?) que c'etait la seule facon correcte de faire et que ca :
var test = new Dictionary<String, List<String>>();
n'est pas lisible et/ou pose des problemes de maintenance...c'est le monde à l'envers de la logique... et je le dis parce que je l'ai vécu lors d'audit par exemple il y a quelques mois.
- Pour ce qui est de l'utilisation de "dynamic" à tort et à travers .... faut rien comprendre a ce qu'on fait.
- Pour l'inférence systématique, j'aimerai qu'on juge les impacts que ça aurait sur la maintenabilité: de demander quand le lecteur du code ne devine pas directement et sans ambiguité le type d'un retour d'une fonction; de passer la souris sur le var pour visualiser le type. Puis comparer ça aux problèmes liés à la lourdeur de code (à la lecture et écriture) qu'engendre de répéter les types à chaque fois pour tout.
Ceci suppose d'avoir l'IDE adapté je sais pas ce qu'il en est sur les inférences de type avec eclipse et scala par ex.
Un test sans à priori et objectif m'intéresserait vraiment si c'est réalisable.
Le var est un exemple parmi d'autres qui arrivent juste maintenant ou ne sont pas encore arrivés: closures, partial class, linqToObjects, async, méthodes d'extensions.
De la meme maniere si en c# je pouvais faire un substring safe comme ca: nom[0..10], ca m'arrangerait aussi, ca ne prete pas plus à confusion qu'une méthode classique.
Partager