Ini adalah tanggapan untuk posting yang diterjemahkan Why is Kotlin Worse Than Java? ... Karena argumentasi asli hanya didasarkan pada dua contoh, kami tidak akan membuang waktu untuk membahas "kelemahan" Kotlin ini.
Metadata kepemilikan?
cukup banyak detail tentang cara kerja kotlinc tersembunyi di dalam file kelas yang dihasilkan ... tanpa IDEA, Kotlin akan langsung mati
Ini bukan kode berpemilik, tetapi hanya cara bagi kompilator untuk menambahkan data tambahan dalam format file .class berkode keras, yang sebelumnya hanya diasah untuk javac. Metadata diperlukan untuk refleksi dan dapat dihapus selama kompilasi. Kode sumber metadata terbuka dan tersedia untuk umum .
Kotlin akan tertinggal?
Singkatnya, pesan dari artikel aslinya adalah bahwa Kotlin inovatif, tetapi Java akan menambahkan semua fitur bahasa yang sama, hanya lebih bijaksana dan lebih baik, dan versi Kotlin sudah akan keluar dari arus utama.
Sebagai contoh, penulis memberikan instanceof
:
Kotlin melakukan sesuatu seperti ini
if (x instanceof String) {
// x String!
System.out.println(x.toLowerCase());
}
Namun di Java versi 16+ menjadi seperti ini:
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 , , , .