3 pièce(s) jointe(s)
Kotlin est maintenant passé de Bêta à Release Candidate, la version 1.0 du langage
Kotlin est maintenant passé de Bêta à Release Candidate, la version 1.0 du langage
est disponible et apporte plusieurs améliorations
Le langage de programmation Kotlin est désormais passé de Bêta à Release Candidate. L’annonce a été faite dans un billet de blog publié sur le site de Jetbrains dans lequel l’équipe derrière le langage ainsi que la communauté qui la suit se réjouissent de cette nouvelle. La version 1.0 du langage de programmation a fait l’objet d’une recompilation complète, assure l’auteur du billet, Andrey Breslav, qui est l’un des concepteurs du langage chez Jetbrains. Il ajoute que cela a été fait dans le but de s’assurer qu’aucun code compilé avec les anciennes versions du langage ne subsiste.
Cette nouvelle version de Kotlin vient avec des changements considérables. Tout d’abord, l’équipe derrière le langage a tenu à faire un nettoyage. Ainsi les anciens éléments dépréciés du langage qui étaient marqués jusque là comme avertissements sont maintenant considérés comme des erreurs et les éléments dépréciés qui étaient générés dans le Bytecode ont tout simplement été enlevés. La plupart des changements apportés au langage en tant que tel constituent des changements mineurs et concernent le plus souvent des résolutions de bogues.
La nouvelle version du langage vient aussi avec le support d’une nouvelle annotation @delegate. Cette annotation permet par exemple pour marquer un objet délégué avec l’annotation @Transient, de faire tout simplement comme dans le bout de code qui suit :
L’auteur du billet de blog fait également noter qu’ils ont résolu dans cette version un nombre important de bogues relatifs aux projections de types. Le compilateur pourrait maintenant détecter certains bogues qui lui échappaient jusqu’ici dans le code source. Par exemple, le bout de code qui suit était accepté par erreur par le compilateur, mais ne l’est plus dans la nouvelle version.
Le compilateur arrive maintenant à détecter une erreur dans ce code et renvoie le message d’erreur suivant.
Andrey Breslav fait état également de certaines améliorations en ce qui concerne l’interopérabilité avec le langage Java, notamment celles apportées aux propriétés de synthèse dérivées du couple get/set de Java. La version 1.0 de Kotlin permet maintenant l’utilisation de setters Java qui retournent des valeurs. Par ailleurs, il a été ajouté à cette nouvelle version du langage, le support des annotations @Nullable et @NotNull ceci à travers plusieurs bibliothèques populaires telles que javax.annotations ou encore Android SDK.
La bibliothèque standard a également connu certains changements avec son code source qui a été redistribué entre plusieurs packages sans pour autant modifier le code source lui-même. Certaines fonctions ont été transformées en des fonctions de type inline et plusieurs de ces fonctions ne peuvent plus être invoquées à partir d’un code Java. D’après les concepteurs du langage, cela va aider à réduire considérablement la taille de la bibliothèque en exécution. Les fonctions Map.getOrElse() et Map.getOrPut() considèrent désormais les clés associées à une valeur comme manquantes et les fonctions mutableListOf, mutableSetOf, mutableMapOf ont été ajoutées pour la création de collections mutables. La fonction toArrayList a été dépréciée et remplacée par la fonction toMutableList. Les fonctions associate et associateBy quant à elles permettent la création de maps, elles remplacent respectivement les fonctions toMap et toMapBy. Les fonctions de comparaisons ont été déplacées dans le package kotlin.comparisons qui n’est pas importé par défaut.
Des améliorations ont également été apportées à l’EDI (Environnement de Développement Intégré) de Kotlin. Il s’agit notamment de la complétion de code qui suggère des noms de variable ou de fonctions basés sur les identifiants non reconnus dans le fichier courant. Les expressions when sont également autocomplétées et l’annotation @Suppress marche maintenant avec les inspections de l’EDI. Avec cette nouvelle version, si l’environnement d’exécution de Kotlin n’est pas configuré, l’IDE affiche une notification « Kotlin not configured » lors de l’ouverture d’un fichier d’extension .kt. Ces améliorations concernant l’EDI peuvent ne pas être prises en compte par les mises à jour automatiques d’IntelliJ IDEA, les utilisateurs de cet environnement de développement devront par conséquent télécharger et installer le plug-in proprement.
Source : blog Jetbrains
Et vous ?
:fleche: Que pensez-vous de cette nouvelle version de Kotlin ?
Voir aussi
:fleche: la rubrique Autres langages pour la JVM
1 pièce(s) jointe(s)
Kotlin 1.0 est disponible en version finale
Kotlin 1.0 est disponible en version finale
le langage de programmation pour JVM et Android mise sur la compatibilité avec plusieurs outils existants
Depuis plus de 5 ans, Jetbrains et les contributeurs de la plateforme GitHub se sont lancés dans la mise en œuvre de Kotlin, le langage de programmation open source statiquement typé. Selon ses concepteurs, Kotlin se veut clair, sûr et suffisamment outillé pour répondre aux besoins des utilisateurs.
Un des points saillants mis en avant par l’équipe de développement, outre ceux cités, est son caractère interopérable avec le langage de programmation Java et sa compatibilité avec les architectures déjà existantes. Selon les dires d’Andrey Breslav, le concepteur en chef de ce langage, « n’importe quelle bibliothèque Java peut être utilisée dans Kotlin et vice versa ».
Aussi, ajoute-t-il, les développeurs embrassant ce langage n’auront pas besoin de tout « réapprendre, réinventer, refaire à partir de zéro », car les outils tels qu’Ant, Gradle et Maven peuvent être utilisés pour la compilation, IntelliJ IDEA ou Eclipse peuvent être utilisés comme environnement de développement et un outil en ligne permet de coder et effectuer des tests directement dans le navigateur. C’est ce qui incite Andrey et son équipe à décrire Kotlin comme un langage « pragmatique ».
Au début de ce mois, l’équipe de Jetbrains avait annoncé la disponibilité de la version Release Candidate (RC) de Kotlin 1.0. Avec cette version RC, les développeurs devaient recompiler leur code pour s’assurer qu’il fonctionne avec la nouvelle mouture.
Par ailleurs, la release candidate marquant une étape importante vers la sortie de première version stable, il était évident que la version finale de ce langage ne tarderait pas à voir le jour. Et depuis quelques heures, c’est désormais le cas. L’équipe de Jetbrains vient d’annoncer la disponibilité de la version finale de Kotlin 1.0.
À partir de cette phase, affirme Andrey Breslav, « nous nous engageons à assurer à long terme la compatibilité descendante du langage et de sa bibliothèque standard (Kotlin-stdlib) ». Pour parvenir à cela, Andrey explique dans la feuille de route « qu’un nouveau compilateur fonctionnera avec des binaires plus anciens (mais les compilateurs plus anciens ne pourront pas comprendre la composition des binaires plus récents, comme javac 1.6 n’est pas capable de lire les classes compilées par javac 1.8) ».
De même, plusieurs travaux tels que l’amélioration des performances de la chaine d’outils de Kotlin sont prévus, ainsi qu’un support de JavaScript et un support générant du bytecode Java 8 avec des expressions lambda optimisées.
Mais pour l’heure, l’on note dans cette version finale quelques changements au niveau de la bibliothèque et du compilateur. On peut citer par exemple le fait que :
- l’annotation kotlin.Metadata doit être utilisée au lieu de KotlinClass ;
- les anciennes annotations des métadonnées ont été supprimées du package kotlin.jvm.internal ;
- l’usage de HALF_EVEN comme mode d’arrondi par défaut est préconisé pour l’opérateur de division BigDecimal ;
- la taille de la mémoire tampon pour les opérations IO est maintenant de 8 k comme celle par défaut dans la classe Java BufferedReader ;
- les éléments de la bibliothèque dépréciés dans la version RC ont été abandonnés ;
- le problème d’incompatibilité avec RoboVM a été résolu ;
- une mauvaise inférence du type du résultat obtenu avec la structure conditionnelle if/else a été réglée ;
- un problème de visibilité interne des projets Gradle dans IntelliJ IDEA 16 a été corrigé ;
- le compilateur déclenche l’exception UninferredParameterTypeConstructor dans un bloc de code où tous les types sont conditionnés par la condition When. Ce problème a été également réglé.
Pour ceux qui souhaitent utiliser Kotlin, nous rappelons qu’il est possible de s’en servir pour développer des applications côté serveur, des applications mobiles Android et des applications de bureau.
Kotlin sur GitHub
Source : Blog Jetbrains
Et vous ?
:fleche: Que pensez-vous de cette version finale ? Les arguments présentés sont-ils suffisants pour vous faire migrer vers ce langage ?
:fleche: Utilisez-vous déjà Kotlin ? Comment le trouvez-vous vis-à-vis des autres langages ?
Voir aussi
:fleche: Forum Autres langages pour la JVM
Kotlin 1.2 est disponible, cette nouvelle version permet de partager le code entre la JVM et JavaScript
Kotlin 1.2 est disponible : cette nouvelle version permet de partager le code entre la JVM et JavaScript
et améliore de 25 % les temps de compilation
L'équipe JetBrains vient de publier une nouvelle version majeure de son langage de programmation Kotlin : la version 1.2. Rappelons-le, Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage statique qui permet de compiler pour la Machine virtuelle Java (JVM) et JavaScript. Il est également un langage de choix pour le développement Android. Sa première version officielle, Kotlin 1.0, a été publiée en février 2016 et la version 1.1 en mars dernier.
Kotlin 1.2 est donc la deuxième version majeure pour cette année, et est présenté par l'équipe JetBrains comme une grande avancée vers son objectif de permettre l’utilisation de Kotlin dans tous les composants d’une application moderne. « Avec Kotlin 1.1, nous avons fourni le support officiel de JavaScript comme cible de déploiement, permettant ainsi de compiler Kotlin en JS pour une exécution dans le navigateur », expliquent les développeurs du langage. « Avec Kotlin 1.2, nous ajoutons la possibilité de partager le code entre la JVM et JavaScript. Vous pouvez désormais écrire une seule fois la logique métier de votre application et la réutiliser dans toutes les couches de votre application — le backend, un navigateur frontend et une application mobile Android. » L'équipe JetBrains dit également travailler sur des bibliothèques favorisant la réutilisation du code, comme une bibliothèque cross-platform de sérialisation.
La principale nouveauté dans Kotlin concerne donc les projets multiplateformes, mais il y a aussi des gains de performance pour la compilation, ainsi que d’autres améliorations du langage et de la bibliothèque standard.
Projets multiplateformes
Un projet multiplateforme vous permet de construire plusieurs couches de votre application — backend, frontend et App Android — depuis la même base de code. Ce type de projet contient à la fois des modules communs, qui contiennent du code indépendant de la plateforme, et des modules plateforme, qui contiennent le code spécifique à une plateforme (JVM ou JS) et qui peuvent utiliser des bibliothèques de cette plateforme. Kotlin 1.2 vous permet donc d'appeler du code plateforme depuis un module commun.
Comme cela a été également mentionné précédemment, JetBrains travaille sur une série de bibliothèques communes pour vous permettre de déplacer plus de code vers des modules communs. Il s’agit notamment de :
- kotlin.test, qui est inclus par défaut dans Kotlin 1.2 et vous permet d’écrire vos tests une seule fois et de les exécuter à la fois dans la JVM et en JS ;
- kotlinx.html, qui supporte un rendu isomorphique — le même code produit du HTML en backend et en frontend ;
- kotlinx.serialization, qui permet de sérialiser facilement vos objets Kotlin entre les différentes couches de votre application, en utilisant JSON ou ProtoBuf comme format de sérialisation.
Il est important de préciser que les projets multiplateformes sont actuellement disponibles en tant que fonctionnalité expérimentale. Cela veut dire que la fonctionnalité peut être utilisée, mais il est possible que sa conception soit modifiée dans la prochaine version de Kotlin. Dans ce cas, JetBrains assure qu’il fournira aux développeurs des outils de migration.
Performances de compilation
Kotlin 1.2 vient avec des optimisations pour les performances du compilateur. JetBrains dit avoir amélioré les temps de compilation de 25 % par rapport à Kotlin 1.1, et prévoit d’autres améliorations significatives qui seront introduites dans les mises à jour Kotlin 1.2.x.
Autres améliorations du langage et de la bibliothèque standard
JetBrains a également réalisé des améliorations ciblées du langage et de la bibliothèque standard. Il s'agit entre autres de :
- une syntaxe plus concise pour transmettre plusieurs paramètres à une annotation (array literals) ;
- le support de lateinit sur les propriétés top-level et les variables locales, ainsi que la vérification de l’initialisation effective d’une variable lateinit ;
- des smart casts plus évolués et une amélioration de l’inférence de type dans certains cas ;
- la compatibilité de la bibliothèque standard avec les restrictions de séparation de package introduites par Java 9 ;
- un nouveau package kotlin.math dans la bibliothèque standard ;
- de nouvelles fonctions dans la bibliothèque standard pour travailler avec les séquences et les collections, comprenant notamment une série de fonctions pour séparer une collection ou une séquence en plusieurs groupes de taille définie.
Kotlin : une adoption croissante dans la communauté des développeurs et éditeurs
Comme nous l’avons déjà mentionné, Kotlin est maintenant un langage officiel pour le développement Android, avec un support inclus dans Android Studio 3.0. Comme conséquence, JetBrains note que Kotlin est déjà utilisé dans plus de 17 % des projets sous Android Studio 3.0, y compris dans des applications des startups les plus actives et des entreprises du Fortune 500.
Du côté serveur, il faut également noter que Spring Framework 5.0 a été publié avec de nombreuses fonctionnalités de support de Kotlin, et le framework événementiel pour la JVM Vert.x supporte Kotlin depuis la publication de la version 3.4.0. Par ailleurs, Gradle est désormais fourni avec le support d’un DSL Kotlin, et le projet Gradle Kotlin DSL s’approche rapidement de la publication de sa version 1.0.
JetBrains explique que depuis la sortie de Kotlin 1.1 en mars de cette année, l’adoption du langage a connu une croissance très importante dans le monde. L'intérêt croissant pour Kotlin s'est confirmé récemment à la première conférence internationale KotlinConf qui a réuni environ 1200 participants à San Francisco les 2 et 3 novembre.
Kotlin 1.2 étant disponible, vous pouvez l'essayer en ligne à l'adresse try.kotlinlang.org ou directement dans vos IDE :
- sous Maven, Gradle et npm : utilisez 1.2.0 comme numéro de version pour le compilateur et la bibliothèque standard ;
- sous IntelliJ IDEA : utilisez la version 2017.3 qui contient Kotlin 1.2. Pour les versions précédentes, installez ou mettez à jour le plugin Kotlin plugin à la version 1.2 ;
- sous Android Studio : installez ou mettez à jour le plugin depuis Plugin Manager ;
- sous Eclipse : installez le plugin en utilisant Marketplace.
Il faut noter que le compilateur en ligne de commande peut être téléchargé depuis la page GitHub sur les notes de version. En ce qui concerne la compatibilité, avec Kotlin 1.2, le langage et la bibliothèque standard assurent la compatibilité ascendante. Cela veut dire que ce qui compilait et s’exécutait dans les versions 1.0 et 1.1 devrait continuer à fonctionner avec la version 1.2. Pour aider les équipes de grande taille à effectuer la mise à jour de leur code progressivement, l'équipe JetBrains fournit aussi des options de compilateur qui désactivent les nouvelles fonctionnalités.
Sources : Blog JetBrains, Nouveautés dans Kotlin 1.2
Et vous ?
:fleche: Utilisez-vous Kotlin ? Si oui, avec quel IDE ?
:fleche: Que pensez-vous des nouveautés de Kotlin 1.2 ?
:fleche: Qu’attendez-vous encore du langage ?
Voir aussi :
:fleche: Android Studio 3.0 est disponible avec le support de Kotlin, plus de fonctionnalités Java 8 et bien plus
:fleche: Développement Android : Kotlin gagnerait du terrain au détriment de Java, et Realm prédit qu'il sera le plus utilisé fin 2018
:fleche: Classement Tiobe : Kotlin, le langage pour JVM entre dans le top 50, et pourrait connaître la même ascension rapide que Swift, selon certains