|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé Sénior
![]() ![]() |
Bonjour,
Ce débat est destiné à parler des nouveautés du JDK 7 (pas seulement le projet Coin). Qu'en pensez-vous ? Qu'auriez-vous aimé d'autre dans cette nouvelle version de Java ? Qu'aimeriez-vous voir dans les futures version de Java ?
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2009 Messages : 138 ![]() |
L'invocation dynamique c'est le seul truc que je retiendrai. Pour le reste, une bonne completion / indentation fait l'affaire.
Par contre j'aurai aimé qu'ils se penchent sur des points importants : -accélérer les fonctions trigos qui sont 10 fois plus lentes qu'en C (donc toujours pas de code de calcul en java : vive la fft et le traitement de signal) -a quand un delete possible (comme pour flash), on pourrai enfin avoir un code java reproductible en temps ? -intégrer jogl en standard et porter swing en jogl. Sun s'offrirerai enfin le luxe de couper l'herbe sous le pied à Adobe à propos de la 3D native (qu'ils sont visiblement pas près d'avoir). -accélérer le temps de chargement des applets javafx pour faire enfin décoller ce petit bijoux. -pourquoi une méthode/champs protected est toujours en visibilité pacquet ? -pouvoir déclarer les InnerClass dans un .java pour plus de lisibilité (ceux qui vont souvent dans le code de la JVM me comprendront). -pouvoir compiler une chaîne de caractère autrement que ""+""+"". Impec pour des requêtes SQL, l'écriture XML ou d'un code assembleur/C pour un shader. -a qd un preprocesseur en standard javac ? Des moins importants : -corriger l'implémentation douteuse des JDialog et les weakreference de leurs enfants (ça c très merdique et très décevant de la part de Sun). -configuration automatique possible du garbage collector (xmx dépend de la machine cible) -possibilité de renommer java.exe et de le sortir de java/bin (impec pour le déploiement et le kill d'une appli java) -Pouvoir ajouter des listeners en réponse au kill pour libérer des ressources par ex. -Il était question d'extraire le window manager de netbean et de le mettre en std ! Et un truc qui serai franchement top : ![]() - Avoir des exceptions qui ne puissent être rattrapées que par certaine classe. (par ex le OutOfMemory ne devrait pas être rattrapable par n'importe qui). - Pouvoir faire un pull de mémoire configurable par classloader. Avec ces deux trucs (et le SécurityManager) , une appli à plugin pourrait gérer complètement les défaillances de ses petits. |
|
|
00
|
|
|
#3 | |||||||
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|||||||
|
|
00
|
|
|
#4 | ||||||
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 678 ![]() |
Citation:
Pour ce qui est du listener en réponse au kill, ca existe déjà. Citation:
L'idée peu paraitre intéressante pour certain cas particulier. Mais pour le coup ca deviens dangereux car sa casserait un principe fondamental en java : toute référence a un objet est toujours valide. L'impact de ce genre de chose me parait énorme et ca pourrait potentiellement entrainer beaucoup de problèmes. Citation:
Citation:
Citation:
Citation:
Par curiosité, pour quel genre de chose aurait tu besoin de ça. |
||||||
|
|
00
|
|
|
#5 | |||||||||||||
|
Nouveau Membre du Club
![]() Inscription : septembre 2009 Messages : 138 ![]() |
Citation:
C vrai que l'incompatibilité serait génante. Citation:
Citation:
Code :
mais plus générique du type Code :
Citation:
Et puis je pense que ça peut poser des problèmes avec jconsole (mais la je m'avance). C qd même pas la mort de permettre ça. Ils en ont bien conscience car la majorité des IDE font un lanceur home made. Citation:
![]() Citation:
Par ex : Un plugin déclare une vue (une JTable par ex). Après passage d'un algo, le coeur de l'appli gère les mises à jours. Et là le plugin se viande et une belle NullPointer revient dans le coeur. Là il est indispensable de faire un truc du genre : Code :
Si le security manager pouvait aussi gérer les catch ... Citation:
Nouvel argument à new alors. |
|||||||||||||
|
|
00
|
|
|
#6 | ||||
|
Nouveau Membre du Club
![]() Inscription : septembre 2009 Messages : 138 ![]() |
Citation:
Code :
Citation:
Mais son utilisation intelligente est à benir. C'est en regardant le source de GIMP ( Bien souvent les IDE proposent de générer du code automatiquement, qu'il faut reprendre généralement. Une macro permet de faire la même chose en mieux. Ca permet de façon très concise d'avoir un résultat équivalent qu'à du xml qui passe dans du xsl pour faire du java et un autre source java car le xml ne suffit jamais en soi. |
||||
|
|
00
|
|
|
#7 | |||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 657 ![]() |
Citation:
Problème #2 : ce n'est pas parce que tu mets une référence à null que l'objet correspondant peut être libéré. Problème #3 : si tu veux un comportement déterministe il faut revoir complètement la gestion de la mémoire, afin qu'une référence que tu "supprimes" avec delete ne soit pas partagé... sinon on va se retrouver avec des références invalides ce qui est une abbération en Java Tout cela pour pas grand chose en fait... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||
|
00
|
|
|
#8 | |
|
Nouveau Membre du Club
![]() Inscription : septembre 2009 Messages : 138 ![]() |
Citation:
Le "delete" n'est pas fait pour effacer l'objet sans vérif (je crois que c'est le cas dans flash). En fait delete n'est pas approprié, il faudrait plutôt l'appeler gcOn(obj) Le but est simplement de notifier au gc que l'objet en question ne devrait plus être référencé et si tel est le cas de l'effacer. Cette opération ne serait pas effectuée si l'objet était référencé ailleurs. Exemple : Dans une application MDI j'effectue les opérations suivantes : -Open project -Do something costly -Save & close project Moi en interne je n'ai plus aucune référence sur le projet mais le gc ne s'est tjrs pas déclanché et le projet est à coup sûr encore en RAM. Même si il s déclanche ou que j'invoke le gc, comme mon projet est de nième génération, il ne sera pas libéré. -New project (et là j'attends que le gc fasse son boulot car j'ai plus de mémoire) |
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() |
si tu regarde la manière dont fonctionne le gc en interne, tu verra que on ne peux jamais supprimer 1 objet. On travaille toujours sur des calculs de l'ensemble des objet. Ton problème est un problème de performance, et un mot clé delet eest une fausse solution. Ce qu'il faut c'est simplement des GC plus performant. Sinon lors du delete, tu va parcourir toute la heap pour tester si 1 objet peut être libéré, alors qu'il faudrait au contraire libérer tout ce qui est libérable à ce moment là.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2009 Messages : 138 ![]() |
C surement pour ca que flash doit effacer l'objet sans vérifier le graphe objet.
J'ai eu pas mal de retour clients qui se plaignaient de ce comportement sur des applis gourmandes, et là malheureusement ya rien à faire. |
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() ![]() |
tu peux lancer la jvm en mode server. Ceci utilise un algorithme de garbage collector qui réduit les blocage dus au GC.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 678 ![]() |
De plus dans java 7 il y aura un nouvel algorithme de Garbage Collector nomé G1 qui devrait aussi permettre d'augmenter les perfs et de réduire les pauses.
Il est même déjà disponible dans les toutes dernières updates du JRE 6, en tant qu'option expérimentale et désactivée par défaut. Pour plus d'explication sur G1 :http://java.sun.com/javase/technolog...c/g1_intro.jsp |
|
|
00
|
|
|
#13 | ||||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 256 ![]() |
Citation:
http://www.javac.info/jsr166z/jsr166...llelArray.html Le coeur algorithmique de certaines applications professionnelles scientifiques utilise déjà Java, c'est ce qui me mène à penser que tu exagères. Citation:
Citation:
Citation:
Vous pouvez forcer la finalisation et appeler le ramasse-miettes mais ça ne règlera pas le problème si c'est une fuite mémoire (pensez à Purify Plus ou à un profiler). |
||||
|
|
00
|
|
|
#14 | ||||
|
Membre Expert
![]() ![]() consultant/formateur Java SE Inscription : juillet 2006 Messages : 775 ![]() |
brainstorming (c.a.d. je me réserve le droit de dire des bétises
souhaiter une plus grande facilité de modification du comportement du compilateur en fonction d'annotations. exemple 1: Code :
en poussant le bouchon on pourrait transférer l'annotation à la méthode "getDescription" ... sauf qu'il est possible que ce test outrepasse les possibilités du compilateur ....(peut-on prouver qu'on peut vérifier que l'affectation du résultat de la méthode peut être aussi controlée partout?) exemple 2: Code :
même remarque que précédement: nécessite des évolutions syntaxiques, pas évident que ce soit toujours faisable, chatouille un peu plus les annotations en leur faisant jouer un rôle proche de la sémantique du programme... mais bon on peut toujours réver
__________________
J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes! |
||||
|
|
00
|
|
|
#15 |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 657 ![]() |
Ce n'est pas tellement un rêve : non seulement cela existe déjà mais il y a déjà des travaux là dessus via la JSR 305 !
Je ne pense pas que cela soit intégré directement dans javac, mais si c'est standardisé il y a de forte chance que ce soit intégré directement dans les EDI. Maintenant cela ne semble pas avoir beaucoup avancé... donc je ne sais pas si ce sera présent dans Java 7 ou pas... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
00
|
|
|
#16 | ||
|
Membre éprouvé
![]() Ingénieur systèmes et réseaux Inscription : août 2007 Messages : 509 ![]() |
Citation:
Citation:
. Est ce que ca ne revient pas à créer une simple classe. Sinon, c'est quoi la différence?
|
||
|
00
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 678 ![]() |
La différence c'est que l'objet d'une inner-class reste relié à la classe l'englobant. Il est a une visibilité limitée a cette classe, et accès direct aux attributs/méthodes de cette classe, ...
|
|
|
00
|
|
|
#18 | |
|
Membre Expert
![]() ![]() consultant/formateur Java SE Inscription : juillet 2006 Messages : 775 ![]() |
Citation:
ça me semble un minimum; les règles sur les préconditions sont probablement plus dures à implanter. .... mais a première vue beaucoup de choses seraient faisables. merci!
__________________
J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes! |
|
|
|
00
|
|
|
#19 |
|
Membre éprouvé
![]() Ingénieur systèmes et réseaux Inscription : août 2007 Messages : 509 ![]() |
Oui mais, est ce que ca ne revient quand meme pas à créer une simple classe .java?
|
|
00
|
|
|
#20 | ||||
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 678 ![]() |
Oui, ça serait un fichier .java séparé mais qui fonctionnerait comme une inner classe et qui hériterait des particularités que j'ai cité.
Par exemple: Code :
Code :
Bref les inner-classe sans des fichier séparés ne me parait pas une idée idiote. Ça pourrait être un gain en lisibilité si les inner-classes sont très grosses. Mais à mon avis, c'est loin d'être indispensable au vu de la complexité de l'évolution par rapport au gain. |
||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com