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 :

Java : le JDK 12 est disponible, il prend en charge Unicode 11 et les expressions Switch


Sujet :

Java

  1. #21
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 256
    Points
    66 256
    Par défaut Java : Oracle publie la première release candidate du JDK 12
    Java : Oracle publie la première release candidate du JDK 12
    avec toutes les fonctionnalités majeures annoncées sauf les littéraux de chaînes bruts

    L’annonce a été faite le 15 février par Oracle que la première version Release Candidate du JDK 12 est disponible en téléchargement pour les plateformes Linux, Mac OS et Windows. Cette version RC1 a été lancée, dit la JEP (proposition d’amélioration du JDK), dans le but de recenser les bogues qu’il pourrait y avoir ainsi que les différentes suggestions de la communauté avant sa date de disponibilité générale prévue pour le 19 mars prochain. Passons en revue sa feuille de route depuis l’annonce de sa version bêta en décembre à ce jour.

    La publication de la version bêta du JDK 12 remonte à décembre dernier. À ce moment, plusieurs fonctionnalités sont apparues dans le kit de développement et plusieurs autres ont été annoncées pour la suite de sa mise au point. Cette version bêta alignait neuf nouveautés principales et quelques fonctionnalités telles que la prise en charge d'Unicode 11, un nouveau format de clé privée codée x25519 et x448 compatible avec la norme RFC 8410. Les neuf caractéristiques qui ont été présentées sont les suivantes :

    • Shenandoah : c’est un ramasse-miettes à faible temps de pause en effectuant le travail d’évacuation simultanée entre les threads java en cours d’exécution. Les temps de pause sont indépendants de la taille du tas ;
    • suite Microbenchmark : c’est un outil pour aider les développeurs à utiliser les microcritères existant déjà dans le code source du JDK ou en créer de nouveaux ;
    • expression de commutation : apporte quelques modifications à l’instruction switch pour la rendre plus flexible ;
    • littéraux de chaînes bruts : permettent aux développeurs de pouvoir utiliser des chaînes littérales brutes sans échappement ;
    • API de constantes JVM : permet d’ajouter une API pour les descriptions nominales des principaux artéfacts de classes et de fichiers de classe, en particulier les constantes pouvant être chargées à partir du pool de constantes ;

    • un apport AArch64, pas deux : sert à supprimer toutes les sources liées aux arm64port pour permettre à tous les contributeurs de concentrer leurs efforts sur une implémentation ARM 64 bits unique et d’éliminer le travail en double requis par la maintenance de deux ports ;
    • archives CDS par défaut : sert à améliorer le processus de génération JDK afin de générer une archive CDS (Class Data Sharing) à l’aide de la liste de classe par défaut sur des plateformes 64 bits ;
    • collections mélangées abandonnées pour G1 : permet d’annuler les collections d’éléments lorsqu’elles peuvent dépasser la cible de pause ;
    • retournez rapidement la mémoire validée non utilisée de G1 : améliore le récupérateur G1 pour qu’il puisse renvoyer automatiquement la mémoire heap de Java au système d’exploitation lorsqu’il est inactif.

    Nom : Java-Development-Kit-JDK-Tutorial-in-Urdu.jpg
