Pourquoi il serait temps de passer de Java 8 à Java 17 ?

Sortie depuis septembre 2021, Java 17 arrive avec son lot de nouveautés. Une nouveauté étant passée relativement inaperçue pour la majorité des développeurs étant le changement de politique de License du JDK d’Oracle (maintenant en « free use license »). L’objectif de cet article n’est pas d’énumérer les différents JDK (Oracle, AdoptOpenJDK, Azul, Amazon, Debian, …) et encore moins leurs différences en conditions d’utilisations. Le but de cet article de vous convaincre de délaisser votre fidèle version 8 de Java et de le laisser enfin prendre un peu de repos après bientôt 8 ans de bon et loyaux services. 

2. Java 11 est arrive à échéance dans 1 an  

Java 11, la précédente version LTS (support à long terme) arrivera à échéance en septembre 2023. Cette version n’avait pas réussi à amadouer les plus récalcitrants à faire le grand saut, près de 70 % de développement Java se ferait encore en Java 8 en 2021.

3. Les nouveautés de Java 8 à Java 17  

Voici la liste qui sont des arguments pour vous persuader à changer de version :

A) Le système de logging unifié de la JVM 

Introduit en java 9 (JEP 158) l’option -Xlog offre une syntaxe compacte pour les log de la JVM. 

Avant Java 9 :

  • XX:+PrintGCDetails \ 
  • XX:+PrintGCApplicationStoppedTime \ 
  • XX:+PrintGCApplicationConcurrentTime \ 
  • XX:+PrintGCCause \ 
  • XX:+PrintGCID \ 
  • XX:+PrintTenuringDistribution \ 
  • XX:+PrintGCDateStamps \ 
  • XX:+UseGCLogFileRotation \ 
  • XX:NumberOfGCLogFiles=5 \ 
  • XX:GCLogFileSize=10M \ 
  • Xloggc:/var/log/`date +%FT%H-%M-%S`-gc.log \ 

 Depuis Java 9 :

Xlog:gc*,gc+heap=debug,gc+ref=debug,gc+ergo*=trace,gc+age*=trace,gc+phases*=debug,safepoint*:file=/var/log/%t-gc.log:uptime,tags,level:filecount=10,filesize=20M 

B) Garbage collector 

G1 est devenu le Garbage Collector par défaut depu, selon moi, s java 11. On découvre, également, Z depuis Java 15 (JEP 377), ainsi que Shenandoah (JEP 379).

C) Les améliorations du langage 

Enfin, l’amélioration du langage reste l’atout principal : 

  • HTTP2 en standard,  
  • les Collections,  
  • Streams et  
  • Optionals 
  • Le Var 
  • Le Switch Expression 
  • Multiline Strings 
  • Les records 
  • Le nouveau NullPointerException 
  • Le Pattern Matchin pour InstanceOf 
  • Les Sealed Classes 

Oracle pousse de plus en plus la communauté Java à adopter Java 17 comme le nouveau standard du marché. 

Les améliorations du langage donnent un sérieux coup de jeune à Java, souvent ringardisé par ses cousins de la communauté Scala ou Kotlin. 

Après avoir accéléré son rythme de release et assumer son crime d’introduire des breaking change dans la version 9, Java présente enfin sa nouvelle mouture en support long terme et ne laisse guère d’argument aux utilisateurs de Java 8 pour ne pas embrasser cette nouvelle version (hormis les deadlines projets).

Partager cet article

Formulaire

Parlons-nous !