que pensez-vous des nouvelles spécification de java 1.5 - Java - Programmation
Marsh Posté le 14-06-2003 à 22:09:21
c'est tout ce que j'ai à dire (quoi qu'il manque encore la surcharge d'operateurs à mon gout)
Marsh Posté le 14-06-2003 à 22:47:36
wait & see surtout pour la généricité
pour l'autoboxing, c'est pas trop tot
Marsh Posté le 15-06-2003 à 01:20:05
Moi j'ai mon prof de compilation qui développe actuellement le javac 1.5 et il nous en parle de temps en temps, et je dois dire que la généricité par exemple ça va être bien puissant, surtout comme il nous en parle et avec ce que j'ai pu en voir avec d'autres langages !!!
Marsh Posté le 15-06-2003 à 02:21:32
ça vient d'où le terme "autoboxing" et "boxing conversion" ?
Marsh Posté le 15-06-2003 à 14:58:07
ReplyMarsh Posté le 15-06-2003 à 19:02:55
TBone a écrit : ça vient d'où le terme "autoboxing" et "boxing conversion" ? |
L'autoboxing consiste à encapsuler automatiquement un type primitif dans un objet. Ca permet de manipuler ce type primitif par référence.
Exemple (en C#, je connais pas Java) :
Code :
|
Je voudrais pas casser l'ambiance, mais quand je vois les spefs de Java 1.5, je peux pas m'empécher de penser que la grande majorité des ajouts est déjà présente dans C#...
Et pourquoi Sun n'a pas fait le boulot jusqu'au bout, en ajoutant des trucs tels que l'ordre ReadOnly, les indexeurs, etc... ?
Marsh Posté le 15-06-2003 à 19:08:41
Harkonnen a écrit : |
L'exemple est à mon avis plus parlant (et c'est le cas ou on les utilisera) en montrant par rapport aux wrappers, comme java.lang.Integer par rapport à int.
Marsh Posté le 15-06-2003 à 19:08:42
ReplyMarsh Posté le 15-06-2003 à 19:16:02
Harkonnen a écrit :
|
C# et les trucs .NET c'est bien joli mais ça tourne que sur du microsoft (et me parlez pas de MONO qui n'a aucun avenir)
Marsh Posté le 15-06-2003 à 19:47:38
Harkonnen a écrit : |
Euh, t'as oublié de faire login sous Serial Coder ou tu trolles réellement ? Passke ce genre de troll, venant de la part d'un modo...
Marsh Posté le 15-06-2003 à 20:00:28
kadreg a écrit : |
Exemple : une méthode Test() prend une référence à un objet en paramètre. On souhaite appeler cette méthode en passant l'int 5 en paramètre :
En Java :
Code :
|
=> Obligation d'encapsuler l'int 5 dans un objet de type java.lang.Integer
En C# :
Code :
|
L'int 5 est automatiquement converti en objet lors de l'appel à la méthode.
Marsh Posté le 15-06-2003 à 20:00:55
the real moins moins a écrit : oui mais c# c'est pourri |
Certainement pas ! Essaie, et tu verras que c'est très bien.
Marsh Posté le 15-06-2003 à 20:01:40
noldor a écrit : C# et les trucs .NET c'est bien joli mais ça tourne que sur du microsoft (et me parlez pas de MONO qui n'a aucun avenir) |
.NET est présent sous FreeBSD... Et pourquoi MONO n'aurait aucun avenir ?
Marsh Posté le 15-06-2003 à 20:16:53
Taiche a écrit : |
Autoboxing => présent dans C#
Enumérations => présent dans C#
Mot clé foreach => présent dans C#
etc...
Mot clé ReadOnly dans Java ? Non.
Indexeurs ? Non.
Surcharge d'opérateurs ? Non.
Délégués ? Non.
etc...
Il n'y a aucun troll : à part la généricité, les ajouts de Java 1.5 sont très frileux. Les imports statiques ne s'imposaient pas : à mon avis ça rend le code moins lisible. Quand on fait de l'objet, il faut avoir une certaine rigueur dans l'écriture du code.
Le seul truc que je voudrais voir dans C# est le mot clé Throws pour les exceptions. Java garde une longueur d'avance à ce niveau là.
La généricité est prévue pour la prochaine version de C#.
Désolé de prendre parti pour Microsoft, mais je trouve que C# a encore bien de l'avance sur Java.
Marsh Posté le 15-06-2003 à 20:17:07
tin harko c'est quoi ces gros troll là ???
sinon, ce sont tu parles n'est pas valable pour Java : l'autoboxing ne permettra pas de transformer les int en Object. Ca ne concernera que les types primitifs et leur wrapper correspondant :
int <-> Integer
long <-> Long
etc ...
Ce que j'ai pu tirer de JavaOne c'est que le passage à a JDK 1.5 était vu comme la modification la plus importante faite au langage java depuis sa naissance.
Le but est avant tout de simplifier le développement.
Par contre, pour la généricité, je dois avoué que j'ai un peu peur qu'il y ait des problèmes de compatibilité avec les versions antérieur du JDK ...
ensuite pour ta remarque harko : parler des performance du JDK 1.5 n'a pas de sens. Déjà parce que le 1.5 n'est pas sortit et ensuite parce que la JVM restera la même que la 1.4 ...
Marsh Posté le 15-06-2003 à 20:17:52
++Taz a écrit : par ce que le langage est détenu par microsoft |
Parce que Java n'est pas détenu par Sun peut être ?
Marsh Posté le 15-06-2003 à 20:17:55
Harkonnen a écrit : |
Parcequ'ils vont passer leur temps à essayer de courir après les fonctionnalités (et les implémenter correctement) au fur et à mesure qu'elles arriveront dans .NET. Il suffit de regarder wine, c'est le problème qu'ils ont depuis qu'ils ont commencé.
Marsh Posté le 15-06-2003 à 20:19:45
benou a écrit : |
Je pense que ca ne posera pas de problème si les conteneurs génériques utilisent Object par défaut. Par exemple, le Vector générique est paramétré par défaut par java.lang.Object, retrouvant le comportement précédent.
Marsh Posté le 15-06-2003 à 20:21:27
benou a écrit : tin harko c'est quoi ces gros troll là ??? |
Il n'y a pas de troll
Je trouve que Sun a pas fini le boulot s'ils voulaient repasser devant C#, c'est tout.
benou a écrit : |
Qu'est ce que je disais...
benou a écrit : |
Je n'ai parlé nulle part des performances
Marsh Posté le 15-06-2003 à 20:33:29
pour être plus générale :
la généricité c'est bien !!! mais il va y avoir un gros travail pour que toutes les APIs existantes l'utilisent ... mais bon, pour ses programmes à soit, c'est sympa !
les enumérations c'est bien aussi ! J'étais un peu septique sur ce trucs là, mais en fait c'est cool. C'est juste un raccourci d'écriture bien pratique
les static Imports c'est sympa, mais ca rendra un peu plus chiante la lecture d'un code inconnu puisque lors de l'appel d'une méthode static (ou d'un attribut), la méthode pourra se trouver soit dans la classe courrante, soit dans une des classes importées ...
les métadata ca peut être sympa, reste à voir comment ca va être utilisé. En tout cas ca pourra faciliter le développement de certains trucs redondant dans les EJB ou les Web services et ca pourrait même apporter des bienfaits dans le développement de tous les jours. Juste un exemple : va y avoir une metatag override pour dire qu'une méthode surcharge la méthode parrente, ce qui est bien sympa et évitera des bugs galère à trouver à cause d'une faute de frappe. Ensore faudra-t-il que les outils de dev gèrent ces tag ...
l'autoboxing ... je m'en méfie un peu. Ca peut être très pratique si c'est utilisé sans abus. Mais j'ai peur que ca entraine une fainéantise chez certains développeurs, ce qui pourrait avoir de mauvaises conséquences sur les perfs.
le foreach, c'est génial !
Marsh Posté le 15-06-2003 à 20:34:52
Harkonnen a écrit : Parce que Java n'est pas détenu par Sun peut être ? |
la moitié des JSR sont dirigés par des gans qui ne bossent pas chez sun ...
Marsh Posté le 15-06-2003 à 20:37:05
kadreg a écrit : |
y a eu tout un spitch la dessus à javaOne, j'ai pas tout compris (le mec paralit très vite, et c'était assez complex), mais ca a pas l'air simple ...
j'attend avec impatience que les slides soient en ligne pour pouvoir relire tout ca calmement ...
Marsh Posté le 15-06-2003 à 20:38:31
benou a écrit : pour être plus générale : |
Ca c'est clair ! C'est un truc qui manque énormément à C#
benou a écrit : |
(raccourci )
benou a écrit : |
On est d'accord aussi quant à la lisibilité du code.
benou a écrit : |
Ca c'est clair !!
Marsh Posté le 15-06-2003 à 20:41:01
Harkonnen a écrit : |
non seulement tu détournes le sujet du topic, mais en plus tu dis des contrevérités totalement subjectives, genre celle qui suit ...
Harkonnen a écrit : |
Sun ne veut pas dépasser C# puisqu'ils pensent (à raison) qu'ils sont déjà devant. Le but c'est pas déjouter des tonnes de fonctionnalités pour arriver à un langage aussi complexe à appréhender que le C++, par exemple, c'est juste d'ajouter des choses qui manquent un peu...
Harkonnen a écrit : |
Harkonnen a écrit : |
edit : je suis vraiment trop con : j'ai lu perfs à la place de spefs... deux fois de suite en plus
Marsh Posté le 15-06-2003 à 20:43:03
benou a écrit : |
Si tu peux les rediffuser, je suis preneur
Marsh Posté le 15-06-2003 à 20:45:18
kadreg a écrit : |
ils sont gratuits : y a déjà les pages du site qui sont en ligne mais les pdf n'y sont pas encore ... ca devrait plus tarder j'imagine ...
Marsh Posté le 15-06-2003 à 20:48:41
benou a écrit : |
perso je vois pas le troll non plus
ah si toi qui dit que java est devant sans dire pkoi
(et spefs ca veut dire specifications, pkoi tu causes de perfs ??)
ran il a édite au moment ou j'ai cliqué sur repondre
Marsh Posté le 15-06-2003 à 20:55:17
franchement, je trouve que sun a fait un boulot formidable avec java. quand on voit de où il vienne et ce qu'ils sont arrivé à faire. chapo !
donc, je me vois mal les critiquer en leur reprochant de ne pas ajouter le bazar qui clignote d'un un langage qui vient de sortir.
Ils ont des objectifs quand ils font des évolutions du langage. Faire comme C# n'est pas l'un d'eux.
Et ils ont aussi tout un background d'appli dont ils doivent maintenir les fonctionnalités et la responsabilité de ne pas ajouter de mauvaises features qu'on découvrirait mauvaise à l'usage par la suite.
C'est pas comme Microsoft qui se permet de tout changer à chaque fois qu'ils incrémentent d'une version (mais non je ne parle pas de VB).
Faut pas leur demander de faire les même choses si ils n'ont pas les mêmes objectifs.
puis bon, Sun c'est mes copains maintenant !
Marsh Posté le 15-06-2003 à 21:15:28
Harkonnen a écrit : Parce que Java n'est pas détenu par Sun peut être ? |
tu m'a pas laissé le temps de faire la même remarque pour Java.
Marsh Posté le 15-06-2003 à 21:16:17
Harkonnen a écrit : Qu'est ce que je disais... |
ben quoi ? je trouve ca nul qu'un int soit automatiquement remplacé par un Object moi !
remarque, qund j'y pense bien, ton truc devrait marcher en java aussi puisqu'un Integer c'est un Object ... mais bon, c'est pas le meilleur exemple d'utilisation. Le truc sympa c'est qu'on pourra faire ca :
Code :
|
Marsh Posté le 15-06-2003 à 21:17:48
Je n'ai pas détourné le sujet du topic, l'auteur demande ce qu'on pense de Java 1.5, je donne mon avis, c'est tout
Ceci dit, je suis d'accord : Sun n'a pas les mêmes moyens que Microsoft, et partir de quasiment rien pour arriver à un langage qui est presque devenu un standard de fait, je leur tire mon chapeau également
Ne nous leurrons pas : il est plus que certain que Java 1.5 soit la réponse de Sun au C#, ce n'est pas la peine de nier l'évidence, étant donné que les ajouts sus-mentionnés sont justement évoqués comme faisant partie des points forts de C#.
Je trouve juste dommage qu'ils n'aient pas poussé davantage, surtout qu'il ne restait pas grand chose à faire
Honnêtement, les imports static, c'était certainement moins prioritaire que la surcharge d'opérateurs ou les delegates, non ?
Marsh Posté le 15-06-2003 à 21:22:38
Harkonnen a écrit : |
La surcharge d'opérateur, je suis d'accord. En revanche, le délégates, je suis pas super fan. Et je trouve que le méca de typage par les interface est finalement plus réussi car plus général. En objet, l'élément central est la classe, pas la méthode.
Marsh Posté le 15-06-2003 à 21:22:53
benou a écrit : |
Un exemple : je viens de voir dans la Javadoc que la méthode Put de la classe java.util.Hashtable prend 2 objects en paramètre.
Si je veux mettre 2 integer dans ma hashtable, je fais comment ?
En C#, je peux passer directement mes 2 integer dans la fonction. En Java, je suis obligé de passer par java.lang.Integer.
edit: j'avais pas vu ton exemple
Marsh Posté le 15-06-2003 à 21:35:15
Harkonnen a écrit : |
parce que ça m'étonnerait que microsoft laisse une possibilité d'utiliser .NET ailleurs que sur ses plateformes
Et même si c'était le cas, MONO aura toujours un temps de retard
Marsh Posté le 15-06-2003 à 21:42:01
Harkonnen a écrit : Parce que Java n'est pas détenu par Sun peut être ? |
tu sors ?
Marsh Posté le 15-06-2003 à 21:43:10
c'est quoi les delegates ?
par contre, à mon avis, la surcharge des opérateurs, tu le verras jamais en java. C'est pas dans la philosophie du langage.
Remarque, on aurait pu dire ca de la généricité, mais je trouve que pour la surcharge des opérateur c'est encore pire.
Marsh Posté le 15-06-2003 à 21:44:38
noldor a écrit : parce que ça m'étonnerait que microsoft laisse une possibilité d'utiliser .NET ailleurs que sur ses plateformes |
cha che fau (au moins pour le c#, si j'en crois leur site il l'ont passé en standart justement pour faciliter le portage par des tiers)
Marsh Posté le 15-06-2003 à 21:45:14
benou a écrit : |
tu reproches quoi a la genericité et a la surcharge ??
Marsh Posté le 14-06-2003 à 22:03:27
il y aura la
généricité,
les énumérations,
les imports static,
Autoboxing http://jcp.org/aboutJava/community [...] oxing.html
...
....
---------------
Borland rulez: http://pages.infinit.net/borland