Voilà un petit mail pour lancer le non-troll du Vendredi (oui ce mail a un potentiel trollesque assez élevé, cependant ce n'en est pas un, loin s'en faut). Au détours de tests unitaires sur Wikitty je me retrouve a comparer des versions et je m'aperçois, oh misère, que les versions 2.0.0 et 2.0 ne sont pas égales. A priori ça a été implémenté de la manière suivante : si 2 versions sont "égales", plus la chaine de 0 'inutiles' à la fin est longue, plus la version sera 'supérieure'. Pour moi les versions 2.0.0 et 2.0 devraient être égales (comme les nombres 2,0000 et 2 sont égaux), mais c'est vrai que pour les trier dans une liste, c'est mieux de conserver cette règle (sinon des versions égales mais avec des nombres de 0 différentes pourraient changer d'ordre au petit bonheur la chance). Quelle est la vérité (s'il y en a une) ?
On Fri, 03 Dec 2010 18:12:38 +0100 Jean Couteau <couteau@codelutin.com> wrote:
Voilà un petit mail pour lancer le non-troll du Vendredi (oui ce mail a un potentiel trollesque assez élevé, cependant ce n'en est pas un, loin s'en faut).
Au détours de tests unitaires sur Wikitty je me retrouve a comparer des versions et je m'aperçois, oh misère, que les versions 2.0.0 et 2.0 ne sont pas égales.
A priori ça a été implémenté de la manière suivante : si 2 versions sont "égales", plus la chaine de 0 'inutiles' à la fin est longue, plus la version sera 'supérieure'.
Pour moi les versions 2.0.0 et 2.0 devraient être égales (comme les nombres 2,0000 et 2 sont égaux), mais c'est vrai que pour les trier dans une liste, c'est mieux de conserver cette règle (sinon des versions égales mais avec des nombres de 0 différentes pourraient changer d'ordre au petit bonheur la chance).
Quelle est la vérité (s'il y en a une) ? 2.0.0 > 2.0
_______________________________________________ Nuiton-utils-devel mailing list Nuiton-utils-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/nuiton-utils-devel
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
Le 03/12/2010 18:18, chemit a écrit :
Quelle est la vérité (s'il y en a une) ? 2.0.0 > 2.0
Sur quoi tu bases ta (courte) réponse Tony ? Sur le web, je vois une version 2.0 et une 2.0.0, je pense que c'est la même version. Et je pense qu'un paquet de monde réagira comme moi... Arnaud.
On Mon, 06 Dec 2010 09:21:54 +0100 Arnaud Thimel <thimel@codelutin.com> wrote:
Le 03/12/2010 18:18, chemit a écrit :
Quelle est la vérité (s'il y en a une) ? 2.0.0 > 2.0
Sur quoi tu bases ta (courte) réponse Tony ? Sur le web, je vois une version 2.0 et une 2.0.0, je pense que c'est la même version. Et je pense qu'un paquet de monde réagira comme moi... encore faudrait-il qu'ils lisent ce mail :) ...
En terme de comparaison 2.0.0 > 2.0 car il y a une composante de plus à la version. Mais pour répondre à la question initiale de Jean 2.0.0 = 2.0 est une question difficile (si-si). Car sachant que 2.0.0 > 2.0, le contrat Java nous dit que 2.0.0 == 2.0 alors qu'en réalité on voudrait que 2.0.0 = 2.0 = 2. C'est un peu compliqué à gérer car on veut casser l'ordre naturel et ça c'est la merde à gérer. donc si on conserve l'ordre naturel, on doit avoir 2.0.0 = 2.0
Arnaud.
_______________________________________________ Nuiton-utils-devel mailing list Nuiton-utils-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/nuiton-utils-devel
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
On Mon, 6 Dec 2010 09:30:38 +0100 chemit <chemit@codelutin.com> wrote:
On Mon, 06 Dec 2010 09:21:54 +0100 Arnaud Thimel <thimel@codelutin.com> wrote:
Le 03/12/2010 18:18, chemit a écrit :
Quelle est la vérité (s'il y en a une) ? 2.0.0 > 2.0
Sur quoi tu bases ta (courte) réponse Tony ? Sur le web, je vois une version 2.0 et une 2.0.0, je pense que c'est la même version. Et je pense qu'un paquet de monde réagira comme moi... encore faudrait-il qu'ils lisent ce mail :) ...
En terme de comparaison 2.0.0 > 2.0 car il y a une composante de plus à la version.
Mais pour répondre à la question initiale de Jean 2.0.0 = 2.0 est une question difficile (si-si).
Car sachant que 2.0.0 > 2.0, le contrat Java nous dit que 2.0.0 == 2.0 2.0.0 != 2.0 ... alors qu'en réalité on voudrait que 2.0.0 = 2.0 = 2.
C'est un peu compliqué à gérer car on veut casser l'ordre naturel et ça c'est la merde à gérer.
donc si on conserve l'ordre naturel, on doit avoir 2.0.0 = 2.0 2.0.0 != 2.0 ...
Arnaud.
_______________________________________________ Nuiton-utils-devel mailing list Nuiton-utils-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/nuiton-utils-devel
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
Sur le web, je vois une version 2.0 et une 2.0.0, je pense que c'est la même version. Et je pense qu'un paquet de monde réagira comme moi...
Justement, c'était pour ça que je posais ma question, masi on en a discuté à Code et pas reposé les conclusions ici (pas bien). Le problème est que c'est très complexe, dans le sens ou effectivement c'est les mêmes versions mais en fait non car pour les comparer il faut qu'elles soient différentes (pour pas avoir des listes triées qui ressemble à ça : 2.0 ; 2.0.0 ; 2 ; 2.0.0 ; 2 ; 2.0 ) On s'est dit que pour ce genre de chose, il fallait plutôt avoir une méthode qui permet de virer les 0 'en trop' si besoin. Comme ça on garde le comportement actuel pour les comparaisons et en même temps, on peut tester l'égalité en utilisant la méthode qui vire les 0 'en trop' quand on en a besoin. Benjamin, Tony, je résume bien ?
Le 06/12/2010 09:39, Jean Couteau a écrit :
Justement, c'était pour ça que je posais ma question, masi on en a discuté à Code et pas reposé les conclusions ici (pas bien). Le problème est que c'est très complexe, dans le sens ou effectivement c'est les mêmes versions mais en fait non car pour les comparer il faut qu'elles soient différentes (pour pas avoir des listes triées qui ressemble à ça : 2.0 ; 2.0.0 ; 2 ; 2.0.0 ; 2 ; 2.0 )
On s'est dit que pour ce genre de chose, il fallait plutôt avoir une méthode qui permet de virer les 0 'en trop' si besoin. Comme ça on garde le comportement actuel pour les comparaisons et en même temps, on peut tester l'égalité en utilisant la méthode qui vire les 0 'en trop' quand on en a besoin.
Du coup, peut-être faudrait-il juste une méthode supplémentaire qui permette de tester l'égalité numéraire (2.0 = 2.0.0.0.0)
On Mon, 06 Dec 2010 10:03:45 +0100 Arnaud Thimel <thimel@codelutin.com> wrote:
Le 06/12/2010 09:39, Jean Couteau a écrit : ... Du coup, peut-être faudrait-il juste une méthode supplémentaire qui permette de tester l'égalité numéraire (2.0 = 2.0.0.0.0)
Oui, peut-etre que le mieux est de garder le comparator comme il est (2.0<2.0.0), et la methode equals continue a se basee dessus (donc 2.0 != 2.0.0). Et on ajoute une method isEquivalent qui elle indique que 2.0.0.0 == 2.0 == 2 Est-ce un compromis acceptable pour tout le monde ? -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Le 06/12/2010 12:36, Benjamin POUSSIN a écrit :
Oui, peut-etre que le mieux est de garder le comparator comme il est (2.0<2.0.0), et la methode equals continue a se basee dessus (donc 2.0 != 2.0.0). Et on ajoute une method
isEquivalent
qui elle indique que 2.0.0.0 == 2.0 == 2
Est-ce un compromis acceptable pour tout le monde ?
Je pense oui
Le Mon, 6 Dec 2010 12:36:04 +0100, Benjamin POUSSIN <poussin@codelutin.com> a écrit :
Oui, peut-etre que le mieux est de garder le comparator comme il est (2.0<2.0.0), et la methode equals continue a se basee dessus (donc 2.0 != 2.0.0). Et on ajoute une method
isEquivalent
qui elle indique que 2.0.0.0 == 2.0 == 2
Est-ce un compromis acceptable pour tout le monde ?
Ca me parait bien -- Yannick
participants (5)
-
Arnaud Thimel -
Benjamin POUSSIN -
chemit -
Jean Couteau -
Yannick Martel