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 ?
Que pensez-vous de cette version finale ? Les arguments présentés sont-ils suffisants pour vous faire migrer vers ce langage ?
Utilisez-vous déjà Kotlin ? Comment le trouvez-vous vis-à-vis des autres langages ?
Voir aussi
Forum Autres langages pour la JVM