これは、翻訳された投稿への応答です。なぜ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 , , , .