30

smeet
:
Et comme Java ne fournit pas de struct
Y'a un truc, ca s'appelle des classes.

Ah, qu'est-ce donc ? triroll
Nan mais tu noteras que c'était dans un paragraphe qui concernait la performance du code, hein... Le C# fournit (en plus des classes, oui cheeky) un moyen de faire des structures de données qui se comportent en tout point comme des "int", par exemple : allocation sur la pile/dans les registres et pas sur le tas, passage par valeur et non par référence, etc (et il se trouve que ces structures de données s'appellent struct). Si tu passes par une classe wrapper, alors tu vas te chopper tout l'overhead de la garbage collection : au lieu de stocker un entier sur 8, 16 ou 32 bits, tu vas être obligé de stocker un pointeur 32 bits, qui va lui-même devoir pointer sur un autre bloc de mémoire, lequel va probablement devoir contenir une virtual function table et la valeur qui t'intéresse. Donc il y a des chances que si tu veux optimiser ton prog et que tu n'aies pas de type struct, tu sois obligé de passer par des int...
Et tu ne réponds pas au reste du paragraphe ^^
final private int MODE_ADDPOINT=0;
final private int MODE_MOVEPOINT=1;
final private int MODE_REMOVEPOINT=2;
final private int MODE_INSERTPOINT=3;

int mode;
String WhereAmI() {
String s="java sux";
if (mode==MODE_ADDPOINT)
s="ADDPOINT";
else if (mode==MODE_ADDPOINT)
s="ADDPOINT";
else if (mode==MODE_ADDPOINT)
s="ADDPOINT";
else if (mode==MODE_ADDPOINT)
s="ADDPOINT";
return "je suis dans le mode "+s; }

Cette fonction ne sert à rien.

(euh j'ai oublié de préciser que j'avais eu la flemme de changer ADDPOINT par les 3 autres trucs, évidemment)
Euh, tu fais exprès, rassure-moi ?
Ca ne sert à rien pour un désassembleur d'écrire le nom des opcodes qu'il génère ? Ca ne sert à rien de pouvoir débugger un prog sans avoir à faire à la main ce genre de conversions ? (surtout que s'il s'agit de voir un log de debug d'une vieille version, les numéros peuvent très bien ne plus correspondre) Et j'en passe...
Et puis, si tu utilises des int, autant les utiliser comme index d'un array de string, non?

Bah oui, si tu veux, mais le truc c que pour le coup si tu oublies de mettre à jour l'un alors que tu modifies l'autre, tu te retrouves avec un truc qui fait n'importe quoi... Et accessoirement avec ta technique pour affecter les numéros qui fait enum_value[n]=n*(n+1)/2, le tableau risque de devenir assez vite gigantesque cheeky (et je ne parle même pas d'essayer d'insérer un élément au milieu, sachant que le nb de blancs qu'il doit y avoir entre 2 éléments de l'énum dépend de la position de cet élément, il faut tout refaire cheeky)
Par ailleurs, en informatique, peut importe la taille des fichiers, c'est vraiment al derniere chose qui compte. Ce qui importe est, au choix, la rapidité, ou le haut-niveau.

Oui, je suis d'accord.
Java est haut niveau. Ca prend beaucoup de lignes, c'est comme ca.

Euh là par contre c'est n'importe quoi.
- OK, on s'en fout que le source prenne 30 Mo, mais par contre si le fait que ça prenne 30 Mo nuit à la lisibilité ou à la maintenabilité, ça devient n'importe quoi... (parce que tu ne vas pas me dire qu'avoir exactement la même chose 2 ou 3x dans le code est qqch qui accroît la lisibilité ou réduit le risque d'erreur : au contraire, au moindre oubli de modification d'un de ces éléments, le truc par en vrille -- et si on ne s'en rend pas compte tt de suite, ça peut être assez dur à trouver)
- ensuite, de ce point de vue-là, Java n'est justement pas haut niveau puisqu'il empêche d'adopter un typage efficace et oblige à passer par des objets sémantiquement plus pauvres (cf par exemple la différence entre la lib std de Java où chaque objet différent a un type différent, par opposition à la lib std du C où 90% des types sont des int, des void* ou des char* -- cf le système de fichiers de Java vs le système de file descriptors d'Unix), qui ne changent rien en bas niveau mais qui permettent des choses plus concises et plus sûres en haut niveau
Bref, j'ai l'impression que tu cherches une argumentation pour descendre Java, mais il te faudrait un peu plus les travailler tongue

N'importe quoi happy Au contraire, c'est pas vraiment une critique sur Java puisque l'absence d'énum a été corrigée. C'est plutôt une critique sur le fait que tu dises que les énum sont inutiles...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

31

smeet
: Par ailleurs, en informatique, peut importe la taille des fichiers, c'est vraiment al derniere chose qui compte.

rage

C'est à cause de gens comme toi qu'on a maintenant du bloatware qui prend plusieurs MO pour quelque chose qui se faisait autrefois (et qui peut toujours se faire, cf. les programmes pour calculatrices) en quelques KO! mad
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

32

trisotfl
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

33

Oui oui, va te faire foutre aussi. smile
Bah oui, si tu veux, mais le truc c que pour le coup si tu oublies de mettre à jour l'un alors que tu modifies l'autre, tu te retrouves avec un truc qui fait n'importe quoi... Et accessoirement avec ta technique pour affecter les numéros qui fait enum_value[n]=n*(n+1)/2, le tableau risque de devenir assez vite gigantesque (et je ne parle même pas d'essayer d'insérer un élément au milieu, sachant que le nb de blancs qu'il doit y avoir entre 2 éléments de l'énum dépend de la position de cet élément, il faut tout refaire )


Tu peux indexer des tableaux grâce à des variables.
(euh j'ai oublié de préciser que j'avais eu la flemme de changer ADDPOINT par les 3 autres trucs, évidemment)
Euh, tu fais exprès, rassure-moi ? Ca ne sert à rien pour un désassembleur d'écrire le nom des opcodes qu'il génère ? Ca ne sert à rien de pouvoir débugger un prog sans avoir à faire à la main ce genre de conversions ? (surtout que s'il s'agit de voir un log de debug d'une vieille version, les numéros peuvent très bien ne plus correspondre) Et j'en passe...

Si cest juste une question de debug, y'a 1. moyen de s'arranger autrement 2. ca n'intervient pas dans le fonctionnel de l'appli, donc "ca ne sert à rien".

pas me dire qu'avoir exactement la même chose 2 ou 3x dans le code est qqch qui accroît la lisibilité ou réduit le risque d'erreur

Je ne parle pas de dupliquer du code. Mais si qq chose qui se fait en 3 lignes en C se fait en 10 lignes en Java, ce n'est pas un drame. Faut jsute asvoir si on veut faire du haut niveau ou pas. Si tu ne veux aps faire du haut niveau, code en C ou en assembleur, et ne viens pas nous f***** *** *** *** avec du C#, un langage dont on ne sait meme pas où il place ses priorites.
N'importe quoi Au contraire, c'est pas vraiment une critique sur Java puisque l'absence d'énum a été corrigée. C'est plutôt une critique sur le fait que tu dises que les énum sont inutiles...

On se comprend mal. Les énumérations peuvent etre utiles. Mais les coder avec des entiers apporte au moins autant d'emmerdes que d'avantages. Faut juste l'assumer derrière.

Bref, on n'est pas d'accord sur des points qui n'ont rien à voir avec le schmilblick de départ. smile
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

34

smeet
:
Bah oui, si tu veux, mais le truc c que pour le coup si tu oublies de mettre à jour l'un alors que tu modifies l'autre, tu te retrouves avec un truc qui fait n'importe quoi... Et accessoirement avec ta technique pour affecter les numéros qui fait enum_value[n]=n*(n+1)/2, le tableau risque de devenir assez vite gigantesque (et je ne parle même pas d'essayer d'insérer un élément au milieu, sachant que le nb de blancs qu'il doit y avoir entre 2 éléments de l'énum dépend de la position de cet élément, il faut tout refaire )
Tu peux indexer des tableaux grâce à des variables.

hum
Comment tu traduirais mon exemple avec ta méthode d'indexation ?
(euh j'ai oublié de préciser que j'avais eu la flemme de changer ADDPOINT par les 3 autres trucs, évidemment)
Euh, tu fais exprès, rassure-moi ? Ca ne sert à rien pour un désassembleur d'écrire le nom des opcodes qu'il génère ? Ca ne sert à rien de pouvoir débugger un prog sans avoir à faire à la main ce genre de conversions ? (surtout que s'il s'agit de voir un log de debug d'une vieille version, les numéros peuvent très bien ne plus correspondre) Et j'en passe...
Si cest juste une question de debug, y'a 1. moyen de s'arranger autrement 2. ca n'intervient pas dans le fonctionnel de l'appli, donc "ca ne sert à rien".

Toujours d'aussi mauvaise fois...
1. pour le debug, l'export text est parfois indispensable si tu veux faire des greps et autres manipulations pas trop triviales (dumper un état intermédiaire, regarder où sont les truc délicats à gérer avec un grep, et voir tout le voisinage de cet endroit du premier coup)
2. même en dehors du debug, dans mon exemple de désassembleur, ça fait bel et bien partie du fonctionnel de l'appli de sortir les noms des opcodes...
3. idem si tu veux sérialiser des trucs (en XML par exemple) dans un format qui ne dépend pas de la version de ton logiciel... passer par des représentations textuelles est bien plus robuste que de passer par des représentations numériques ^^
pas me dire qu'avoir exactement la même chose 2 ou 3x dans le code est qqch qui accroît la lisibilité ou réduit le risque d'erreur
Je ne parle pas de dupliquer du code. Mais si qq chose qui se fait en 3 lignes en C se fait en 10 lignes en Java, ce n'est pas un drame.

Certes, mais ma remarque est au moins autant sur le fait qu'il n'y ait pas de typage fort que sur la concision... Et je suis loin de dire que la version C des enums est satisfaisante, puisqu'elle n'a pas de typage fort non plus. En revanche la solution de C# et du JDK1.5 me paraissent pas mal...
Faut jsute asvoir si on veut faire du haut niveau ou pas. Si tu ne veux aps faire du haut niveau, code en C ou en assembleur, et ne viens pas nous f***** *** *** *** avec du C#, un langage dont on ne sait meme pas où il place ses priorites.

confus^42 De quoi tu parles ? Quel est le rapport entre C/asm et C# ? Où est-ce que j'ai dit que je voulais pas faire du haut niveau ? Au contraire, je trouve ton hack avec des int bcp trop bas niveau...
N'importe quoi Au contraire, c'est pas vraiment une critique sur Java puisque l'absence d'énum a été corrigée. C'est plutôt une critique sur le fait que tu dises que les énum sont inutiles...
On se comprend mal. Les énumérations peuvent etre utiles. Mais les coder avec des entiers apporte au moins autant d'emmerdes que d'avantages. Faut juste l'assumer derrière.

confus^43 Bah oui que ça apporte des emmerdes, de les coder avec des entiers... Et je vois pas quel avantage ça apporterait confus
Bref, on n'est pas d'accord sur des points qui n'ont rien à voir avec le schmilblick de départ. smile

Je comprends pas trop ta position ni ce que tu me reproches, m'enfin bon...



Ah tiens un truc que j'ai oublié : les "final" ne sont pas des vraies constantes en Java, donc tu te tapes un énorme overhead parce qu'il faut les stocker dans chaque instance de la classe lolpaf

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

35

Comment tu traduirais mon exemple avec ta méthode d'indexation ?

Utilises une Hashmap avec comme clé d'entrée la valeur de ta variable. Enfin, tu utilsies lavariable elle-même, pas besoin de connaitre sa valeur.
1. pour le debug, l'export text est parfois indispensable

Oui, mais tu peux afficher la valeur de ta variable plutot que d'associer une string différente à chaque variable. Tu dis "je suis dans le mode 1" et point barre. Ensuite, tu associes ca avec des points d'arret.
2. même en dehors du debug, dans mon exemple de désassembleur, ça fait bel et bien partie du fonctionnel de l'appli de sortir les noms des opcodes...

L'introspection de Java permet de faire référence au nom des variables. Ca ne te serait pas utile ?
En revanche la solution de C# et du JDK1.5 me paraissent pas mal

Oui, d'accord.
^42 De quoi tu parles ? Quel est le rapport entre C/asm et C# ? Où est-ce que j'ai dit que je voulais pas faire du haut niveau ? Au contraire, je trouve ton hack avec des int bcp trop bas niveau...

Toi, de quoi parles-tu. Qu'appelles tu "mon hack avec des int" ?

3. idem si tu veux sérialiser des trucs (en XML par exemple) dans un format qui ne dépend pas de la version de ton logiciel... passer par des représentations textuelles est bien plus robuste que de passer par des représentations numériques ^^

Je vois pas ...
^43 Bah oui que ça apporte des emmerdes, de les coder avec des entiers... Et je vois pas quel avantage ça apporterait

Je ne suis pas pour cette méthode mais elle permet au moins d'utiliser les variables dans des switch, de les utiliser en index d'array, de les wrapper facilement, d'etre cumulatives si tu utilises de l'octal, de l'hexal, ou du base 10, de faire des comparaisons rapides et courtes à coder, donc de gagner en nb de lignes, en taille fichier, et en perf. Que des avantages bas niveau, quoi hehe
Je comprends pas trop ta position ni ce que tu me reproches, m'enfin bon...

Je te reproches rien.
Ma position, c'est que le développeur doit faire un choix tranché entre de la perf ou du haut-niveau. Et dans un cas, il n'a pas à utiliser des constantes entières.
les "final" ne sont pas des vraies constantes en Java

Non.
Tiens, j'ai ca sous la main : http://www-106.ibm.com/developerworks/java/library/j-jtp1029.html
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

36

smeet
:
Comment tu traduirais mon exemple avec ta méthode d'indexation ?
Utilises une Hashmap avec comme clé d'entrée la valeur de ta variable. Enfin, tu utilsies lavariable elle-même, pas besoin de connaitre sa valeur.

mdr top
Alors je veux bien voir combien de lignes prend le résultat, ça doit être assez sympa happy
1. pour le debug, l'export text est parfois indispensable
Oui, mais tu peux afficher la valeur de ta variable plutot que d'associer une string différente à chaque variable. Tu dis "je suis dans le mode 1" et point barre. Ensuite, tu associes ca avec des points d'arret.

Bah oué mais si par exemple tu dois regarder du code assembleur qui ressemble à "17.4 (42,3) (27,2)", c'est pas franchement pratique happy
2. même en dehors du debug, dans mon exemple de désassembleur, ça fait bel et bien partie du fonctionnel de l'appli de sortir les noms des opcodes...
L'introspection de Java permet de faire référence au nom des variables. Ca ne te serait pas utile ?

Si, ça peut se faire aussi, mais c un peu lourd et ça oblige à n'avoir les variables que dans une classe...
En revanche la solution de C# et du JDK1.5 me paraissent pas mal
Oui, d'accord.

Ouuuuuuuf !
confus^42 De quoi tu parles ? Quel est le rapport entre C/asm et C# ? Où est-ce que j'ai dit que je voulais pas faire du haut niveau ? Au contraire, je trouve ton hack avec des int bcp trop bas niveau...
Toi, de quoi parles-tu. Qu'appelles tu "mon hack avec des int" ?

Bah au lieu de passer par un type spécifique pour ton énumérations, tu déclares les membres comme étant des int, et tu as un typage bcp moins sûr...
3. idem si tu veux sérialiser des trucs (en XML par exemple) dans un format qui ne dépend pas de la version de ton logiciel... passer par des représentations textuelles est bien plus robuste que de passer par des représentations numériques ^^
Je vois pas ...

Bah si tu veux sérialiser tes données intermédiaires tout en laissant la possibilité de rajouter des éléments à ton énum par la suite, seul un truc texte va assurer la compatibilité entre les versions...
confus^43 Bah oui que ça apporte des emmerdes, de les coder avec des entiers... Et je vois pas quel avantage ça apporterait

Je ne suis pas pour cette méthode mais elle permet au moins d'utiliser les variables dans des switch, de les utiliser en index d'array, de les wrapper facilement, d'etre cumulatives si tu utilises de l'octal, de l'hexal, ou du base 10, de faire des comparaisons rapides et courtes à coder, donc de gagner en nb de lignes, en taille fichier, et en perf. Que des avantages bas niveau, quoi hehe

Ah, c'était donc ça... Eh bien en tout cas en C#, les enums sont aussi convertibles en ints, donc tu peux en faire ce que tu veux si tu en as besoin (sauf que dans 90% des cas c pas nécessaire, puisque tu peux ajouter un entier, faire un OR ou un AND de 2 élts de l'enum, ou encore comparer 2 élts entre eux).
Je comprends pas trop ta position ni ce que tu me reproches, m'enfin bon...

Je te reproches rien. Ma position, c'est que le développeur doit faire un choix tranché entre de la perf ou du haut-niveau. Et dans un cas, il n'a pas à utiliser des constantes entières.

Ben moi je vois que c ça dans les deux cas :
- pour la perf, le "final" du java fait que les constantes entières sont bien moins efficaces
- pour le haut niveau, les constantes entières ont moins d'information de type

Donc je vois vraiment pas où il y aurait un compromis ? (non non, pas là)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

37

mdr Alors je veux bien voir combien de lignes prend le résultat, ça doit être assez sympa


Hashmap map = new HashMap(taille);
map.put(new Integer (MODE_ADDPOINT), "MODE_ADDPOINT");
map.put(new Integer (MODE_INSERTPOINT), "MODE_INSERTPOINT");
map.put(new Integer (MODE_INSERTPOINT), "MODE_INSERTPOINT");
System.out.println("Je suis en mode "+ (String)map.get(new Integer(mode)));

Alors, c'est long ? hehe
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

38

smeet
:
mdr Alors je veux bien voir combien de lignes prend le résultat, ça doit être assez sympa


Hashmap map = new HashMap(taille);
map.put(new Integer (MODE_ADDPOINT), "MODE_ADDPOINT");
map.put(new Integer (MODE_INSERTPOINT), "MODE_INSERTPOINT");
map.put(new Integer (MODE_INSERTPOINT), "MODE_INSERTPOINT");
System.out.println("Je suis en mode "+ (String)map.get(new Integer(mode)));

Alors, c'est long ? hehe

T'en as oublié un, et oui c long, ça oblige à changer 3x chaque nouvel identifiant... Si t'en as plein comme ça peut vite devenir lourd ^^

Et le reste ? tongue

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

39

Bah oué mais si par exemple tu dois regarder du code assembleur qui ressemble à "17.4 (42,3) (27,2)", c'est pas franchement pratique

Tu marques un point. Mais y'a mieux pour faire du debug, non. Genre, ... un debuggueur...
Bah au lieu de passer par un type spécifique pour ton énumérations, tu déclares les membres comme étant des int, et tu as un typage bcp moins sûr...

Pourquoi "tu". Moi j'ai rien fait.
Bah si tu veux sérialiser tes données intermédiaires tout en laissant la possibilité de rajouter des éléments à ton énum par la suite, seul un truc texte va assurer la compatibilité entre les versions...

Ou des objets différents. Sinon, y'a moyen de se debrouiller avec des int. Ce serait encore du bricolage. Mais je saisis ma lce que tu veux dire apr "compatibiltié entre les versions".
Ben moi je vois que c ça dans les deux cas :
- pour la perf, le "final" du java fait que les constantes entières sont bien moins efficaces
- pour le haut niveau, les constantes entières ont moins d'information de type
Donc je vois vraiment pas où il y aurait un compromis ? (non non, pas là)

Pourquoi tu viens me parler de final, maintenant ? confus Et de quel compromi parles tu ? Je suis perdu, moi...
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

40

T'en as oublié un,

Mouais.

et oui c long,

Ah bon ? hum La j'y peux plus rien.
ça oblige à changer 3x chaque nouvel identifiant...

Dans quel cas tu aurais à changer deds identifiants ? Et pourquoi trois fois ?
LE refactoring des ID te permet de changer en un clic ton identifiant.
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

41

smeet
:
Bah oué mais si par exemple tu dois regarder du code assembleur qui ressemble à "17.4 (42,3) (27,2)", c'est pas franchement pratique
Tu marques un point. Mais y'a mieux pour faire du debug, non. Genre, ... un debuggueur...

Sauf que ton debugger ne va pas être plus explicite, sauf si justement il sait qu'il a affaire à un type énuméré...
Bah au lieu de passer par un type spécifique pour ton énumérations, tu déclares les membres comme étant des int, et tu as un typage bcp moins sûr...
Pourquoi "tu". Moi j'ai rien fait.

Façon de parler ^^
Bah si tu veux sérialiser tes données intermédiaires tout en laissant la possibilité de rajouter des éléments à ton énum par la suite, seul un truc texte va assurer la compatibilité entre les versions...
Ou des objets différents. Sinon, y'a moyen de se debrouiller avec des int. Ce serait encore du bricolage. Mais je saisis ma lce que tu veux dire apr "compatibiltié entre les versions".

Première version :
public final int MODE_POINT=0;
public final int MODE_LINE=1;

Deuxième version :
public final int MODE_POINT=0;
public final int MODE_EXTENDED_POINT=1;
public final int MODE_LINE=2;

L'idée serait de pouvoir lire les fichiers créés avec la première version tout en s'assurant que MODE_LINE reste bien MODE_LINE...
Ben moi je vois que c ça dans les deux cas :
- pour la perf, le "final" du java fait que les constantes entières sont bien moins efficaces
- pour le haut niveau, les constantes entières ont moins d'information de type
Donc je vois vraiment pas où il y aurait un compromis ?

Pourquoi tu viens me parler de final, maintenant ? confus Et de quel compromi parles tu ? Je suis perdu, moi...

Je te cite :
Ma position, c'est que le développeur doit faire un choix tranché entre de la perf ou du haut-niveau. Et dans un cas, il n'a pas à utiliser des constantes entières.

Moi je ne vois pas de raison d'utiliser des constantes entières, parce que c mauvais d'un pt de vue bas niveau et d'un pt de vue haut niveau...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

42

c'est vrai que le final ça suxe
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

43

smeet
:
et oui c long,

Ah bon ? hum La j'y peux plus rien.

Bah, tt dépend de la quantité d'enum qu'il y a. En tout cas c incomparablement plus long qu'en C#... (une ligne de définition de l'énum, et après on peut se servir de n'importe quelle variable de ce type "comme si c'était une chaîne")
ça oblige à changer 3x chaque nouvel identifiant...

Dans quel cas tu aurais à changer deds identifiants ? Et pourquoi trois fois ?
LE refactoring des ID te permet de changer en un clic ton identifiant.

Pas en changer, justement, en rajouter un... Je voulais dire "changer à 3 endroits différents" ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

44

Moi je ne vois pas de raison d'utiliser des constantes entières, parce que c mauvais d'un pt de vue bas niveau et d'un pt de vue haut niveau...

Pourquoi c'ets mauvais en bas niveau, alors, je te suis pas ? A cause du "final" ? Mais le final n'est pas obligatoire si tu n'en veux pas. Tu fais une variable private avec un getter et pas de setter, tout simplement. Et tu met le getter en final static.
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

45

Mouais, et le getter static sera inliné par la JVM ? J'y crois pas trop, mais bon...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

46

A priori je dirais oui, masi je n'en suis pas sur et ca doit dépendre de la JVM. Enfin, quand tu dis que le final fait perdre de la performance sur les int; et bien autant ne pas mettre de final et point barre. Apres, si tu modifies tes constantes, t'as l'air malin, mais ce sera rapide hehe
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

47

Ah non, le final ne change rien par rapport à un truc non-final, mais c moins efficace qu'un #define ou qu'un enum{}...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

48

Pollux :
Première version :
public final int MODE_POINT=0;
public final int MODE_LINE=1;

Deuxième version :
public final int MODE_POINT=0;
public final int MODE_EXTENDED_POINT=1;
public final int MODE_LINE=2;

Ben, c'est ta faute si tu rajoutes des valeurs en plein milieu d'une enum...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

49

Sauf que c souvent utile d'avoir une enum pas trop bordélique... Par exemple pour la liste des opcodes je regroupe les opérations de saut, les dbxx, etc...
Evidemment c possible de n'ajouter qu'à la fin, mais ça rajoute une contrainte supplémentaire et c bcp moins maintenable... C bien plus propre de passer par une représentation qui ne dépend pas de l'ordre dans lequel ça a été implémenté embarrassed

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

50

Pollux
: Sauf que c souvent utile d'avoir une enum pas trop bordélique... Par exemple pour la liste des opcodes je regroupe les opérations de saut, les dbxx, etc...

As-tu déjà vu un processeur dont les opcodes changent avec la version de l'assembleur? grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

51

Je m'y attendais, à celle-là roll Tu sais, ça arrive à des gens de ne pas rester bloqué sur des technologies d'il y a 20 ans ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

52

A priori, tu n'as pas à te préoccuper de la valeur des constantes. Si tu veux qu'il y ait un ordre, tu implémentes toi même la méthode compareTo (standard Java pour le Visitor Pattern).
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

53

Pollux :
Je m'y attendais, à celle-là roll Tu sais, ça arrive à des gens de ne pas rester bloqué sur des technologies d'il y a 20 ans ^^

rotfl

Le fait que les opcodes sont codés en binaires dans le langage machine et ne changent pas dans une même famille de processeurs, c'est "des technologies d'il y a 20 ans"??? Alors, pourquoi:
* tous les processeurs fonctionnent comme ça (même l'IA-64)?
* les bytecodes Java et MSIL fonctionnent aussi comme ça?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

54

Il arrive tout de même qu'une technologie évolue en n'assurant aucune compatibiltié avc les anciennes versions, parce qu'elle a été recodée presque intégralement. (comment ca c'est hors sujet?)
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.

55

Kevin Kofler
:
Pollux :
Je m'y attendais, à celle-là roll Tu sais, ça arrive à des gens de ne pas rester bloqué sur des technologies d'il y a 20 ans ^^

rotfl

Le fait que les opcodes sont codés en binaires dans le langage machine et ne changent pas dans une même famille de processeurs, c'est "des technologies d'il y a 20 ans"??? Alors, pourquoi:
* tous les processeurs fonctionnent comme ça (même l'IA-64)?
* les bytecodes Java et MSIL fonctionnent aussi comme ça?

Bon, alors je la refais parce que tu n'as pas l'air d'avoir compris : ça arrive à des gens de bosser sur des structures de données en constantes évolution et qui ne sont pas des trucs standardisés qui n'évoluent pas pdt 20 ans (i.e. toutes les structures de données ne sont pas des listes d'opcodes neutral)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

56

smeet :
A priori, tu n'as pas à te préoccuper de la valeur des constantes. Si tu veux qu'il y ait un ordre, tu implémentes toi même la méthode compareTo (standard Java pour le Visitor Pattern).

Euh mais nan, ça peut devenir assez vite lourd... cf par exemple une liste d'opcodes (pour rester dans le genre) pour un langage intermédiaire (donc bcp plus évolutif qu'une liste d'opcode pour un processeur donné), si t'as une 50aine d'instructions !=...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)