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 :

Oracle présente de nouvelles fonctionnalités de Java 9


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    Java 9 sortira en version stable le 22 septembre 2016
    le gel des fonctionnalités est prévu pour le 10 décembre 2015

    Mark Reinhold, architecte en chef du groupe de la plateforme Java chez Oracle, vient de présenter la feuille de route pour le développement de Java 9, qui devrait aboutir à la publication de la version stable dans 15 mois.

    Le calendrier prévoit ce qui suit :


    • 10/12/2015 : intégration de toutes les fonctionnalités dans la branche principale ;
    • 04/02/2016 : finalisation des tests sur toutes les plateformes supportées ;
    • 25/02/2016 : contrôle des changements entrants ;
    • 21/04/2016 : finalisation avec le traitement du carnet des bogues :
    • 16/06/2016 : deuxième série de contrôle des changements entrants ;
    • 27/06/2016 : publication de la Release Candidate finale ;
    • 22/09/2016 : disponibilité générale de Java 9, pour une utilisation en environnement de production.


    Le responsable du développement de Java précise que ces dates ont été définies de façon à laisser suffisamment de temps pour l’examen général, les tests des caractéristiques importantes, en particulier l’introduction d’un système de module.

    Toutefois, le calendrier doit être pris avec réserve. Car avec les fonctionnalités importantes dont dispose cette version, il n’est pas exclus qu’un blocage puisse entrainer un report. Il faut rappeler que Java 8 avait été reporté afin de colmater les failles de sécurité dans la plateforme.

    Actuellement, Java 9 peut être testé à travers la dernière préversion (Early Access) du JDK 9 qui est disponible sur le site du projet. Au menu des caractéristiques qui avaient été présentées par Oracle, on peut noter :


    • l’intégration de « HTTP2 Client » pour le support du HTTP 2.0 et des web sockets ;
    • l’ajout de « Process API Updates » qui permet d’améliorer le contrôle, la gestion et l’interaction avec les processus non Java ;
    • l’introduction d’un système d’enregistrement commun pour tous les composants de la JVM ;
    • Plus de contrôle au niveau de la compilation ;
    • Des améliorations pour le projet Coin, qui avait été introduit avec Java 7 ;
    • Le support des modules et bien plus.


    La fonctionnalité la plus attendue est, sans aucun doute, la prise en charge de la modularité (projet Jigsaw). Cette fonctionnalité a entrainé de gros changements au JDK. Elle permettra de découper la bibliothèque d’exécution de base de Java en différents modules. Ainsi, une machine virtuelle Java (JVM) pourra fonctionner sans le support de certains packages de base.

    Les défis a relevé avec ce projet ont été nombreux pour les ingénieurs d’Oracle. Son implémentation avait été initialement prévue avec Java 8. Le projet a été repoussé à Java 9 et il a été redéfini à maintes reprises.

    Avec Java 9, Oracle se donne pour mission de publier une nouvelle version de la plateforme tous les deux ans.

    Télécharger la Early Access du JDK 9

    Source : OpenJDK
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    MikeRowSoft
    Invité(e)
    Par défaut
    Je me demande bien comment fonctionne cette machine virtuelle. Je crois qu'il y a des fichiers exécutables pour l'intégration avec les systèmes d'exploitations, mais pas de scripts pour une interaction direct comme pour JavaScript ou Visual Basic Script ou Script Shell ou autres. Je comprend mieux pourquoi Java... Ils ont une priorité défini, même si ils peuvent la changé à leurs guises dans certains cas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 187
    Par défaut
    Citation Envoyé par MikeRowSoft Voir le message
    Je me demande bien comment fonctionne cette machine virtuelle.
    La machine virtuelle : http://jmdoudoux.developpez.com/cours/developpons/java/

    Citation Envoyé par MikeRowSoft Voir le message
    Je crois qu'il y a des fichiers exécutables pour l'intégration avec les systèmes d'exploitations, mais pas de scripts pour une interaction direct comme pour JavaScript ou Visual Basic Script ou Script Shell ou autres.
    On peut créer des exécutables par plateforme (.exe) mais aussi exécuter des scripts (javascript, groovy, python etc.) pas de soucis à ce niveau là. La JVM ne fait pas tourner qu'un langage ! http://en.wikipedia.org/wiki/List_of_JVM_languages

    Citation Envoyé par MikeRowSoft Voir le message
    Ils ont une priorité défini, même si ils peuvent la changé à leurs guises dans certains cas.
    Le Java Community Process a son mot à dire : http://fr.wikipedia.org/wiki/Java_Community_Process

    En espérant t'avoir éclairé

  4. #4
    MikeRowSoft
    Invité(e)
    Par défaut
    Citation Envoyé par Washmid Voir le message

    En espérant t'avoir éclairé
    Merci, mais je connais déjà cela. Ça ne m'a pas éclairer au sujet l'analyse syntaxique et grammaticale en encore moins au sujet du contenu des dossiers Java. Je crois pas que cela fasse parti de beaucoup de cours universitaires ou de cycles d'ingénieurs, encore moins de B.T.S. ou formations tiers. Cela ce rapproche plus de la certification.
    Dernière modification par MikeRowSoft ; 08/05/2015 à 00h22.

  5. #5
    Membre éprouvé
    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 : 41
    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
    Par défaut
    Toujours pas d'amélioration sur les Properties après tant d'années. C'est peut être qu'on s'est habitué à l'idée que c'était le travail d'un IDE de générer les 50-200 lignes de plomberie nécessaires aux objets utilisés comme conteneur de données.
    Pas non plus de named arguments, de nouveau on va demander à l'IDE de générer un parameter object et une sorte de builder bien lesté. Deux classes pour faire ce qu'une simple syntaxe "name = Jean, age = 10" aurait permis, la sécurité en moins puisqu'on peut toujours oublier de renseigner une propriété dans un builder.

    C'est fou mais j'ai l'impression que la puissance des outils de développement a poussé SUN et Oracle a se détourner complètement des lourdeurs à l'écriture de code java.

  6. #6
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Comment améliorer les fichiers de Properties ? Cela a toujours été un fichier plat contenant des paires clé/valeur de chaine depuis le JDK 1.0. Pour des notions plus avancés il y a notamment les fichiers XSD et génération de classes JAXB, qui sont certes lourd à mettre en place, mais je n'ai pas compris l'alternative.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  7. #7
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par _skip Voir le message
    Toujours pas d'amélioration sur les Properties après tant d'années. C'est peut être qu'on s'est habitué à l'idée que c'était le travail d'un IDE de générer les 50-200 lignes de plomberie nécessaires aux objets utilisés comme conteneur de données.
    Apparemment il y aura juste enfin le support des fichiers properties en utf8 : http://openjdk.java.net/jeps/226
    Quelles genres d'améliorations tu voudrais ?


    Citation Envoyé par _skip Voir le message
    Pas non plus de named arguments, de nouveau on va demander à l'IDE de générer un parameter object et une sorte de builder bien lesté. Deux classes pour faire ce qu'une simple syntaxe "name = Jean, age = 10" aurait permis, la sécurité en moins puisqu'on peut toujours oublier de renseigner une propriété dans un builder.
    Les named arguments c'est bien mais cela pose plusieurs problèmes car c'est peu évolutif :
    • Il faut stocker le nom des paramètres dans les fichiers classes, ce qui n'est pas le cas actuellement sauf à utiliser une option de compilation spécifique.
    • Cela change le status des noms de paramètres, en les rendant "critique" (le simple fait de les changer peut aboutir à une incompatibilité), alors que ce n'est pas plus important qu'un commentaire actuellement.
      Et surtout cela s'appliquerait à tous les paramètres de toutes les méthodes existantes...
    • On s'attend logiquement à ce que cela soit associé à des paramètres par défaut... et cela pose plein de problèmes et d'ambiguités avec la surcharge et la redéfinition !
    • Pire que cela çà rend l'évolution de la méthode complexe et peu intuitive, puisque la moindre modification va générer des incompatibilités binaires, car contrairement à ce qu'on pourrait penser l'ajout d'un paramètre optionnel correspond à un changement incompatible !!



    Exemple: Imagine qu'on ait une méthode comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class TypeA {
        public void method (String name, int age=0) {
            System.out.println(name + " " + age);
        }
    }
    Les paramètres nommés/optionnels fonctionnent via du sucre syntaxe à l'exécution, qui s'occupe de remplacer les valeurs et d'effectuer le bon appel de méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TypeA a = ...
     
    a.method(name:"Fred");
    a.method(age: 25, name:"Eric");
     
    // est équivalent à :
     
    a.method("Fred", 0);
    a.method("Eric", 25);

    Maintenant si on veut faire évoluer notre méthode en lui rajoutant un paramètre ("firstName" par exemple), en toute logique on essayerait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class TypeA {
        public void method (String name, int age=0, String firstName=null) {
            System.out.println(name + " " + Objects.toString(firstName,"") + " " + age);
        }
    }
    Et çà marche ! Youpi on est content et on déploie notre code...
    Sauf que cela marche bien dans notre éditeur car il va s'occuper de tout recompiler comme il faut... mais on vient de générer une incompatibilité binaire avec tous les codes qui utilisait notre méthode.


    En effet si on n'a pas recompilé le code, il tente toujours d'appeler une méthode method(String,int) qui n'existe plus, ce qui va générer un beau MethodNotFoundException...


    Et pour éviter cela il faut revenir à la surcharge afin que la méthode originelle soit toujours présente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class TypeA {
        public void method (String name, int age) {
            method(name, age, null);
        }
     
        public void method (String name, int age=-1, String firstName=null) {
            System.out.println(name + " " + Objects.toString(firstName,"") + " " + age);
        }
    }


    Second effet kiss-cool : je veux renommer mon paramètre "name" (désormais le terme "lastName" serait plus approprié)... mais cela provoquerait une incompatibilité des sources obligeant la modification de l'appel de la méthode en cas de recompilation !

    De même si j'ai une méthode anodine du genre setEnabled(boolean b), et je souhaite renommer le paramètre "b" en "enabled" qui me semble plus approprié... mais cela provoquerait des incompatibilité avec deux qui l'aurait utilisé comme ceci setEnabled(b:true) !

    Et encore je n'ai même pas parlé d'éventuelle redéfinition dans une classe fille qui viendrait encore plus embrouillé le tout, ou encore de la valeur par défaut qui dépend aussi de la compilation !!!




    Bref les paramètres nommées/optionnels c'est bien dans un langage de script comme PHP (car tout est réinterprété à chaque exécution) ou alors limité au sein d'une même application (mais comment limité cela ?).
    Mais dans un langage plus complexe et compilé comme Java cela peut apporter son lot de problèmes...



    Le "Builder" reste une bien meilleure solution pour le moment... même si c'est plus lourd.
    A la rigueur selon la syntaxe finale cela pourrait être remplacé par des type-values...

    a++

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par MikeRowSoft Voir le message
    Merci, mais je connais déjà cela. Ça ne m'a pas éclairer au sujet l'analyse syntaxique et grammaticale en encore moins au sujet du contenu des dossiers Java. Je crois pas que cela fasse parti de beaucoup de cours universitaires ou de cycles d'ingénieurs, encore moins de B.T.S. ou formations tiers. Cela ce rapproche plus de la certification.
    Ca peut prendre du temps de comprendre ce que tu cherche à savoir et te répondre, donc ce serait mieux que tu fasse un sujet à part avec ta question qui n'est pas trop liée à cette discution

  9. #9
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut
    C est une très bonne nouvelle. La sortie de chaque version après 2 ans

  10. #10
    Membre actif
    Homme Profil pro
    passionné d'informatique
    Inscrit en
    Mai 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : passionné d'informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 32
    Par défaut
    J'attends de voir si Java vas pouvoir un jour concurrencer des langage comme le C++
    Et de voir si minecraft pourra devenir un peu plus stable.

  11. #11
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Java et C++ ne sont pas vraiment 2 langages comparables, l'un utilise un compilateur JIT via une VM et l'autre est compilé en langage machine.
    Concurrencer C++ à quel niveau ?
    Si Minecraft n'est pas "stable", cela ne veut pas dire que Java n'est pas stable.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par benedict010198 Voir le message
    J'attends de voir si Java vas pouvoir un jour concurrencer des langage comme le C++
    Sur quel critère? La portabilité? La gestion mémoire? La vitesse d'exécution? La vitesse de développement? La qualité des IDE? Le nombre de binaires l'utilisant? ....
    Citation Envoyé par benedict010198 Voir le message
    Et de voir si minecraft pourra devenir un peu plus stable.
    Ben d'après ce que j'ai compris de certaines discutions, ça arrivera quand ils apprendront à programmer

  13. #13
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Par défaut j'attends aussi les Properties
    C'est clair que les Properties seraient vraiment super. Ils expliquent de temps en temps dans la mailing liste du jdk pourquoi ils ne le font pas (je ne me souviens plus de la cause en fait), mais je n'ai plus le problème parce que j'utilise le project Lombok. C'est sûr que ton code rapetisse ! Le seul problème, c'est pour faire des recherches dans ton code pour rechercher, par exemple, qui appelle setToto(). Tu te retrouves à faire des recherches plein texte (par forcément très gênant).

  14. #14
    Membre averti

    Profil pro
    Java/Jee
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Java/Jee

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Billets dans le blog
    1
    Par défaut
    Trop hâte de jouer avec Jigsaw.

Discussions similaires

  1. Oracle lance une nouvelle tentative pour intégrer la modularité à Java
    Par Hinault Romaric dans le forum Général Java
    Réponses: 54
    Dernier message: 05/11/2013, 09h37
  2. Java : Oracle adopte une nouvelle nomenclature pour les mises à jour du JDK
    Par Cedric Chevalier dans le forum Général Java
    Réponses: 8
    Dernier message: 20/05/2013, 18h58
  3. Oracle dans une nouvelle bataille juridique sur l'utilisation du Java
    Par Hinault Romaric dans le forum Général Java
    Réponses: 16
    Dernier message: 17/12/2010, 16h01
  4. Oracle dans une nouvelle bataille juridique sur l'utilisation du Java
    Par Hinault Romaric dans le forum Actualités
    Réponses: 14
    Dernier message: 16/12/2010, 17h30

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