IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Le 7/7 c'est Java 7


Sujet :

Java

  1. #81
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Sans compter comme cela a été dit que cela remplacera avantageusement de nombreuses classes anonymes.
    L'exemple précédent de pseudocode pourrait s’écrire comme ceci :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    meteo.addTemperatureListener(#{double oldTemperature, double newTemperature ->
    	SwingUtilities.invokeLater(#{textField.setText(""+newTemperature)});
    });
    Voir même comme ceci avec le Type Inference :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    meteo.addTemperatureListener(#{oldTemperature,newTemperature ->
    	SwingUtilities.invokeLater(#{textField.setText(""+newTemperature)});
    });
    C'est techniquement mieux, mais la syntaxe reste visuellement encore assez compliquée a mon gout. Masi bon, c'est plutôt la faute de l'API swing que du langage.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  2. #82
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    La syntaxe n'est pas définitive...

    Après bien sûr ce sera plus propre avec des APis conçus pour cela !

    a++

  3. #83
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 229
    Points : 3 579
    Points
    3 579
    Par défaut
    Pour moi, la réponse "pourquoi pas de string dans un switch" tient en un raisonnement très simple.
    Fondamentalement, le switch sert à énumérer tous les cas possibles. Et pour pouvoir énumérer tous les cas possibles, il faut qu'il y en est un ensemble fini. Les entiers (en informatique), les enums (qui ne sont rien de plus qu'un sous ensemble d'entier), sont des ensembles finis. Il existe une infinité de string, on ne peut donc pas les énumérer, elles n'ont donc pas leur place dans un switch.

    Bien sûr, c'est là un raisonnement très conceptuel. On me répondra que c'est pour cela qu'il existe le mot clé default. Et puis, que la meilleure conception est rarement la solution la plus simple à mettre en place. Ou encore que, de toute manière, si quelqu'un code en concevant mal, ne pas accepter de mettre de string dans les switch lui fera faire une grosse succession de if else if qui reviendra considérablement au même.

    Il n'empêche, conceptuellement, le switch n'a pas été créé pour ça. Ce n'est pas une syntaxe amélioré du if mais bien un concept différent.
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  4. #84
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 552
    Points : 15 463
    Points
    15 463
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Sans compter comme cela a été dit que cela remplacera avantageusement de nombreuses classes anonymes.
    L'exemple précédent de pseudocode pourrait s’écrire comme ceci :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    meteo.addTemperatureListener(#{double oldTemperature, double newTemperature ->
    	SwingUtilities.invokeLater(#{textField.setText(""+newTemperature)});
    });
    Autant je crois que les références de méthodes vont clairement apporter un vrai plus à ce niveau, autant je suis moyennement convaincu par l'utilisation des expressions lambda pour cela.
    Ton exemple reste bizarre et pas intuitif si on ne connait pas bien le mécanisme qui se cache derrière. Je préfère encore voir l'intégralité du mécanisme que le cacher partiellement

    Pour bien faire il faudrait un vrai système de structures de contrôle qui fait disparaitre toute la plomberie:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    meteo.onTemperatureChange(double oldTemperature, double newTemperature) {
    	SwingUtilities.invokeLater{
                    textField.setText(""+newTemperature);
            }
    }
    Malheureusement, ce n'est plus au programme et j'ai peur que les choix fait actuellement pour les lambda, compliquent leur possible arrivée dans les prochaines versions.

    Citation Envoyé par Flaburgan Voir le message
    Pour moi, la réponse "pourquoi pas de string dans un switch" tient en un raisonnement très simple.
    Fondamentalement, le switch sert à énumérer tous les cas possibles. Et pour pouvoir énumérer tous les cas possibles, il faut qu'il y en est un ensemble fini. Les entiers (en informatique), les enums (qui ne sont rien de plus qu'un sous ensemble d'entier), sont des ensembles finis. Il existe une infinité de string, on ne peut donc pas les énumérer, elles n'ont donc pas leur place dans un switch.
    Conceptuellement le switch sert bien a énumérer, mais "les résultats attendus", certainement pas "tous les cas possibles".

    Comme tu le dis, le "default" en est bien la preuve. Je rajouterais également que l'énumération avec les entiers n'est jamais sur un ensemble fini, car même si le nombre d'entiers possible est fini, il ne viendrait jamais à l'idée de qui que ce soit de gérer l'intégralité des valeurs possibles pour un entier.
    Et même sur une énumération, rien n'oblige de traiter tous les résultats possibles.

  5. #85
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Flaburgan Voir le message
    Pour moi, la réponse "pourquoi pas de string dans un switch" tient en un raisonnement très simple.
    Fondamentalement, le switch sert à énumérer tous les cas possibles.
    hum... Pour moi, ca n'énumère rien du tout. Ce n'est pas un itérateur.

    Le switch est un sélecteur qui permet de choisir un bloc de code à exécuter suivant la valeur d'une variable. Que cette variable soit de type entier, booléen, décimal ou chaine, ca ne change pas le principe du switch.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #86
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    @Uther : C'est quand même un exemple particulier au départ du fait qu'il incorpore 2 classes anonymes imbriqués. Et la syntaxe n'est pas définitive. Il sera préférable de juger sur le résultat final avec des APIs conçus pour cela

    Dans ce cas précis les Method references seront surement plus pratique en effet. Mais ces dernières reposent sur les expressions lambdas



    Citation Envoyé par Flaburgan Voir le message
    Fondamentalement, le switch sert à énumérer tous les cas possibles. Et pour pouvoir énumérer tous les cas possibles, il faut qu'il y en est un ensemble fini. Les entiers (en informatique), les enums (qui ne sont rien de plus qu'un sous ensemble d'entier), sont des ensembles finis. Il existe une infinité de string, on ne peut donc pas les énumérer, elles n'ont donc pas leur place dans un switch.
    Donc lorsque tu fais un switch sur un int, tu énumères les 4 milliards de valeurs possibles ??? Impressionnant !

    Sans rire, un switch permet de faire un traitement spécifique selon la valeur d'un variable par rapport à des constantes. Je ne vois pas en quoi ce ne serait pas correct de faire cela avec des String, alors que cela le serait avec des int...


    a++

  7. #87
    Membre confirmé
    Profil pro
    DIRLO
    Inscrit en
    Juillet 2009
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DIRLO

    Informations forums :
    Inscription : Juillet 2009
    Messages : 197
    Points : 517
    Points
    517
    Par défaut chocolat. .... pas café :(
    linux, solaris, windows .... whaouuuuu !

    mac ??


    deploy everywhere .... but on apple

  8. #88
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 552
    Points : 15 463
    Points
    15 463
    Par défaut
    Bah le problème du Mac c'est que ca va prendre un certain temps de réintégrer dans OpenJDK les travaux d'Apple. Ca viendra a coup sur, mais il faudra être patient.

  9. #89
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    Le planning prévoyait depuis longtemps que la version Mac sorte plus tard que les autres (en même temps ça ne change pas grand chose par rapport a quand Apple s'en occupait).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  10. #90
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut
    Un bogue sur Java 7 paralyse Apache Lucene et Solr
    Une optimisation défectueuse du compilateur Hotspot incriminée

    Mise à jour du 1 août 2011 par Idelways


    Un sérieux bogue vient d'être dévoilé suite au lancement final de Java 7. Il entrave le fonctionnement de deux projets de la fondation Apache, notamment Lucene, le célèbre moteur de recherche en full-text.

    Le problème se situe plus précisément au niveau du compilateur Hotspot qui intègre un optimisateur défectueux, capable de créer des boucles potentiellement erronées.
    Par conséquent, la machine virtuelle Java peut planter à l'exécution, ou produire des résultats de calculs incorrects.

    Pour Lucene, ce bogue risque de corrompre l'index, plus particulièrement sur la version qui embarque le PulsingCodec.

    L'autre projet phare de la fondation Apache affecté par ce bogue est Solr, le moteur de recherche issue de la bibliothèque Lucene sus-citée.

    Oracle aurait découvert ce bogue 5 jours avant la sortie de Java 7 en version définitive, mais aurait préféré reporter sa correction au deuxième « service release » de Java 7. Le premier étant réservé à la correction des bogues de sécurité, sauf changement de planning.

    En attendant, les utilisateurs des deux projets doivent temporiser avant de passer à Java 7 en production ou l'utiliser avec l'option -XX:-UseLoopPredicate qui désactive l'optimisation et met ainsi l'index Lucene à l'abri.

    Un bogue similaire peut surgir sur Java 6 avec les flags -XX:+OptimizeStringConcat et -XX:+AggressiveOpts qui activent des optimisations Hotspot par défaut désactivées.

    Trois rapports de bogues ont été admis par Oracle, l'un de faible priorité et les deux autres de priorité modérée.
    De pareils dysfonctionnements n'ont pas encore été signalés sur des produits autres que ceux de la fondation Apache.

    Pour plus d'informations sur les nouveautés de Java 7, lire ci-devant.


    Source : avertissement de la fondation Apache

    Et vous ?

    Qu'en pensez-vous de ce bogue ? L'avez-vous rencontré ?

  11. #91
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut
    A propos des optimisations, est-ce qu'on sait quels types d'algorithmes seront optimisés par les améliorations intégrées à Java 7 ?

  12. #92
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Je viens de me balader sur la nouvelle JavaDoc (que je trouve bien moche) et je constate que sur le package java.awt, la couleur des lignes n'est pas alternée ?!
    Un petit bug ?


    Pour revenir sur les énumérations, je rajouterai que les références static c'est le mal
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  13. #93
    Expert éminent
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 799
    Points : 7 039
    Points
    7 039
    Par défaut
    j'ai toujours dit qu'il faut éviter de passer en prod avec une version non encore éprouvé pour moi la migration vers java 7 c'est pas pour tout de suite
    "L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent."
    - Benjamin Franklin

    De l'aide en Javascript , consultez la FAQ JS.

    De l'aide sur le FrameWork JS DHTMLX : posez vos questions sur le forum des Bibliothèques & Frameworks JS.

  14. #94
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Je viens de me balader sur la nouvelle JavaDoc (que je trouve bien moche) et je constate que sur le package java.awt, la couleur des lignes n'est pas alternée ?!
    Un petit bug ?
    Comparez :
    http://download.oracle.com/javase/7/...ql/RowSet.html
    http://download.oracle.com/javase/6/...ql/RowSet.html

    J'ai surtout l'impression que l'ancienne version est infiniment plus lisible... Je trouve le contraste de la nouvelle version trop faible (peine à repérer les liens), la première colonne du tableau infiniment trop large sur mon écran (25% de la largeur) et j'ai l'impression que les commentaires apparaissent plus que les signatures des méthodes.

  15. #95
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Je plussoie !

    Je trouve ça moins lisible et j'ai l'impression que ca prends plus de place en hauteur ... Pas génial pour les portables à la résolution limité en hauteur.
    Ca ne vaut pas celle d'Android dans laquelle tu gardes toujours les frames ...
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  16. #96
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut
    Java 7 Update 1 corrige l'incompatibilité avec Apache Lucene et Solr
    Due à une optimisation défectueuse du compilateur JIT

    Mise à jour du 27 octobre 2011 par Idelways


    Une anomalie découverte quelques jours avant la sortie de Java 7, et laissée pour compte par manque de temps, vient d'être écartée.

    Oracle sort l'Update 1 de Java 7 qui corrige l'optimisation défectueuse du compilateur Hotspot, responsable de boucles potentiellement erronées, pouvant produire des résultats de calculs incorrects, ou faire crasher la JVM à l'exécution.

    Cette anomalie touchait notamment Apache Lucence, le célèbre moteur de recherche en full TEXT, ainsi que son sous-produit Solr.

    Oracle a sortie cet Update il y a quelques jours, mais n'a mis à jour qu'aujourd'hui les statuts des trois rapports du compilateur "JIT [Just in Time] et les bogues de boucle" signalés par la fondation. D'autres bogues relatifs, découverts en interne, ont été corrigés.

    Uwe Schindler, un contributeur du projet confirme après des tests que l'anomalie a bien été résorbée. Il n'a cependant pas précisé si l'utilisation des flags -XX:+OptimizeStringConcat et -XX:+AggressiveOpts reste toujours recommandée.


    Télécharger Java 7u1

    Source : Oracle, blog d'un contributeur à Apache

  17. #97
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    Suite au blog du developpeur lucene : Oracle a mis a jour les releases notes de java7u1

    http://www.oracle.com/technetwork/ja...es-507962.html

    JIT and Loop Bugs
    Three bugs reported by various parties, including Apache Lucene developers, have been fixed in JDK 7 Update 1, in addition to a fourth related bug found by Oracle (7070134, 7068051, 7044738, 7077439).
    c'est maintenant parfaitement clair : go pour java 7 en prod

  18. #98
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Aaahhhhhh !!!

    Voila une excellente nouvelle ! Encore quelques semaines, et j'envisagerais de passer à Java 7...

Discussions similaires

  1. Le 7/7 c'est Java 7
    Par lunatix dans le forum Actualités
    Réponses: 89
    Dernier message: 02/08/2011, 02h07
  2. Probleme de date entre sql est java
    Par logiciel_const dans le forum SQL
    Réponses: 7
    Dernier message: 31/01/2011, 12h20
  3. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo