IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Kotlin 1.5.20 est disponible
Avec des nouveautés et améliorations pour une meilleure interopérabilité avec Java entre autres

Le , par Michael Guilloux

19PARTAGES

14  0 
JetBrains continue de maintenir Kotlin à jour avec les dernières fonctionnalités Java telles que les invocations dynamiques et offrir une meilleure interopérabilité avec Java en ajoutant la prise en charge du projet Java Lombok et JSpecify. L'entreprise poursuit également son travail visant à rendre la bibliothèque standard plus cohérente sur toutes les plateformes, ainsi qu'à investir dans les outils Gradle et le nouveau backend JS IR.

Kotlin 1.5.20 est disponible avec un bon lot de nouveautés et améliorations. Il s'agit notamment de :

  • Améliorations de Kotlin/JVM, y compris la concaténation de chaînes via invokedynamic. On note aussi la prise en charge expérimentale de l'appel des méthodes Java générées par Lombok et des annotations de nullité JSpecify.
  • Améliorations Kotlin/Native, y compris l'exportation expérimentale des commentaires KDoc vers les en-têtes Objective-C.
  • Guide de migration du backend Kotlin/JS IR .
  • Améliorations de Gradle, y compris l'exécution parallèle de tâches Kotlin.
  • Améliorations de la bibliothèque standard pour aligner le comportement des conversions de caractères sur toutes les plateformes.



Kotlin/JVM

Pour bénéficier des dernières fonctionnalités JVM, Kotlin a étendu l'utilisation des invocations dynamiques (invokedynamic). Kotlin 1.5.0 a apporté le support par défaut pour la compilation des adaptateurs SAM, tout en laissant des fonctionnalités similaires pour la concaténation de chaînes et les lambdas en phase expérimentale. Dans Kotlin 1.5.20, la concaténation des chaînes de compilation aux appels dynamiques est désormais supportée par défaut.

Pour maintenir la meilleure interopérabilité avec Java, Kotlin 1.5.20 apporte un support expérimental pour :

  • L'appel de méthodes générées par Lombok dans le même module. Le plugin de compilateur Lombok expérimental permet d'utiliser les déclarations Java générées par Lombok dans des sources mixtes Kotlin/Java. Les annotations Lombok ne fonctionnent que dans les sources Java et sont ignorées si vous les utilisez dans le code Kotlin. Les annotations prises en charge comprennent @With, @Data, @Getter, @Setter, @NoArgsConstructor, @RequiredArgsConstructor et @AllArgsConstructor.

  • Le projet JSecify, qui inclut un ensemble unifié standard d'annotations de nullité Java. Cela vous permet de fournir des informations de nullité plus détaillées pour aider Kotlin à maintenir la sécurité de type null lors de l'interopérabilité avec Java. Vous pouvez définir la nullabilité par défaut pour la déclaration, le package ou la portée du module, spécifier la nullabilité paramétrique, etc. Veuillez toutefois noter que le projet JSpecify est en cours de développement. Son API et son implémentation peuvent donc changer considérablement à tout moment. Voici un exemple de la façon dont Kotlin peut gérer les annotations JSpecify :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
 
// JavaClass.java
import org.jspecify.nullness.*;
 
@NullMarked
public class JavaClass {
    public String notNullableString() { return ""; }
    public @Nullable String nullableString() { return ""; }
}
Code : Sélectionner tout
1
2
3
4
5
6
 
// Test.kt
fun kotlinFun() = with(JavaClass()) {
  notNullableString().length // OK
  nullableString().length    // Warning: receiver nullability mismatch
}

Kotlin/Native

Le compilateur Kotlin/Native peut désormais exporter les commentaires de documentation (KDoc) du code Kotlin vers les frameworks Objective-C. Cela rendra ces commentaires visibles pour les utilisateurs du framework. Ce support fonctionne également pour Swift, et il est expérimental.

Une autre amélioration concerne le fonctionnement de Array.copyInto() à l'intérieur d'un tableau. Il est désormais jusqu'à 20 fois plus rapide (selon le nombre d'objets copiés) grâce à l'optimisation de la gestion de la mémoire pour ce cas.

Kotlin/JS

