
� Alors que Java approche de son 30e anniversaire plus tard cette ann�e, il continue d'�tendre son ensemble d'outils pour r�pondre aux besoins �volutifs des d�veloppeurs, y compris les capacit�s qui soutiennent le d�veloppement d'applications aliment�es par l'IA �, a d�clar� Arnal Dayaratna, vice-pr�sident de la recherche, d�veloppement de logiciels, IDC. � Le large �ventail de fonctionnalit�s de la nouvelle version contribuera � accro�tre la productivit� des d�veloppeurs, leur permettant de fournir des applications riches en fonctionnalit�s � leurs organisations et � leurs clients plus rapidement et plus efficacement. La version Java 24 souligne que Java est in�gal� pour le d�veloppement d'applications critiques � l'�chelle de l'entreprise. �
� Au cours des 30 derni�res ann�es, Java a fourni aux d�veloppeurs une plateforme compl�te pour cr�er et d�ployer des applications qui r�pondent � une gamme vari�e de cas d'utilisation �, a d�clar� Georges Saab, vice-pr�sident senior, Oracle Java Platform et pr�sident du conseil d'administration d'OpenJDK. � Avec plus de 20 nouvelles fonctionnalit�s couvrant chaque �l�ment de Java, y compris de nouvelles capacit�s d'IA et de cryptographie post-quantique, la version Java 24 donne aux d�veloppeurs les outils dont ils ont besoin pour cr�er des applications innovantes et infus�es par l'IA. En tant qu'intendants de Java, nous sommes ravis de travailler avec la communaut� Java mondiale pour continuer � fournir un flux r�gulier de nouvelles fonctionnalit�s via notre cadence semestrielle pr�visible. �
Caract�ristiques du langage
Types primitifs dans les patterns, instanceof et switch (JEP 488 - deuxi�me aper�u) : Aide les d�veloppeurs � accro�tre la productivit� de la programmation Java en rendant le langage plus uniforme et plus expressif. Cette fonctionnalit� aide les d�veloppeurs � am�liorer la recherche de patterns en supprimant les restrictions relatives aux types primitifs que les d�veloppeurs rencontrent lorsqu'ils utilisent la recherche de patterns, instanceof et switch. Elle autorise �galement les patterns de type primitif dans tous les contextes de pattern et �tend instanceof et switch pour qu'ils fonctionnent avec tous les types primitifs. Les d�veloppeurs d'applications qui int�grent l'inf�rence IA b�n�ficieront tout particuli�rement de la prise en charge des types primitifs.
Corps de constructeurs flexibles (JEP 492 - troisi�me aper�u) : Aide les d�veloppeurs � am�liorer la fiabilit� du code gr�ce � l'introduction de deux phases distinctes de prologue et d'�pilogue dans le corps d'un constructeur. Cela permet aux d�veloppeurs de placer plus naturellement la logique qu'ils doivent actuellement prendre en compte dans des m�thodes statiques auxiliaires, des constructeurs interm�diaires auxiliaires ou des arguments de constructeurs. En outre, il pr�serve la garantie existante selon laquelle le code d'un constructeur de sous-classe ne peut interf�rer avec l'instanciation de la superclasse, ce qui a pour effet de rendre une classe plus fiable lorsque des m�thodes sont remplac�es.
D�clarations d'importation de modules (JEP 494 - deuxi�me aper�u) : Aide les d�veloppeurs � am�liorer leur productivit� en leur permettant d'importer rapidement et facilement tous les paquets export�s par un module, sans que le code d'importation ne doive se trouver dans le module lui-m�me. Cela simplifie la r�utilisation des biblioth�ques modulaires pour tous les d�veloppeurs et permet aux d�butants d'utiliser plus facilement des biblioth�ques tierces et des classes Java fondamentales sans avoir � apprendre o� elles se trouvent dans la hi�rarchie des paquets. Cette fonctionnalit� profite �galement aux d�veloppeurs qui souhaitent int�grer rapidement la logique m�tier � l'aide d'une inf�rence, d'une biblioth�que ou d'appels de service natifs de l'IA.
Fichiers source simples et m�thodes principales d'instance (JEP 495 - quatri�me aper�u) : Aide les �tudiants � �crire leurs premiers programmes sans avoir besoin de comprendre les caract�ristiques du langage con�ues pour les programmes volumineux, en offrant une ouverture en douceur � la programmation Java. Par cons�quent, les formateurs et les instructeurs peuvent introduire les concepts progressivement, et les �tudiants peuvent �crire des d�clarations simplifi�es pour des programmes � classe unique et �tendre leurs programmes de mani�re transparente avec des fonctionnalit�s plus avanc�es au fur et � mesure que leurs comp�tences s'accroissent. En outre, les d�veloppeurs Java exp�riment�s peuvent �crire de petits programmes de mani�re succincte et efficace sans avoir besoin d'utiliser des outils con�us pour des projets plus importants.
Biblioth�ques
Stream Gatherers (JEP 485) : Aide les d�veloppeurs � �tre plus efficaces dans la lecture, l'�criture et la maintenance du code Java en am�liorant l'API Stream pour prendre en charge les op�rations interm�diaires personnalis�es, qui permettent aux pipelines de flux de transformer les donn�es d'une mani�re qui n'est pas facilement r�alisable avec les op�rations interm�diaires int�gr�es existantes.
API de fichier de classe (JEP 484) : Aide les d�veloppeurs � am�liorer leur productivit� en fournissant une API standard pour analyser, g�n�rer et transformer les fichiers de classe Java et suivre le format de fichier de classe d�fini par la sp�cification de la machine virtuelle Java.
Scoped Values (JEP 487 - Quatri�me aper�u) : Aide les d�veloppeurs � am�liorer la facilit� d'utilisation, la compr�hension, la performance et la robustesse de leurs projets en permettant le partage de donn�es immuables au sein et entre les threads.
API vectorielle (JEP 489 - Neuvi�me incubateur) : Aide les d�veloppeurs � am�liorer leur productivit� en introduisant une API pour exprimer des calculs vectoriels qui se compilent de mani�re fiable au moment de l'ex�cution en instructions vectorielles sur les architectures de CPU prises en charge. Les d�veloppeurs peuvent ainsi obtenir des performances sup�rieures aux calculs scalaires �quivalents, qui sont souvent utilis�s dans les sc�narios d'inf�rence et de calcul de l'IA.
Concurrence structur�e (JEP 499 - Quatri�me aper�u) : Aide les d�veloppeurs � am�liorer la maintenabilit�, la fiabilit� et l'observabilit� du code multithread en simplifiant la programmation concurrente gr�ce � une nouvelle API pour la concurrence structur�e. En traitant les groupes de t�ches connexes ex�cut�es dans diff�rents threads comme une seule unit� de travail, la concurrence structur�e permet de r�duire les risques courants li�s � l'annulation et � l'arr�t, tels que les fuites de threads et les retards d'annulation.
Biblioth�ques de s�curit�
API pour la fonction de d�rivation de cl� (JEP 478 - Aper�u) : Aide les d�veloppeurs � se pr�parer aux environnements informatiques quantiques �mergents en offrant une s�curit� cryptographique pour les donn�es en transit. Cela am�liore la confidentialit� et l'int�grit� des communications.
M�canisme d'encapsulation des cl�s bas� sur un module-r�seau r�sistant aux algorithmes quantiques(JEP 496) : permet d'accro�tre la s�curit� des applications Java en fournissant une impl�mentation du m�canisme d'encapsulation des cl�s bas� sur un module-r�seau r�sistant aux algorithmes quantiques (ML-KEM). Cette fonctionnalit� constitue une �tape importante vers la pr�paration post-quantique et la fourniture �ventuelle d'une prise en charge de la cryptographie post-quantique (PQC) pour la plateforme Java, car les m�canismes d'encapsulation des cl�s sont utilis�s pour s�curiser les cl�s sym�triques sur des canaux de communication non s�curis�s � l'aide de la cryptographie � cl� publique.
Algorithme de signature num�rique bas� sur un module r�seau r�sistant aux algorithmes quantiques (JEP 497) : Permet d'accro�tre la s�curit� des applications Java en fournissant une impl�mentation de l'algorithme de signature num�rique bas� sur un module-r�seau r�sistant aux algorithmes quantiques (ML-DSA). Comme pour la JEP 496, cette fonctionnalit� constitue une �tape importante vers la pr�paration post-quantique et la fourniture �ventuelle d'un support PQC pour la plateforme Java, car les signatures num�riques sont utilis�es pour d�tecter les modifications non autoris�es des donn�es et pour authentifier l'identit� des signataires. ML-DSA est con�u pour se pr�munir contre les futures attaques de l'informatique quantique et a �t� normalis� par le National Institute of Standards and Technology (NIST) des �tats-Unis dans le cadre de la norme FIPS 204.
Outils
Liaison d'images d'ex�cution sans JMOD (JEP 493) : Aide les d�veloppeurs � am�liorer leur efficacit� en permettant � l'outil jlink de cr�er des images d'ex�cution personnalis�es sans utiliser les fichiers JMOD du JDK, ce qui peut r�duire la taille du JDK d'environ 25 %. Par cons�quent, les d�veloppeurs peuvent lier une image d'ex�cution � partir de modules, que ces modules soient des fichiers JMOD autonomes, des fichiers JAR modulaires ou qu'ils fassent partie d'une image d'ex�cution pr�c�demment li�e. Cette fonctionnalit� doit �tre activ�e lors de la construction du JDK ; elle n'est pas activ�e par d�faut et certains fournisseurs de JDK peuvent choisir de ne pas l'activer.
Mises � jour des performances et de l'ex�cution
En-t�tes d'objets compacts (JEP 450 - exp�rimental) : Aide les d�veloppeurs � accro�tre leur productivit� en r�duisant la taille des en-t�tes d'objets dans la JVM HotSpot de 96 � 128 bits � 64 bits sur les architectures 64 bits. Cela permet de r�duire la taille du tas, d'am�liorer la densit� de d�ploiement et d'augmenter la localit� des donn�es.
Extension de la derni�re barri�re pour G1 (JEP 475) : Aide les d�veloppeurs � am�liorer l'efficacit� en d�pla�ant l'expansion des barri�res du garbage collector G1 du d�but du pipeline de compilation du C2 JIT vers la fin, ce qui peut r�duire les frais g�n�raux si cela se produit apr�s les optimisations ind�pendantes de la plate-forme et l'allocation des registres. En simplifiant l'impl�mentation des barri�res du ramasse-miettes G1, cette fonctionnalit� contribue � am�liorer l'efficacit�, la compr�hensibilit�, la r�silience et la qualit� du code g�n�r� par C2.
Chargement et liaison anticip�s des classes (JEP 483) : Aide les d�veloppeurs � accro�tre leur productivit� et � am�liorer le temps de d�marrage en rendant les classes d'une application instantan�ment disponibles dans un �tat charg� et li� lorsque la machine virtuelle Java HotSpot d�marre. Cette fonctionnalit� ne n�cessite pas l'utilisation des outils jlink ou jpackage, ni aucune modification de la fa�on dont les applications sont lanc�es � partir de la ligne de commande, ni aucune modification du code des applications, des biblioth�ques ou des frameworks. Par cons�quent, elle permet de jeter les bases d'une am�lioration continue des temps de d�marrage et de pr�chauffage.
ZGC : suppression du mode non g�n�rationnel (JEP 490) : Aide les d�veloppeurs � r�duire les co�ts de maintenance li�s � la prise en charge de deux modes diff�rents en supprimant le mode non g�n�rationnel du Z Garbage Collector (ZGC).
Synchronisation des threads virtuels sans �pinglage (JEP 491) : Aide les d�veloppeurs � accro�tre leur productivit� en augmentant l'�volutivit� du code et des biblioth�ques Java qui utilisent des m�thodes et des instructions synchronis�es. En permettant aux threads virtuels de lib�rer les threads de la plateforme sous-jacente, cette fonctionnalit� donne aux d�veloppeurs l'acc�s � davantage de threads virtuels pour g�rer la charge de travail de leurs applications.
Code source
Shenandoah g�n�rationnel (JEP 404 - Exp�rimental) : Aide les d�veloppeurs � augmenter leur productivit� en am�liorant le ramasse-miettes Shenandoah avec des capacit�s exp�rimentales de collecte g�n�rationnelle qui am�liorent le d�bit durable, la r�sistance aux pics de charge et l'utilisation de la m�moire.
Suppression du port Windows 32-bit x86 (JEP 479) : Aide les d�veloppeurs � am�liorer leur efficacit� en supprimant le code source et la prise en charge du port Windows 32-bit x86, ce qui simplifie l'infrastructure de construction et de test du JDK.
D�pr�ciation du port 32-bit x86 pour...
La fin de cet article est r�serv�e aux abonn�s. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer � vous proposer des publications.