Pourquoi Kotlin est meilleur que Java?

Ceci est une réponse à l'article traduit Pourquoi Kotlin est pire que Java? ... Puisque l'argumentation originale est basée sur seulement deux exemples, nous ne perdrons pas de temps à revenir sur ces «inconvénients» de Kotlin.





Métadonnées propriétaires?

une bonne quantité de détails sur le fonctionnement interne de kotlinc sont cachés dans les fichiers de classe générés ... sans IDEA, Kotlin mourrait immédiatement





Ce n'est pas du code propriétaire, mais juste un moyen pour le compilateur d'ajouter des données supplémentaires dans un format de fichier .class codé en dur, qui n'était auparavant affiné que pour javac. Les métadonnées sont nécessaires pour la réflexion et peuvent être supprimées lors de la compilation. Le code source des métadonnées est ouvert et accessible au public .





Kotlin sera à la traîne?

En bref, le message de l'article original est que Kotlin était innovant, mais Java ajoutera toutes les mêmes fonctionnalités de langage, seulement plus réfléchies et meilleures, et déjà la version Kotlin tombera du courant dominant.

A titre d'exemple, l'auteur donne instanceof



:





Kotlin a fait quelque chose comme ça





if (x instanceof String) { 
  //  x   String!   
  System.out.println(x.toLowerCase()); 
}
      
      



Mais dans la version 16+ de Java, c'est devenu comme ça:





if (x instanceof String y) {  
  System.out.println(y.toLowerCase()); 
}
      
      



, , . , «», Kotlin -, Kotlin , Java. , Java : , « » (, «» -).

...

Java . instanceof , , Kotlin Java: , Java - ( , JEP ) , Kotlin.





Kotlin. , Kotlin . , ( ), Kotlin , , :





when(val v = calcValue()) {
  is String -> processString(v)
}
      
      



, . Java c if/instanceof/switch:





when(val v = calcValue()) {
  is String -> processString(v)
  42 -> prosess42()
  is Int -> processInt(v)
  else -> processElse(v)
}
      
      



, Kotlin, , - Java, , , , Kotlin.





Kotlin , , Java, .





, Kotlin . , Java. C# Kotlin Java , Java , , . Java , , .





null, , Java Optional.ofNullable



. Data- record



.





Java , , . Optional null, record data class.





, Kotlin ?





, Scala Java. , ++ .

, Java . Kotlin, , Android , backend jvm . Kotlin , , , .








All Articles