Kotlin 1.5.0 a déjà livré le nouveau backend JVM IR stable. La seule pièce manquante du nouveau backend Kotlin IR est donc la partie stable JS. Un nouveau guide de migration vous permettra de migrer facilement vers le nouveau backend JS. Le guide décrit les modifications que vous devrez apporter à votre code Kotlin/JS pour le faire fonctionner avec le nouveau compilateur IR. JetBrains poursuit son travail pour rendre le backend Kotlin/JS IR stable et vos retours seront donc les bienvenus.

Gradle

Kotlin 1.5.20 apporte quelques améliorations d'outils :

  • L'exécution parallèle des tâches Kotlin est désormais entièrement contrôlée par le mécanisme d'exécution parallèle de Gradle. La propriété kotlin.parallel.tasks.in.project a été dépréciée.
  • JetBrains a implémenté la mise en cache expérimentale des classloaders de processeurs d'annotation dans kapt (Kotlin Annotation processing tool), ce qui rend l'outil plus rapide pour des exécutions consécutives de Gradle dans certains cas.

Bibliothèque standard

Kotlin 1.5.20 continue de fournir une expérience similaire sur toutes les plateformes pour les fonctionnalités Char de la bibliothèque standard :

  • isLowerCase()/isUpperCase() fournit désormais le même résultat sur toutes les plateformes en vérifiant tous les caractères, pas seulement les lettres.
  • digitToInt() prend désormais en charge tous les caractères numériques Unicode pour toutes les plateformes – Kotlin/JVM, Kotlin/Native et Kotlin/JS. Auparavant, il ne fournissait un support complet que pour Kotlin/JVM.



Mise à jour automatique vers Kotlin 1.5.20

Si vous utilisez IntelliJ IDEA ou Android Studio, votre EDI vous donnera la possibilité de passer automatiquement à la nouvelle version de Kotlin dès qu'elle sera disponible. Vous pouvez toujours télécharger les dernières versions de ces EDI pour obtenir une prise en charge étendue de Kotlin :

  • IntelliJ IDEA pour développer des applications Kotlin pour différentes plateformes.
  • Android Studio pour le développement d'applications mobiles Android et multiplateformes.

Assurez-vous d'avoir également mis à jour les bibliothèques kotlinx vers des versions compatibles et spécifié la version 1.5.20 de Kotlin dans les scripts de construction de vos projets existants.

Nouveautés dans Kotlin 1.5.20
Consulter la feuille de route de Kotlin

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 07/07/2021 à 12:57
Le fait que Kotlin soit porté par JetBrains, société qui gère l'un des meilleurs IDE du marché (cf: IntelliJ) et Google pour remplacer Java (à cause des problèmes de licences avec Oracle) aide à populariser le langage, mais dans les faits ça reste un langage JVM pour le moment, et même si on se passe de la JVM on arrive à une techno qui rentre dans la catégorie des langages qui embarquent leur garbage collector comme Golang. Avec les évolutions qui ont étés apportés à Java, je ne vois pas de réel intérêt à utiliser Kotlin si ce n'est faire des apps natives Android.
2  0 
Avatar de 23JFK
Membre émérite https://www.developpez.com
Le 07/07/2021 à 13:49
Citation Envoyé par Gugelhupf Voir le message
...
Même pour android, l'API est très incomplète et s'appuie sur l'interopérabilité kotlin/java pour boucher les trous... Personnellement, je trouve sa syntaxe dégueulasse et ces nouveaux concepts comme le nullale safety sans utilité démontrée... Quand on connaît un minimum la programmation.
1  0 
Avatar de 23JFK
Membre émérite https://www.developpez.com
Le 05/07/2021 à 17:26
J'ai l'impression que ce langage est en train d'échouer dans sa tentative d'être le remplaçant de java.
0  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 05/07/2021 à 18:00
Kotlin n'est pas du tout un échec c'est en hausse sur la dernière étude emploi 2020.

D'après ce que j'ai constaté dans les faits c'est surtout pour les nouvelles applications mobiles pour Android que Kotlin se développe petit à petit.

Pour les gros projets des grands comptes sur Java EE ca ne change rien par contre, donc les grands comptes et les SSII continuer de recruter a tour de bras sur Java aucun changement la dessus.
0  0 
Avatar de 23JFK
Membre émérite https://www.developpez.com
Le 05/07/2021 à 18:10
Citation Envoyé par Pierre Louis Chevalier Voir le message
...
Selon cet indice, la croissance de java reste 2 à trois fois supérieure.
0  0