J'ai l'impression que par lisible tu veux dire "rapide à lire".
Oui, "for (auto element : conteneur)" c'est rapide à lire
Par lisible, j’entends compréhensible, et ceci ne l'est pas, car si la définition de "conteneur" est 40 lignes plus haut ou si c'est lui même un "auto" machin, le code n'est PAS compréhensible. Même pas en rêve avec tes technos dites "modernes" et les bonnes pratiques de mamie.
Pour reprendre sur Java et ne pas digresser sur le C++ qui n'a jamais eu de syntaxe claire,
for (String str : parts){
} est parfaitement compréhensible, on a tout le contexte. On ne peux pas se tromper sur l'utilisation/le type de 'str'.
Je ne dis pas que le compilateur va se tromper, c'est le programmeur qui ne peux pas s'y retrouver (à moins que ta "bonne pratique" c'est frde nommer les variables/les paramètres en incluant le type.
genre :
var myInt = getNextValue(); Et ici, franchement, on a frôle la débilité profonde.
Comme tu es sérieux et rigoureux, tu vas écrire pour ton compteur :
var count = getNextValue(); et peut être même l'incrémenter quelques lignes plus bas.
Et comment tu vas être sûr que tu ne risque pas te faire un overflow?
count c'est un "int", un "long" ? Ah, non pas de bol, il est lu d'un stream octet par octet, c'est un "byte".
Conclusion, tu ne peux pas comprendre en lisant le code (faut aller voir la signature du getNextValue() pour savoir, une perte de temps), bref, c'est casse gueule au possible et complètement inutile (et c'est pas parce que Rust le fait que c'est bien).
Cette "évolution" de Java est juste là pour faire plaisir aux amateurs de Javascript qui voudrait goûter à Java.
(notons au passage que les gros projets Javascript migrent vers Cleartype pour justement avoir du code "lisible" et plus robuste que la loterie à base de "let" et "var")
[^] # Re: Inférence de types
Posté par Guillaume Maillard (site web personnel) . En réponse à la dépêche Sortie de JDK 10. Évalué à 1.
J'ai l'impression que par lisible tu veux dire "rapide à lire".
Oui, "for (auto element : conteneur)" c'est rapide à lire
Par lisible, j’entends compréhensible, et ceci ne l'est pas, car si la définition de "conteneur" est 40 lignes plus haut ou si c'est lui même un "auto" machin, le code n'est PAS compréhensible. Même pas en rêve avec tes technos dites "modernes" et les bonnes pratiques de mamie.
Pour reprendre sur Java et ne pas digresser sur le C++ qui n'a jamais eu de syntaxe claire,
est parfaitement compréhensible, on a tout le contexte. On ne peux pas se tromper sur l'utilisation/le type de 'str'.for (String str : parts){
}
Je ne dis pas que le compilateur va se tromper, c'est le programmeur qui ne peux pas s'y retrouver (à moins que ta "bonne pratique" c'est frde nommer les variables/les paramètres en incluant le type.
genre :
Et ici, franchement, on a frôle la débilité profonde.var myInt = getNextValue();
Comme tu es sérieux et rigoureux, tu vas écrire pour ton compteur :
et peut être même l'incrémenter quelques lignes plus bas.var count = getNextValue();
Et comment tu vas être sûr que tu ne risque pas te faire un overflow?
count c'est un "int", un "long" ? Ah, non pas de bol, il est lu d'un stream octet par octet, c'est un "byte".
Conclusion, tu ne peux pas comprendre en lisant le code (faut aller voir la signature du getNextValue() pour savoir, une perte de temps), bref, c'est casse gueule au possible et complètement inutile (et c'est pas parce que Rust le fait que c'est bien).
Cette "évolution" de Java est juste là pour faire plaisir aux amateurs de Javascript qui voudrait goûter à Java.
(notons au passage que les gros projets Javascript migrent vers Cleartype pour justement avoir du code "lisible" et plus robuste que la loterie à base de "let" et "var")