Affichages : 72056
Taille : 38,6 Ko

    Seulement quelques jours après cette publication, la JEP annonçait qu’une des fonctionnalités mises en avant dans la version bêta ne sera probablement plus prise en charge ou ne sera plus intégrée dans le JDK 12. Il s’agissait des littéraux de chaînes bruts pour lesquels la JEP a indiqué n’avoir pas encore trouvé le bon moyen d’implémenter cette fonctionnalité au sein du JDK 12.

    « En examinant les commentaires que nous avons reçus, je ne suis plus convaincue que nous ayons encore trouvé le bon compromis entre complexité et expressivité, ou que nous en avons suffisamment exploré l’espace de conception pour être sûr que la conception actuelle est la meilleure que nous puissions faire. En le retirant, nous pouvons continuer à affiner la conception, explorer plus d'options et viser un aperçu répondant réellement aux exigences du processus de fonction de prévisualisation (JEP 12) », avait écrit dans un mail, Brian Goetz, architecte du langage Java chez Oracle.

    La JEP a mis en exécution cette annonce plus tard, vers la fin du mois de décembre, en supprimant définitivement cette fonctionnalité de la préversion du JDK 12. Pour se justifier, la JEP avait listé plusieurs raisons à cette suppression. On pourrait citer par exemple le fait que les littéraux de chaîne peuvent s’étendre sur plusieurs lignes et n'interprète pas les séquences d'échappement telles que les \n correspondant aux échappements Unicode de la forme \uXXXX ou le fait que les littéraux de chaînes bruts en général ne prennent pas directement en charge l'interpolation de chaîne. De nombreux autres problèmes (par exemple les délimiteurs) liés aux littéraux de chaînes bruts avaient été cités par la JEP sur le site du OpenJDK.

    Par comparaison à ses pairs, la JEP indiquait que les langages de programmation tels que C++, Groovy, JavaScript, Python pour ne citer que ceux-là utilisent des littéraux de chaîne bruts et donc, qu'elle étudie ces langages pour les délimiteurs qu’ils utilisent ou pour rechercher des représentations de chaînes. Un groupe d’internautes avaient conseillé à la JEP de regarder dans Python 3.7 pour en tricher l’implémentation des littéraux de chaînes bruts qu’ils jugent être une réussite. « En fait, je craignais que Java ne soit trop influencé par C# en ce qui concerne les chaînes. Les développeurs Java devraient regarder dans Python 3.7 et non pas C# pour de belles syntaxes de chaînes », avait-il écrit en commentaire.

    D’autres par contre, étaient un peu catégoriques sur le sujet. Un parmi eux avait écrit ceci : « En termes simples, je ne vois que très peu de cas d’utilisation où les chaînes brutes pourraient être utiles, qui permettent ou encouragent de nombreuses mauvaises pratiques. Dans mon esprit, les chaînes multilignes sont encore moins utiles et ajoutent une complexité inutile (voir la section sur la gestion des marges). Je ne pense pas que ça vaille le coup ».

    De nombreux tests étant faits depuis décembre passé, la RC1 vient donc d’être publiée. Elle est publiée avec les 8 fonctionnalités majeures restantes depuis la suppression des littéraux de chaînes bruts. Ce sont : Shenandoah (le ramasse-miettes à temps de pause réduit), l’API de constantes JVM, la suite Microbenchmark, l’annulation des collections mixtes pour G1, le retour rapide de la mémoire non utilisée de G1, les archives CDS par défaut, un apport AArch64 et les expressions de commutation. Toutes les fonctionnalités sont donc au rendez-vous à part bien sûr les littéraux de chaînes bruts. Vous pouvez accéder au site de l’OpenJDK pour en apprendre davantage sur cette release candidate du JDK 12 et en savoir plus sur les fonctionnalités précitées.

    En septembre 2017, Oracle avait annoncé qu’il y aura à l’avenir deux versions du JDK par an du fait que Java soit en concurrence directe avec d’autres plateformes qui sont mises à jour plus souvent. Après la sortie du JDK 12 le 19 mars prochain, il y aura donc très probablement une autre version du JDK courant cette année. Ceci étant dit, il semble qu’aucune fonctionnalité n’est en vue d’être ajoutée à cette version du JDK. Beaucoup d’internautes sur Reddit se disent impatients de pouvoir tester cette version du JDK et sont curieux de savoir ce que les prochaines versions de ce dernier réservent à la communauté.

    Source : OpenJDK

    Et vous ?

    Que pensez-vous de la RC1 de JDK 12 ?
    Cette version admissible comble-t-elle vos attentes ? Pourquoi ?
    Quelles autres fonctionnalités souhaiteriez-vous avoir dans le JDK 12 ?

    Voir aussi

    Java : le JDK 12 est disponible en version bêta, il prend en charge Unicode 11 et dispose d'un nouveau format de clé privée codé x25519 et x448

    Java 12 ne prendra probablement pas en charge les littéraux de chaîne bruts, la proposition d'amélioration JDK (JEP) suggère qu'on les supprime

    Les littéraux de chaîne bruts ont été supprimés de Java 12 comme l'a suggéré la proposition d'amélioration JDK (JEP)
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #22
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 888
    Points : 87 206
    Points
    87 206
    Billets dans le blog
    2
    Par défaut Java 12 disponible avec les expressions Switch
    Java 12 disponible avec les expressions Switch
    un nouveau récupérateur de mémoire à faible temps de pause et diverses améliorations pour G1

    Après la sortie de Java 9 en septembre 2017, Oracle a adopté un nouveau cycle de publication de six mois : une nouvelle version en mars et septembre de chaque année et une version LTS tous les 18 mois. Les versions intermédiaires seront donc des mises à jour de fonctionnalités qui ne se seront prises en charge que pendant 6 mois, le temps que la prochaine version arrive. Conformément à ce nouveau timing, Oracle vient d'annoncer la sortie de Java 12.

    La nouvelle version apporte un certain nombre de nouvelles fonctionnalités et d’améliorations remarquables. Plus précisément, Java 12 inclut une nouvelle fonctionnalité de langage, les expressions Switch (en préversion), un nouveau récupérateur de mémoire à faible temps de pause appelé Shenandoah (expérimental) et diverses améliorations au récupérateur de mémoire par défaut Garbage First (G1). En tout, Java 12 introduit huit principales améliorations (JEP) que nous présentons ici.

    Expressions Switch

    Cette fonctionnalité en préversion étend l'instruction Switch afin qu'elle puisse être utilisée également en tant qu'expression. Le Switch n'est donc plus juste une structure de contrôle (comme les if/else), mais peut maintenant renvoyer une valeur. Avec cette fonctionnalité vient aussi une nouvelle syntaxe plus pratique et plus concise qui utilise l'opérateur arrow (->), et qui supprime le besoin d’instructions break. Précisons que seul le code à droite de -> est exécuté.

    Ci-dessous un exemple de code avec le Switch classique : les nombreuses instructions break dans le code le rendent inutilement verbeux, ce qui peut souvent masquer des erreurs de débogage difficiles à identifier.

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    switch (day) {
        case MONDAY:
        case FRIDAY:
        case SUNDAY:
            System.out.println(6);
            break;
        case TUESDAY:
            System.out.println(7);
            break;
        case THURSDAY:
        case SATURDAY:
            System.out.println(8);
            break;
        case WEDNESDAY:
            System.out.println(9);
            break;
    }


    Le code précédent peut être réécrit comme suit avec la nouvelle syntaxe utilisant -> et sans break :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    switch (day) {
        case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
        case TUESDAY                -> System.out.println(7);
        case THURSDAY, SATURDAY     -> System.out.println(8);
        case WEDNESDAY              -> System.out.println(9);
    }


    Code avec expression Switch :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int numLetters = switch (day) {
        case MONDAY, FRIDAY, SUNDAY -> 6;
        case TUESDAY                -> 7;
        case THURSDAY, SATURDAY     -> 8;
        case WEDNESDAY              -> 9;
    };


    Collectes mixtes annulables pour G1

    Il s'agit ici de pouvoir avorter les collectes G1 mixtes si elles risquent de dépasser la cible de pause. Si cela est nécessaire pour respecter la cible de temps de pause fournie par l'utilisateur, G1 (Garbage First) sera en effet contraint d'abandonner le processus de récupération de mémoire. Pour cela, le jeu de régions dans lesquelles la récupération de mémoire sera effectuée est divisé en parties obligatoires et facultatives. Ce qui permet à G1 d'avorter le processus de récupération des parties facultatives si le temps de pause n’est pas respecté.


    Renvoi immédiat de la mémoire non utilisée par G1 au système d'exploitation

    Java 12 améliore le récupérateur de mémoire G1 afin de renvoyer automatiquement le tas Java (la mémoire heap) au système d'exploitation. Il s'agissait en effet de faire en sorte que G1 renvoie les zones de mémoire collectées au système d'exploitation après une période de faible activité de l'application. Jusqu'à présent, G1 ne renvoyait la mémoire au système d’exploitation qu’après un Full GC, chose qu’il évitait d'ailleurs, car l'un des objectifs d’une JVM correctement paramétrée est d’avoir le moins de Full GC possible. Ce qui fait qu'en général, le récupérateur de mémoire G1 ne retournait pas du tout la mémoire effacée vers le système d’exploitation.

    Archives CDS par défaut

    Class Data Sharing (CDS) est une fonctionnalité de la JVM qui permet de réduire le temps de démarrage de celle-ci, en enregistrant dans un fichier les métadonnées des classes pour une réutilisation lors du prochain lancement de la JVM. Toutefois, si vous n'installez pas le JRE avec le programme d'installation, l'archive CDS n'est pas générée par défaut et la commande java -Xshare:dump doit être exécutée manuellement. Dans Java 12, les archives CDS seront générées par défaut sur les plateformes 64 bits, pas besoin d’argument spécifique dans la ligne de commande.

    Un seul port ciblant l'architecture ARM 64 bits

    Il existe deux ensembles différents de codes source (donc de ports) ciblant ARM 64 bits dans le JDK. L'un, fourni par Oracle, est arm64 (disponible dans le répertoire src/hotspot/cpu/arm) et l'autre est aarch64 (disponible dans le répertoire open/src/hotspot/cpu/aarch64). Dans Java 12, il y aura désormais un seul port ciblant l'architecture ARM 64 bits. Toutes les sources liées au port arm64 ont été supprimées tout en conservant le port ARM 32 bits et le port aarch64. La suppression d'un port 64 bits permettra à tous les contributeurs de concentrer leurs efforts sur une implémentation ARM 64 bits unique et d’éliminer le travail en double requis pour la maintenance de deux ports.

    API de constantes JVM

    Java 12 introduit une API pour modéliser les descriptions nominales des fichiers de classe clé et artefacts de runtime, en particulier des constantes pouvant être chargées à partir du pool de constantes.

    Shenandoah, un ramasse-miettes à faible temps de pause

    Java 12 ajoute un nouvel algorithme de récupération de mémoire réduisant les temps de pause du GC en effectuant le travail d'évacuation en même temps que les threads Java en cours d'exécution. Développé par Redhat et déjà inclus depuis plusieurs mois dans leur JVM, Shenandoah est intégré en tant que fonctionnalité expérimentale dans Java 12. Les temps de pause avec Shenandoah sont indépendants de la taille du tas, ce qui signifie que vous aurez les mêmes temps de pause, que votre tas soit de 200 Mo ou de 200 Go.

    Suite de microbenchmarks

    Java 12 vient avec une suite de base de microbenchmarks introduite au code du JDK. Les développeurs peuvent facilement exécuter les microbenchmarks existants et en créer de nouveaux.

    Pas de littéraux de chaîne bruts (Raw String Literals)

    Enfin, rappelons que les littéraux de chaîne bruts (Raw String Literals) ont été supprimées du JDK 12. Les littéraux de chaîne bruts facilitent l'utilisation de chaînes contenant des caractères spéciaux et des chaînes multilignes. Ils sont créés avec le symbole backtick (accent grave) : `. Il s'agissait également d'introduire la fonction String::align pour faciliter l’utilisation de texte multiligne indenté et les fonctions unescape/escape pour les conversions vers ou à partir de littéraux de chaîne (traditionnels). Mais cette fonctionnalité qui était prévue pour le JDK 12 a été supprimée au dernier moment. Elle pourrait réapparaître dans les versions à venir.

    Source : Blog Oracle

    Et vous ?

    Que pensez-vous des nouveautés et améliorations de Java 12 ?
    Lesquelles appréciez-vous le plus et pourquoi ?
    Comptez-vous migrer vers cette version ou attendre la prochaine LTS ?

    Voir aussi :

    JavaFX disponible en version 12, la boite à outils graphique suit l'évolution de Java
    Quelle version de Java utilisez-vous ? Qu'est-ce qui vous empêche de migrer vers une version plus récente ?
    Java : une version à accès anticipé du JDK 13 est publiée, Oracle veut unifier les deux méthodes de la classe GraphicsEnvironment
    Java : Oracle publie la première release candidate du JDK 12, avec toutes les fonctionnalités majeures annoncées sauf les littéraux de chaînes bruts
    Quelles implémentations JPA (Java Persistence API) utilisez-vous et pourquoi ? Partagez votre expérience
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  3. #23
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    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 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    A noter que l'expression switch supporte également les blocs multi-lignes entre {} et qu'il faut alors utiliser l'instruction break pour faire un retour de la valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public void assignValue(Size size) {
            int height = 0;
            height = switch(size) {
                case S -> 18;
                case M -> {
                        int weight = 19;
                        break (weight > 10 ? 15 : 20); 
                    } 
                case L, XL -> 25;
            };
        }
    A noter de plus qu'il ne s'agit pas la d'une fonctionnalité définitive mais d'une fonctionnalité en aperçu (Preview Language and VM Features), ce qui veut dire que oui elle est bien complète et fonctionnelle mais peut être modifiée ou retirée d'un prochain JDK si jamais il s’avère qu'elle cause trop de soucis.

    Citation Envoyé par http://openjdk.java.net/jeps/12
    A preview language or VM feature is a new feature of the Java SE Platform that is fully specified, fully implemented, and yet impermanent. It is available in a JDK feature release to provoke developer feedback based on real world use; this may lead to it becoming permanent in a future Java SE Platform.
    Source : blog de intellij sur le support des switch expression dans Intellij 2019.1 disponible en Early Access (la version 2018.3 fonctionne avec le JDK 12 mais ne supporte pas cette syntaxe)

    EDIT - Avis perso : je pense que syntaxiquement c’était une erreur de choisir break et que return aurait été plus le bienvenu a cet endroit. Même si le mécanisme sous-jacent est probablement différent de celui des méthode, lambda et autres classe anonyme et qu'il ont fait ce choix pour des raisons d’analyse syntaxique ou de compilateur, il semble plus logique pour le programmeur moyen que la valeur renvoyée par un bloc, quel qu'il soit, se fasse de manière unifiée par une instruction return. D'un autre cote il s'agit aussi d'un bloc d'expression comme pour similaire a un for ou un while et donc ça pourrait poser le soucis que ça laisserait penser a ce que cette instruction sorte de la méthode englobant le switch.
    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

  4. #24
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par bouye Voir le message
    A noter que l'expression switch supporte également les blocs multi-lignes entre {} et qu'il faut alors utiliser l'instruction break pour faire un retour de la valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public void assignValue(Size size) {
            int height = 0;
            height = switch(size) {
                case S -> 18;
                case M -> {
                        int weight = 19;
                        break (weight > 10 ? 15 : 20); 
                    } 
            };
        }
    EDIT - Avis perso : je pense que syntaxiquement c’était une erreur de choisir break et que return aurait été plus le bienvenu a cet endroit. Même si le mécanisme sous-jacent est probablement différent de celui des méthode, lambda et autres classe anonyme et qu'il ont fait ce choix pour des raisons d’analyse syntaxique ou de compilateur, il semble plus logique pour le programmeur moyen que la valeur renvoyée par un bloc, quel qu'il soit, se fasse de manière unifiée par une instruction return. D'un autre cote il s'agit aussi d'un bloc d'expression comme pour similaire a un for ou un while et donc ça pourrait poser le soucis que ça laisserait penser a ce que cette instruction sorte de la méthode englobant le switch.
    J'imagine que les parenthèse sont optionnelles et qu'on peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    break weight > 10 ? 15 : 20;
    ?
    Perso sans parler de l'aspect technique qui ne me parait pas pertinent dans le choix du mot clé, le choix du mot clé "break" me parait plus pertinent que "return". Pour interrompre le file d’exécution d'une méthode, on utilise le mot clé "return". Pour interrompe le file d’exécution d'une structure de contrôle (while, for switch), on utilise "for" (voir "continue").

    Sinon plutôt (ou en complément) que break une autre syntaxe pourrait être pertinente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public void assignValue(Size size) {
            int height = 0;
            height = switch(size) {
                case S -> 18;
                case M -> {
                        int weight = 19;
                        weight > 10 ? 15 : 20; 
                    } 
            };
        }
    Comme dans pas mal de langage fonctionnel, l'évaluation d'un bloc d'instruction correspond à l’évaluation de la dernière instruction de ce bloc. Mais j'imagine qu'autoriser ça dans ce contexte forcerai à modifier le comportement des lambdas et du "return" classique afin d'uniformiser le langage.

  5. #25
    Membre du Club

    Homme Profil pro
    Hobbyiste
    Inscrit en
    Juillet 2018
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Hobbyiste

    Informations forums :
    Inscription : Juillet 2018
    Messages : 126
    Points : 68
    Points
    68
    Billets dans le blog
    1
    Par défaut Pas tout à fait en rapport avec les nouveautés
    Voilà,

    Pour les nouveautés ça a l'air chouette. Surtout l'amélioration du GC, qui me laisse espérer pour certains de mes projets.
    Mon problème est que j'utilise un IDE payant, et je ne peux pas renouveler ma licence pour l'instant. L'IDE JetBrains ne reconnaît la string de version "10" "11" "12" parce que ... raison commerciale certainement en 2019.

    Connaissez-vous un patch? Parce que Eclipse et Netbeans je ne sais pas les utiliser.

    PS il y a bien une version gratuite des produits JetBrains pour une utilisation libre (ce qui est mon cas) mais apparemment quand on a payé une licence on ne sait pas rétrograder.

  6. #26
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    C'est justement l'occasion ou jamais d'apprendre a utiliser un IDE open-source et durable
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  7. #27
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    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 840
    Points : 22 855
    Points
    22 855
    Billets dans le blog
    51
    Par défaut
    J'ai la version 2018.3 Community de Intellij IDEA et il fonctionne très bien avec les JDK 9, 10, 11 et 12 juste qu'il ne supporte le switch expression. La version 2019.1 qui est dispo sur le canal early access est sensé le supporter. Intellij IDEA ne supporte pas JLink par contre. Le supporte des modules fonctionne plutôt bien dans Intellij.

    Apache NetBeans 10 supporte les JDK 8, 9 et 10 mais pas trop 11 il me semble (à vérifier) et encore moins le 12 (il me semble que c'est prévu pour NetBeans 11 d'après la roadmap chez Apache). Apache NetBeans supporte JLink et couplé avec le JDK 8 supporte très bien javapackager. Le support des modules est défaillant dans Apache NetBbeans lorsqu'on utilise des legacy jar avec noms de modules auto-générés, pour une raison que je ne m'explique pas Apache NetBeans n'utilise pas la même règle de génération de nom de module que le JDK.
    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

  8. #28
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Les expressions switch ressemblent comme deux gouttes d'eau à celles qui arrivent en C# 8 (juste les flèches qui sont différentes : "->" en Java, "=>" en C#). Quant à savoir qui a copié l'autre, je ne m'avancerai pas... de toute façon Java et C# se sont toujours piqué des idées

  9. #29
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Eclipse IDE 2019-03 supporte bien Java 12 (et les switch expressions) en lui ajoutant cette extension: https://marketplace.eclipse.org/cont...se-2019-03-411
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/12/2018, 21h17
  2. Réponses: 52
    Dernier message: 28/06/2012, 16h36
  3. Réponses: 38
    Dernier message: 08/07/2010, 10h31
  4. Réponses: 0
    Dernier message: 03/09/2009, 03h38
  5. Réponses: 5
    Dernier message: 02/02/2009, 10h04

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