Kotlin dalam perspektif javascript developer
Setelah sekian lama berkutat dengan javascript saya berniat untuk mendalami kotlin karena satu dan lain hal, saya memilih kotlin sebagai bahasa utama karena memiliki fitur-fitur yang sangat menarik
Apa itu Kotlin?
Kotlin adalah bahasa pemograman modern yang di kembangakan oleh jetbrain, bahasa pemograman yang statis, berjalan pada platform Java Virtual Machine (JVM), mendukung multiplatform. Kode program Java bisa dipanggil dengan Kotlin, begitu pun sebaliknya. kotlin juga dapat mengkonversi kode java kedalam kotlin secara otomatis, selain itu kotlin juga dapat dijalankan di javascript. Kotlin menggunakan compiler LLVM yang artinya, dapat dikompilasi ke dalam kode JavaScript. berbeda dengan javascript kotlin merupakan statically typed sedangkan javascript merupakan dynamically typed
Apa perbedaan statically typed dan dynamically typed?
statically typed:
- Harus di mendefenisikan tipe variabel dan tipe variable tidak dapat diubah
- Harus di kompilasi dulu sebelum di jalankan
- lambat dalam pengembangan aplikasi karena harus dicompile sebelum dijalankan
- penggunaan memori lebih optimal
dynamically typed:
- Tidak perlu mendefenisikan tipe variabel dan variabel dapat diubah
- biasanya tidak memiliki compiller, tapi memiliki penerjemah untuk mengecek tipe variable ketika program ini di eksekusi
- cepat dalam pengembangan aplikasi karena tidak perlu compile
- penggunaan memori lebih boros
Kenapa Harus Kotlin?
saya coba membandingkan beberapa kelebihan kotlin
- Concise
kotlin menyediakan method yang lebih singkat contoh for in, keyword fun, lamda expresion, on line function, dibawah ini terlihat bahwa kotlin lebih singkat dan lebih manusiawi
Kotlinfor(i in 0..100){
println(i)
}Javascriptfor(let i= 0; i<=100; i++){
console.log(i)
}
- Safe
biasanya dalam setiap bahasa pemograman ada konsep NullPointerException, hal ini terjadi ketika kita mengakses referensi object tetapi objek nya itu sendiri, sebenarnya di javascript sendiri sudah ada fitur ini dengan Optional chain atau nullish coalescing, tetapi kotlin memiliki lebih banyak variasi
Kotlinval name:String? Null check
name?.firstname Safe Call Operator
name?.let{} let method
name.also{} also method
name?:'aditya' elvis operator
name!!.firstname not null assertion operatorJavascriptname?.firstname optional chain
name?? 'aditya' nullish coalescing
- Interoperable
Kode program Java bisa dipanggil dengan Kotlin, begitu pun sebaliknya. kotlin juga dapat mengkonversi kode java kedalam kotlin secara otomatis, juga kotlin dapat dicompile menjadi javascript
// Write Kotlin code, compile it to JavaScript, and run it in the browser
// Use existing JavaScript APIs and librariesimport kotlinx.browser.windowfun main() {
val body = window.document.bodybody?.innerHTML += "<b>Hello, <i>Kotlin</i></b>"window.setInterval({
body?.innerHTML += "!"
}, 1000)
}
juga dapat dijalankan di framework React
// Use Kotlin wrappers to build applications with JavaScript frameworks such as Reactimport react.*
import react.dom.*
import kotlinx.html.js.onClickFunctionval counter = functionalComponent<Props> {
val (count, setCount) = useState(0)
button {
attrs.onClickFunction = { setCount(count + 1) }
+count.toString()
}
}
- Multiplatform
kotlin mendukung berbagai platform, dari mulai Android, IOS, Server Side, Data Science sebenarnya javascript juga mendukung berbagai platform jadi dalam hal ini sama-sama memiliki keunggulan ini
Kesimpulan
Kotlin maupun javascript memiliki kelebihan masing-masing, dua bahasa pemograman ini dibuat berdasarkan kebutuhan, saya sendiri memilih kotlin karena ingin mendalami android, walaupun javascript juga mendukung mobile development dengan react native namun native android menawarkan fitur yang lebih kaya, juga performa yang lebih baik
Ikatlah ilmu dengan menulisnya — Al-hadits
Semoga bermanfaat!