BT

La Feuille de Route vers Kotlin 1.1

| par Sergio De Simone Suivre 14 Abonnés , traduit par Nicolas Frankel Suivre 7 Abonnés le 13 juin 2016. Durée de lecture estimée: 2 minutes |

Le développement de Kotlin s'approche de la version 1.1. Le concepteur principal de Kotlin, Andrey Breslav, a détaillé la feuille de route de la nouvelle version du langage de JVM de JetBrains, qui incluera de nouvelles fonctionnalités majeures du langage.

Kotlin 1.1 fournira un certain nombre de nouvelles fonctionnalités :

  • Les alias de type sont censés être un mécanisme d'abbréviation pour des déclarations de type plus longues, comme les signatures de fonction ; les alias de type n'introduiront pas de nouveaux types et peuvent être utilisés de manière interchangeable avec la définition originale.
  • Les références de méthode contrainte seront étendues pour supporter le référencement d'un membre d'un objet. De cette manière, vous pouvez prendre une référence à la méthode equals de l'objet String et l'affecter à un prédicat pour l'utiliser plus tard : val p:Predicate<String> == "foo"::equals. Kotlin 1.0.x supporte déjà cela pour les types.
  • Les propriétés déléguées seront autorisées au niveau du fichier, dans une classe ou dans une fonction :

    fun foo() {
      val lazyBar by lazy { ... }
      while (...) {
        if (...) {
          lazyBar.doBaz()
          ...
        }
      }
    }
    
    Les propriétés déléguées sont un mécanisme pour implémenter une fois pour toute certains types de propriété comme le chargement à la demande, les observables et les propriétés stockées dans des dictionnaires de sorte qu'elles ne doivent pas être implémentées à chaque fois.
  • Les classes de données supporteront l'héritage, rendant par la même possible le fait qu'une classe de données dérive d'une autre. Les classes de données sont des classes qui ne font que porter des données et pour lesquelles Kotlin génère des accesseurs, equals, hashCode et d'autres méthodes répandues. Cela rendra également possible d'étendre une classe de données depuis l'intérieur d'une classe sealed :

    sealed class C() {
      data class Example(...) : C()
    }
    
  • La décomposition permettra d'assigner des noms composés aux arguments d'une lambda comme dans l'exemple suivant, où l'argument du forEach - une paire, est décomposé en ses deux composants :

    myMap.forEach {
      (k, v) ->
        println(“$k => $v”)
    }
    
  • Les coroutines fourniront la colonne vertébrale du comportement asynchrone de Kotlin. D'après Breslav, les coroutines sont plus générales que le modèle async/await introduit en C# 5. Kotlin fournira également async/await mais construit à partir des coroutines, pas comme des primitives.

    fun loadImage(url: URL) = async {
      val bytes = await(loadBytes(url))
      bytesToImage(bytes)
    }
    

Du côté de l'outillage, Kotlin 1.1 incluera un support direct pour les fonctionnalités de Java 8/9, comme la génération de méthodes par défaut. De plus, la partie JavaScript sera mise à niveau avec l'ensemble actuel des fonctionnalités du langage.

Le développement de Kotlin est conduit par le Processus d'Evolution et d'Amelioration de Kotlin (KEEP) basé sur un dépôt GitHub où l'intégralité des cas d'utilisation est décrite.

Kotlin 1.1 sera compatible au niveau source et binaire avec les versions précédentes, ce qui veut dire que les nouvelles versions du compilateur Kotlin ne casseront pas la compatibilité avec des binaires et du code source plus ancien.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT