Warum ist Kotlin besser als Java?

Dies ist eine Antwort auf den übersetzten Beitrag Warum ist Kotlin schlechter als Java? ... Da die ursprüngliche Argumentation nur auf zwei Beispielen basiert, werden wir keine Zeit damit verschwenden, diese "Nachteile" von Kotlin zu untersuchen.





Proprietäre Metadaten?

Eine ganze Menge Details über das Innenleben von Kotlinc sind in den generierten Klassendateien versteckt ... ohne IDEA würde Kotlin sofort sterben





Dies ist kein proprietärer Code, sondern nur eine Möglichkeit für den Compiler, zusätzliche Daten in einem fest codierten .class-Dateiformat hinzuzufügen, das zuvor nur für javac geschärft wurde. Metadaten werden zur Reflexion benötigt und können während der Kompilierung entfernt werden. Der Quellcode der Metadaten ist offen und öffentlich verfügbar .





Kotlin wird zurückbleiben?

Kurz gesagt, die Botschaft des Originalartikels ist, dass Kotlin innovativ war, aber Java wird dieselben Sprachfunktionen hinzufügen, nur durchdachter und besser, und bereits die Kotlin-Version wird aus dem Mainstream herausfallen.

Als Beispiel gibt der Autor an instanceof



:





Kotlin hat so etwas gemacht





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



Aber in Java Version 16+ wurde es so:





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