¿Por qué es Kotlin mejor que Java?

Esta es una respuesta a la publicación traducida ¿Por qué Kotlin es peor que Java? ... Dado que la argumentación original se basa en sólo dos ejemplos, no perderemos el tiempo repasando estas "desventajas" de Kotlin.





¿Metadatos propietarios?

una buena cantidad de detalles sobre el funcionamiento interno de kotlinc están ocultos dentro de los archivos de clase generados ... sin IDEA, Kotlin moriría inmediatamente





Este no es un código propietario, sino solo una forma para que el compilador agregue datos adicionales en un formato de archivo .class codificado, que anteriormente solo se afinaba para javac. Los metadatos son necesarios para la reflexión y pueden eliminarse durante la compilación. El código fuente de los metadatos está abierto y disponible públicamente .





¿Kotlin se quedará atrás?

En resumen, el mensaje del artículo original es que Kotlin fue innovador, pero Java agregará las mismas características de lenguaje, solo que más reflexivas y mejores, y la versión de Kotlin ya se saldrá de la corriente principal.

Como ejemplo, el autor da instanceof



:





Kotlin hizo algo como esto





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



Pero en la versión 16+ de Java se volvió así:





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