Journal Java 17 LTS

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
25
15
sept.
2021

Bonjour Nal,

Je t'Ă©cris pour te signaler la sortie de la nouvelle version avec support Ă  long terme de Java.

Celle-ci contient beaucoup de nouveautés voici les plus importes à mes yeux:

  • la dĂ©prĂ©ciation de l'API Applet ;
  • le filtrage par motif pour l'instruction switch ;
  • les classes scellĂ©es ;
  • une API vectorielle.

Si comme moi tu n'utilises que les versions LTS, il y aussi quelques changements intéressants depuis la version 11 :

  • le portage sur Alpine Linux ;
  • les records ;
  • les blocs de texte.

https://openjdk.java.net/projects/jdk/17/

  • # Wayland + Awt

    Posté par  (site web personnel) . Évalué à 4.

    Mince, c'est un oubli ou ce sera ajouter plus tard ?

    On peut toujours utiliser swt, le toolkit graphique d'Eclipse, basé sur Gdk, donc supportant nativement Wayland. Malheureusement les applications Swing utilisent AWT ces applications doivent passer par XWayland.

    C'est un problème lorsque l'on a besoin du "fractional scaling" pour avoir la même taille de police sur plusieurs écrans différents (ou qu'on aime bien les grosses polices).

    • [^] # Re: Wayland + Awt

      Posté par  (site web personnel) . Évalué à 1. Dernière modification le 15 septembre 2021 à 17:34.

      Il y a un thread de discussion, pour ceux intéressés :

      Call for Discussion : New Project to support the Wayland display server on Linux

    • [^] # Re: Wayland + Awt

      Posté par  . Évalué à 3.

      Je m'intéresse pas au sujet, mais il faut probablement aussi regarder du coté de JavaFX qui est sorti du JDK.

      Je crois que Jetbrain a des velléités de créer une bibliothèque d'UI pour java, mais pareil comme je m'intéresse peu au sujet, j'ai pas vraiment regarder.

      Malheureusement les applications Swing utilisent AWT ces applications doivent passer par XWayland.

      Il suffirait pas qu'AWT soit backé par gtk4 ou plus ?

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • # ça nous rajeunit pas…

    Posté par  (site web personnel, Mastodon) . Évalué à 6.

    Je verse une larme nostalgique quand je lis que l'API Applet est dépréciée.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: ça nous rajeunit pas…

      Posté par  . Évalué à 3.

      Anéfè,
      mon stage en maitrise MIAGE était une applet signée en SWING communiquant avec un CICS via Socket, permettant d'éditer des timesheets … snif snif

  • # filtrage par motif

    Posté par  (site web personnel) . Évalué à 5.

    Ca m'a tout l'air d'être à la mode. Ca arrive dans Python, dans Java. D'autres endroits ?

    J'ai l'impression que c'est RUST qui l'a rendu populaire même si je l'ai vu la première fois en Caml qu'on m'a forcé à apprendre durant mes études.

    • [^] # Re: filtrage par motif

      Posté par  (site web personnel) . Évalué à 7.

      C'est pas tout neuf, ça existe dans des vieux langages (Erlang par exemple).

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: filtrage par motif

        Posté par  . Évalué à 4. Dernière modification le 17 septembre 2021 à 13:59.

        Ce n'est pas ce qu'il dit. Il parle de langages qui n'ont pas d'affinité particulière et qui se mettent au pattern matching (comme ils se sont mis aux lambda avant).

        https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

    • [^] # Re: filtrage par motif

      Posté par  . Évalué à 5.

      perl avait un given/when qui fait du filtrage par motif depuis la version 5.10 sortie en 2007 par exemple (et c'est un rétroportage de perl 6/raku).

      D'autres endroits ?

      En C# avec la version 7 sortie en 2016.
      En ruby depuis la 2.7 sortie en 2019.

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

    • [^] # Re: filtrage par motif

      Posté par  . Évalué à 3.

      Caml qu'on m'a forcé à apprendre durant mes études

      Pour ma part c'Ă©tait Oz, qui supporte aussi le pattern matching (depuis longtemps).

  • # titre

    Posté par  . Évalué à 5. Dernière modification le 16 septembre 2021 à 10:07.

    Si comme moi tu n'utilises que les versions LTS, il y aussi quelques changements intéressants depuis la version 11 :

    • Les NullPointerException qui ont des messages d'erreur c'est cool aussi.
    • les records aussi sont cool

    le filtrage par motif pour l'instruction switch ;

    Je suis toujours gêner d'appeler ce que fais java du filtrage par motif vu que ça n'est pas par motif. On reste sur du typage nominal (et non structurel) et je n'ai rien vu pour changer ça dans les prochaines.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

    • [^] # Re: titre

      Posté par  . Évalué à 2.

      Si comme moi tu n'utilises que les versions LTS, il y aussi quelques changements intéressants depuis la version 11 :

      • Les NullPointerException qui ont des messages d'erreur c'est cool aussi.
      • les records aussi sont cool

      et les switch expressions bien sûr

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • # Ça aurait mĂ©ritĂ© une dĂ©pĂŞche

    Posté par  (site web personnel, Mastodon) . Évalué à 0.

    En fait ça mérite une dépêche un peu plus fouillée même.

    Ce que j'en dis.

    « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

  • # classe scellĂ©es

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    Si comme moi vous n'aviez pas compris ce que c'est :
    https://stackoverflow.com/a/69234315/1699311
    (j'imagine qu'il y avait un réel besoin)

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: classe scellĂ©es

      Posté par  . Évalué à 3.

      Pour info, java a des JEP qui sont équivalent aux PEP de python si ça parle plus. Il y a toujours une section motivation ici.

      Pour le cas des sealed class (donc qui sont des interfaces dont l'héritage est limité) est pratique avec les switch expression.

      Si tu as :

      return switch(shape) {
          case Square s -> /* */;
          case Circle c -> /* */;
      };

      Tu es obligé d'avoir un switch complet. Les sealed class permettent de garantir la complétude sans avoir de default.

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.