KotlinがJavaより優れているのはなぜですか?

これは、翻訳された投稿への応答です。なぜKotlinはJavaよりも悪いのですか?..。元の議論は2つの例のみに基づいているため、Kotlinのこれらの「欠点」を検討するのに時間を無駄にすることはありません。





独自のメタデータ?

kotlincの内部動作に関するかなりの詳細が、生成されたクラスファイル内に隠されています... IDEAがなければ、Kotlinはすぐに死んでしまいます





これはプロプライエタリコードではありませんが、以前はjavac用にのみシャープ化されていたハードコードされた.classファイル形式でコンパイラがデータを追加するための方法にすぎません。メタデータはリフレクションに必要であり、コンパイル中に削除できます。メタデータのソースコードは公開されており、公開されています





Kotlinは遅れますか?

つまり、元の記事のメッセージは、Kotlinは革新的だったということですが、Javaはすべて同じ言語機能を追加し、より思慮深く、より優れたものにするだけで、すでにKotlinバージョンは主流から外れます。

例として、著者はinstanceof



のように述べています





Kotlinはこのようなことをしました





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



しかし、Javaバージョン16以降では、次のようになりました。





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