Oracle a annoncé la disponibilité de Java 24, la dernière version du langage de programmation et de la plateforme de développement les plus utilisés au monde. Java 24 (Oracle JDK 24) apporte des milliers d'améliorations pour aider les développeurs à maximiser leur productivité et à stimuler l'innovation. En outre, les améliorations apportées aux performances, à la stabilité et à la sécurité de la plateforme permettent aux entreprises d'accélérer leur croissance. « 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...
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.