Vector<Integer> numbers = new Vector<Integer>(10, 10);
Object object = new String("toto");
numbers.add((Integer) object);qui levera un CastClassException à l'exécution, parce qu'il y
a bien vérification dynamique.
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException. (Et ici, aussi,
l'exception a lieu en dehors de l'objet Vector<Integer>.)
Je remarque aussi qu'une fois de plus, ils n'ont pas appris des
erreurs du C++.
Ça fait longtemps, par exemple, qu'on sait que
le choit de <...> comme syntaxe n'est pas des plus heureux.
En effet. Ça, je ne savais pas.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule, et ont ignoré
tout ce qui était intéressant, comme l'idée que le template
lui-même n'est pas un type, mais n'en devient un que quand il
est instantié.
Vector<Integer> numbers = new Vector<Integer>(10, 10);
Object object = new String("toto");
numbers.add((Integer) object);
qui levera un CastClassException à l'exécution, parce qu'il y
a bien vérification dynamique.
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException. (Et ici, aussi,
l'exception a lieu en dehors de l'objet Vector<Integer>.)
Je remarque aussi qu'une fois de plus, ils n'ont pas appris des
erreurs du C++.
Ça fait longtemps, par exemple, qu'on sait que
le choit de <...> comme syntaxe n'est pas des plus heureux.
En effet. Ça, je ne savais pas.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule, et ont ignoré
tout ce qui était intéressant, comme l'idée que le template
lui-même n'est pas un type, mais n'en devient un que quand il
est instantié.
Vector<Integer> numbers = new Vector<Integer>(10, 10);
Object object = new String("toto");
numbers.add((Integer) object);qui levera un CastClassException à l'exécution, parce qu'il y
a bien vérification dynamique.
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException. (Et ici, aussi,
l'exception a lieu en dehors de l'objet Vector<Integer>.)
Je remarque aussi qu'une fois de plus, ils n'ont pas appris des
erreurs du C++.
Ça fait longtemps, par exemple, qu'on sait que
le choit de <...> comme syntaxe n'est pas des plus heureux.
En effet. Ça, je ne savais pas.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule, et ont ignoré
tout ce qui était intéressant, comme l'idée que le template
lui-même n'est pas un type, mais n'en devient un que quand il
est instantié.
Non sommes bien d'accord sur ce point.
Non sommes bien d'accord sur ce point.
Non sommes bien d'accord sur ce point.
Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
"kanze" writes:Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Je n'en connais pas (ni Eiffel, ni Ada, ni Modula-3, ni --
pour autant que je le sache -- la famille ML; tous permettent
une implémentation partagée, bien qu'en Ada95 ce soit
pénible). Je serais curieux de voir un autre langage où c'est
le cas.
"kanze" <kanze@gabi-soft.fr> writes:
Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Je n'en connais pas (ni Eiffel, ni Ada, ni Modula-3, ni --
pour autant que je le sache -- la famille ML; tous permettent
une implémentation partagée, bien qu'en Ada95 ce soit
pénible). Je serais curieux de voir un autre langage où c'est
le cas.
"kanze" writes:Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Je n'en connais pas (ni Eiffel, ni Ada, ni Modula-3, ni --
pour autant que je le sache -- la famille ML; tous permettent
une implémentation partagée, bien qu'en Ada95 ce soit
pénible). Je serais curieux de voir un autre langage où c'est
le cas.
Le « JIT >>, c'est un nom commercial, publicitaire.
Apparamment, Sun ne l'a pas protégé comme marque déposée, comme
je croyais, mais c'est bien une expression du marketing, qui ne
veut rien dire sur le plan technique.
qui levera un CastClassException à l'exécution, parce qu'il y
a bien vérification dynamique.
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException.
Et ici, l'exception a lieu en dehors de l'objet Vector<Integer>.
Je remarque aussi qu'une fois de plus, ils n'ont pas appris des
erreurs du C++. Ça fait longtemps, par exemple, qu'on sait que
le choit de <...> comme syntaxe n'est pas des plus heureux.
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule
et ont ignoré tout ce qui était intéressant,comme l'idée
que le template lui-même n'est pas un type, mais n'en
devient un que quand il est instantié.
je considère même que cette forme de spécialisation est plus
avantageuse du fait même qu'elle tire parti de l'héritage.
Ça ne fait pas la même chose. Quand il convient, on peut faire
la même chose en C++, à condition que la classe de base
l'autorise.
Ici, évidemment, je suppose qu'il s'agit d'un
exemple d'une possibilité, pris un peu au hazard, et non d'un
exemple réel d'une chose qu'on voudrait faire.
une chose qu'on voudrait faire. Parce qu'en ce qui me concerne
[..] Et qu'évidemment, dans une classe Vector bien conçue en
Java, get serait final.
Le « JIT >>, c'est un nom commercial, publicitaire.
Apparamment, Sun ne l'a pas protégé comme marque déposée, comme
je croyais, mais c'est bien une expression du marketing, qui ne
veut rien dire sur le plan technique.
qui levera un CastClassException à l'exécution, parce qu'il y
a bien vérification dynamique.
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException.
Et ici, l'exception a lieu en dehors de l'objet Vector<Integer>.
Je remarque aussi qu'une fois de plus, ils n'ont pas appris des
erreurs du C++. Ça fait longtemps, par exemple, qu'on sait que
le choit de <...> comme syntaxe n'est pas des plus heureux.
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule
et ont ignoré tout ce qui était intéressant,comme l'idée
que le template lui-même n'est pas un type, mais n'en
devient un que quand il est instantié.
je considère même que cette forme de spécialisation est plus
avantageuse du fait même qu'elle tire parti de l'héritage.
Ça ne fait pas la même chose. Quand il convient, on peut faire
la même chose en C++, à condition que la classe de base
l'autorise.
Ici, évidemment, je suppose qu'il s'agit d'un
exemple d'une possibilité, pris un peu au hazard, et non d'un
exemple réel d'une chose qu'on voudrait faire.
une chose qu'on voudrait faire. Parce qu'en ce qui me concerne
[..] Et qu'évidemment, dans une classe Vector bien conçue en
Java, get serait final.
Le « JIT >>, c'est un nom commercial, publicitaire.
Apparamment, Sun ne l'a pas protégé comme marque déposée, comme
je croyais, mais c'est bien une expression du marketing, qui ne
veut rien dire sur le plan technique.
qui levera un CastClassException à l'exécution, parce qu'il y
a bien vérification dynamique.
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException.
Et ici, l'exception a lieu en dehors de l'objet Vector<Integer>.
Je remarque aussi qu'une fois de plus, ils n'ont pas appris des
erreurs du C++. Ça fait longtemps, par exemple, qu'on sait que
le choit de <...> comme syntaxe n'est pas des plus heureux.
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule
et ont ignoré tout ce qui était intéressant,comme l'idée
que le template lui-même n'est pas un type, mais n'en
devient un que quand il est instantié.
je considère même que cette forme de spécialisation est plus
avantageuse du fait même qu'elle tire parti de l'héritage.
Ça ne fait pas la même chose. Quand il convient, on peut faire
la même chose en C++, à condition que la classe de base
l'autorise.
Ici, évidemment, je suppose qu'il s'agit d'un
exemple d'une possibilité, pris un peu au hazard, et non d'un
exemple réel d'une chose qu'on voudrait faire.
une chose qu'on voudrait faire. Parce qu'en ce qui me concerne
[..] Et qu'évidemment, dans une classe Vector bien conçue en
Java, get serait final.
Jean-Marc Bourguet wrote:"kanze" writes:Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Je n'en connais pas (ni Eiffel, ni Ada, ni Modula-3, ni --
pour autant que je le sache -- la famille ML; tous permettent
une implémentation partagée, bien qu'en Ada95 ce soit
pénible). Je serais curieux de voir un autre langage où c'est
le cas.
Je n'en connais pas non plus, mais je sais qu'en général,
Stroustrup a préféré adopter les idées éprouvées que de se
lancer dans l'expérimentation spéculative. Et il n'y a
certainement rien dans le concept qui le rendrait impossible
dans d'autres langages.
Jean-Marc Bourguet wrote:
"kanze" <kanze@gabi-soft.fr> writes:
Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Je n'en connais pas (ni Eiffel, ni Ada, ni Modula-3, ni --
pour autant que je le sache -- la famille ML; tous permettent
une implémentation partagée, bien qu'en Ada95 ce soit
pénible). Je serais curieux de voir un autre langage où c'est
le cas.
Je n'en connais pas non plus, mais je sais qu'en général,
Stroustrup a préféré adopter les idées éprouvées que de se
lancer dans l'expérimentation spéculative. Et il n'y a
certainement rien dans le concept qui le rendrait impossible
dans d'autres langages.
Jean-Marc Bourguet wrote:"kanze" writes:Bref les génériques en java c'est plus de l'ordre du sucre
syntaxique qu'autre chose et on est bien loin de C++
Certes, mais pour d'autres raisons -- je ne crois pas qu'il
y a des paramètres non-type, ni des spécialisations
explicites, par exemple.
"spécialisation explicite" est un concept, paradigme, ..., C++
donc en effet on le rencontre en C++
C'est un concept qu'on retrouve effectivement en C++. Mais c'est
un concept assez général, qu'on pourrait aussi rétrouver dans
d'autres langages (peut-être sous un autre nom). Ça
m'étonnerait, d'ailleurs, qu'il ne soit pas présent dans
d'autres langages.
Je n'en connais pas (ni Eiffel, ni Ada, ni Modula-3, ni --
pour autant que je le sache -- la famille ML; tous permettent
une implémentation partagée, bien qu'en Ada95 ce soit
pénible). Je serais curieux de voir un autre langage où c'est
le cas.
Je n'en connais pas non plus, mais je sais qu'en général,
Stroustrup a préféré adopter les idées éprouvées que de se
lancer dans l'expérimentation spéculative. Et il n'y a
certainement rien dans le concept qui le rendrait impossible
dans d'autres langages.
Vector<Integer> numbers = new Vector<Integer>(10, 10);
Object object = new String("toto");
numbers.add((Integer) object);
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException. (Et ici, aussi,
l'exception a lieu en dehors de l'objet Vector<Integer>.)
Avant de parler optimisation (ce que de toutes façon le compilo ne fera
pas ;) tu trouves normal que ce code soit compilé. Tu parles d'une
généricité. Tu dit vector de Integer, tu lui balances une Steing et il
trouve ça normal....
Vector<Integer> numbers = new Vector<Integer>(10, 10);
Object object = new String("toto");
numbers.add((Integer) object);
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException. (Et ici, aussi,
l'exception a lieu en dehors de l'objet Vector<Integer>.)
Avant de parler optimisation (ce que de toutes façon le compilo ne fera
pas ;) tu trouves normal que ce code soit compilé. Tu parles d'une
généricité. Tu dit vector de Integer, tu lui balances une Steing et il
trouve ça normal....
Vector<Integer> numbers = new Vector<Integer>(10, 10);
Object object = new String("toto");
numbers.add((Integer) object);
C'est peu problable qu'on essaie d'optimiser du code qui lève
des exceptions. Surtout des RuntimeException. (Et ici, aussi,
l'exception a lieu en dehors de l'objet Vector<Integer>.)
Avant de parler optimisation (ce que de toutes façon le compilo ne fera
pas ;) tu trouves normal que ce code soit compilé. Tu parles d'une
généricité. Tu dit vector de Integer, tu lui balances une Steing et il
trouve ça normal....
Le « JIT >>, c'est un nom commercial, publicitaire.
non!Apparamment, Sun ne l'a pas protégé comme marque déposée, comme
je croyais, mais c'est bien une expression du marketing, qui ne
veut rien dire sur le plan technique.
"just in time", "compiler" ne veulent rien dire "techniquement" ??
tu nous fais pas un blocage là ?
Sun a introduit le 'JIT compiler' en 1997 (Juin 97) avec la version
1.1.3 du JDK et JRE; il était "commercialement" présenté comme le "Java
Performance Pack" (JPP), disponible alors que sous Win32.
A partir de la 1.1.6 (Mai 98), le JPP est remplacé par un simple add-on
("jit update") sous la forme d'une librarie (dll ou .so); à partir de la
1.1.7 (Aout 98) cette librairie est en standard dans le JDK ou JRE.
si tu veux signifier par "expression du marketting" le fait que le
marketting Sun devait faire face à cette époque à de nombreux griefs
concernant les performances d'une appli. Java, alors soit le JPP était
une blabla commercial ... basé sur un élément technique nommé JIT
compiler, qui - sans parler (ne les connaissant pas) des langages
expérimentaux - n'existait (ce JIT) nul part ailleurs.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule
comment ????? tu es sur d'avoir pratiqué ?
Le « JIT >>, c'est un nom commercial, publicitaire.
non!
Apparamment, Sun ne l'a pas protégé comme marque déposée, comme
je croyais, mais c'est bien une expression du marketing, qui ne
veut rien dire sur le plan technique.
"just in time", "compiler" ne veulent rien dire "techniquement" ??
tu nous fais pas un blocage là ?
Sun a introduit le 'JIT compiler' en 1997 (Juin 97) avec la version
1.1.3 du JDK et JRE; il était "commercialement" présenté comme le "Java
Performance Pack" (JPP), disponible alors que sous Win32.
A partir de la 1.1.6 (Mai 98), le JPP est remplacé par un simple add-on
("jit update") sous la forme d'une librarie (dll ou .so); à partir de la
1.1.7 (Aout 98) cette librairie est en standard dans le JDK ou JRE.
si tu veux signifier par "expression du marketting" le fait que le
marketting Sun devait faire face à cette époque à de nombreux griefs
concernant les performances d'une appli. Java, alors soit le JPP était
une blabla commercial ... basé sur un élément technique nommé JIT
compiler, qui - sans parler (ne les connaissant pas) des langages
expérimentaux - n'existait (ce JIT) nul part ailleurs.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule
comment ????? tu es sur d'avoir pratiqué ?
Le « JIT >>, c'est un nom commercial, publicitaire.
non!Apparamment, Sun ne l'a pas protégé comme marque déposée, comme
je croyais, mais c'est bien une expression du marketing, qui ne
veut rien dire sur le plan technique.
"just in time", "compiler" ne veulent rien dire "techniquement" ??
tu nous fais pas un blocage là ?
Sun a introduit le 'JIT compiler' en 1997 (Juin 97) avec la version
1.1.3 du JDK et JRE; il était "commercialement" présenté comme le "Java
Performance Pack" (JPP), disponible alors que sous Win32.
A partir de la 1.1.6 (Mai 98), le JPP est remplacé par un simple add-on
("jit update") sous la forme d'une librarie (dll ou .so); à partir de la
1.1.7 (Aout 98) cette librairie est en standard dans le JDK ou JRE.
si tu veux signifier par "expression du marketting" le fait que le
marketting Sun devait faire face à cette époque à de nombreux griefs
concernant les performances d'une appli. Java, alors soit le JPP était
une blabla commercial ... basé sur un élément technique nommé JIT
compiler, qui - sans parler (ne les connaissant pas) des langages
expérimentaux - n'existait (ce JIT) nul part ailleurs.
Si j'ai bien compris, ils ont adopté tout ce qui était mauvais
dans les templates C++ : la syntaxe <...> et la convention que
le paramètre soit un seul caractère majuscule
comment ????? tu es sur d'avoir pratiqué ?
Tu es un vrai historien du JIT toi :-)
Tu es un vrai historien du JIT toi :-)
Tu es un vrai historien du JIT toi :-)