Java 17 : nouveautés et téléchargement
Tout ce que vous avez toujours voulu savoir sur Java 17 : améliorations, nouveautés, téléchargement, se former.
Java est un langage de programmation indispensable au développement informatique, dans la mesure où beaucoup d’évolutions reposent sur son utilisation : employé aussi bien sur les ordinateurs que les smartphones ou encore les consoles de jeux, il s’avère incontournable. Il est édité par la société Oracle.
Pendant longtemps, Java a opté pour un cycle de release de plusieurs années entre chaque version. La version 9 s’accompagne d’une véritable nouveauté puisque depuis sa sortie, Java propose une nouvelle version tous les 6 mois ! La version 17, sortie en septembre 2021, est la dernière LTS (long-terme-support) du langage avant celle qui est prévue fin 2023.
Vous saurez tout sur Java 17 au terme de la lecture de cet article ! Mais avant tout, qu’est-ce que Java 17 précisément ?
Présentation de Java 17
Il s’agit d’une version majeure, qui représente l’aboutissement des efforts constants d’Oracle pour améliorer et moderniser son langage de programmation phare. Oracle s’est fondé à la fois sur les versions précédentes de Java pour les faire évoluer, mais a aussi pris en compte les tendances en matière de programmation, pour proposer cette nouvelle version.
Ainsi, Java 17 est le fruit de nombreuses améliorations de performances, de nouvelles fonctionnalités de langage, de corrections de bugs et d’améliorations de sécurité. Conformément à la stratégie de lancement d’Oracle, étant une version LTS, Java 17 bénéficie d’un support à long terme, ce qui signifie qu’il recevra des mises à jour de sécurité et de bugs pendant une période prolongée. C’est un avantage non négligeable, qui rend cette version particulièrement adaptée à une utilisation en environnement de production.
En effet, non seulement le support à long terme prolonge la période de maintenance du logiciel, mais il modifie également le type et la fréquence des correctifs pour réduire les risques et les interruptions du déploiement logiciel, tout en favorisant sa fiabilité.
Java 17 sert à développer une gamme très variée d’applications logicielles. Pourquoi utiliser ce langage de programmation plutôt qu’un autre ?
Et Java 21 ? À l’automne 2023 sortira la nouvelle version LST Java 21. Que pouvons-nous en attendre ? Oracle annonce, entre autres, l’utilisation de threads virtuels en tant que fonctionnalité d’aperçu, une syntaxe encore plus simple ainsi que des collections séquencées. Oracle suit les tendances en proposant un langage plus simple et surtout mieux sécurisé. Nous aurons certainement l’occasion de vous en reparler !
Pourquoi utiliser Java 17 ?
Avantages de Java 17
Voici quelques-uns des avantages de Java 17 les plus remarquables :
- Une amélioration de la performance avec la prise en charge de macOS et AArch64 à l’aide de JEP 391. Elle prend en charge la série de processeurs (M1) Apple.
- Une nouvelle licence, gratuite et plus ouverte que la précédente : avec Java 17, Oracle publie les JDK sous une nouvelle licence appelée « Oracle No-Fee Terms and Conditions » (NFTC). Cette licence autorise l’utilisation en interne de programmes non modifiés à des fins de développement, de prototypage, de démonstration et de tests, ou encore pour quelques opérations commerciales.
- Un langage très utilisé : d’après le rapport de New Relic State of the Java Ecosystem publié en 2022, Java 17 a dépassé les versions Java 6, Java 10 et Java 16 au cours des quelques mois écoulés depuis sa sortie. De même, d’après Statista, Java est le 5è langage le plus utilisé chez les développeurs.
- Une adoption massive de la conteneurisation, liée aux exigences de performances et d’efficience notamment dans les environnements Cloud.
- Un intervalle raccourci entre les versions Support Long Term (LTS) : puisque les applications d’entreprise utilisent largement Java, la stabilité est essentielle. Les versions LTS ont été créées pour que les utilisateurs bénéficient d’un support étendu. Ainsi, ces versions deviennent naturellement plus stables et sécurisées. Depuis Java 17, l’intervalle entre les versions LTS est désormais de deux ans au lieu de trois.
Améliorations de Java 17 par rapport à ses versions antérieures
Nous allons ici nous attarder sur certains des ajouts de Java 17 par rapport à ses versions antérieures et nous concentrer sur ses aspects programmatiques.
Classes et interfaces scellées
Nous sommes tous familiers avec l’héritage, pilier fondateur de la logique de programmation orientée objet. Avec les classes scellées, il est désormais possible de définir avec précision le périmètre d’une classe, en indiquant quelles classes seront autorisées à en hériter. Cela fonctionne aussi avec les interfaces et leurs implémentations. La mise en place de cette nouveauté passe par l’ajout de 2 mots clés : sealed et permits. Voyons tout cela au moyen d’un exemple :
J’ai défini ici une interface scellée nommée Service (notez la présence du mot-clé sealed). Seules les classes Voiture et Camion pourront implémenter cette interface, grâce au mot-clé permits.
Blocs de texte
Il est enfin possible de créer des blocs de texte de façon simple ! Cette nouvelle syntaxe s’avère très utile pour écrire du xml ou du json, par exemple.
Notons que les espaces sont gardées et donc l’indentation du bloc de texte sera respectée.
Type Record
Un record permet de créer facilement des objets immutables. Voilà un exemple avec une classe Personne, qui contient des données liées à une personne (nom, âge…).
Voici la syntaxe utilisée dans la plupart des cas avant Java 17 pour définir cette classe :
Et voici la nouvelle syntaxe Java 17 :
Comme on peut le voir, les attributs du record sont définis de manière beaucoup plus lisible et nécessitent moins de code fastidieux. Il y a cependant une contrainte notable avec ce nouveau type : puisque la classe est finale, elle ne peut pas hériter d’autres classes.
Pattern matching
Cette fonctionnalité concerne le mot-clé instanceof, qui permet de vérifier le type d’un objet.
Il n’est désormais plus nécessaire de créer un objet en faisant un cast. Avec la nouvelle syntaxe, l’objet est créé au moment de l’appel à instanceof et il est possible de faire directement appel à ses propriétés par la suite, sans avoir à passer par un objet temporaire.
Nouveau Switch
La nouvelle syntaxe des switch permet une réduction drastique du nombre de lignes de code :
Comme vous pouvez le voir grâce à l’exemple ci-dessus, il est désormais possible de retourner une valeur grâce à un switch.
Par ailleurs, le nouveau switch permet d’inclure la nouvelle syntaxe de pattern matching présentée dans le paragraphe précédent et de créer des conditions dans les clauses :
Maintenant que vous en avez appris davantage sur le fonctionnement de Java, comment le télécharger ?
Comment télécharger Java 17 ?
Vérifier que des versions antérieures ne sont pas installées sur votre OS
Pour cela, il faut lancer l’invite de commande et écrire “java – version”. Dans le cas où aucune version antérieure n’est installée, vous verrez apparaître le message suivant : “ ‘’java’ n’est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes”.
Dans le cas contraire, vous devez désinstaller la version antérieure.
Télécharger le kit correspondant à votre OS
Pour cela, accédez aux versions d’archives sur Oracle et choisissez la 17. Comme le rappelle Oracle, les anciennes versions du JDK (environnement de développement) sont fournies pour aider les développeurs à déboguer les problèmes des systèmes plus anciens. Ils ne sont pas mis à jour avec les derniers correctifs de sécurité et ne sont donc pas recommandés pour une utilisation en production.
Comment apprendre Java 17 ?
Nous vous proposons de vous tourner vers 2 méthodes, valables d’ailleurs pour chaque version de Java.
Pour les autodidactes : livres, tutoriels, articles…
Nous vous conseillons bien entendu de choisir des documents relativement récents, qui prennent en compte les dernières évolutions technologiques.
La sphère Internet regorge d’informations précieuses, qui vous aideront à y voir plus clair.
Nous pouvons par exemple vous conseiller certaines vidéos YouTube, comme la chaîne Graven Développement.
De même, le MOOC créé par l’Ecole Polytechnique de Lausanne peut vous fournir des bases efficaces en codage avec Java.
Pour les développeurs confirmés : les certifications
Les certifications présentent deux avantages essentiels : le premier est de vous encourager à devenir un expert dans votre domaine, le second est d’offrir une reconnaissance de vos compétences et de vos connaissances. Parmi les certifications existantes, nous en présenterons deux.
- La certification Java Foundations 1Z0–81 : c’est la première certification qu’un tout nouveau développeur Java devrait obtenir. Il s’agit d’un examen de niveau fondamental, qui démontre votre compréhension du langage et des concepts de programmation Java. Il valide vos compétences sur la façon d’écrire et d’exécuter un programme Java, de travailler avec le kit de développement Java (JDK) et l’environnement d’exécution Java (JRE).
- La certification Java SE 17 (1Z0-829) : cet examen dure 90 minutes et vous permet d’être certifié développeur professionnel par Oracle pour Java 17.
Vous avez désormais toutes les clés en main pour aborder Java 17 sereinement ! Nous espérons que cet article vous aura été utile. Nous vous invitons à consulter les articles de notre rubrique Qim Tech qui pourront vous éclairer sur d’autres points. De même, nos experts du département Custom Software Development sont à votre écoute.