Apakah popularitas Kotlin meningkatkan kualitas kode lebih baik daripada Java?

Google mengumumkan pada I/O 2017 bahwa Android telah menambahkan dukungan untuk bahasa pemrograman Kotlin. Saat ini, di semua aplikasi Android open source, kita dapat melihat bahwa 12% dikembangkan oleh Kotlin. Pada akhir tahun 2017, Google mengatakan bahwa Kotlin telah menembus lebih dari 17% aplikasi Android yang dikembangkan menggunakan IDE, Android Studio 3.0.

Kotlin adalah bahasa pemrograman yang diketik secara statis yang berjalan pada engine virtual Java dan open source pada tahun 2012 dengan lisensi Apache 2.0. Ini tidak kompatibel dengan sintaks Java, tetapi dirancang untuk dapat dioperasikan dengan kode Java, menggunakan kembali perpustakaan kelas Java yang ada, dan dianggap membutuhkan lebih sedikit kode, sementara lebih sedikit kode biasanya berarti lebih sedikit bug. Google yang kemudian merilis Android Studio 3.0 menambahkan dukungan Kotlin.

Setahun kemudian, ilmuwan komputer Bruno Gois Mateus dan Matias Martinez dari Valenciennes University di Prancis menerbitkan makalah berjudul “An Empirisal Study on Quality of Android Applications wrote in Kotlin language” untuk mempelajari kualitas aplikasi Android yang ditulis dalam Kotlin.

Makalah asli: https://arxiv.org/pdf/1808.00025.pdf

Dalam makalah mereka, mereka menjelaskan cara mengumpulkan 925 aplikasi dari toko aplikasi open source F-Droid, dan cara mengukur kinerja kode Kotlin di setiap aplikasi, dan menganalisis kode “bau” sebagai ukuran kualitas kode.

Catatan : “Bau” adalah istilah lain untuk “anti-pola”, istilah yang digunakan untuk merujuk pada pola pengkodean yang buruk. Di Jawa, Blob (alias God Objects) mewakili anti-pola yang sering dikutip.

Dengan menganalisis 925 aplikasi, ditemukan bahwa setidaknya satu versi dari 109 aplikasi ditulis dalam bahasa Kotlin, dan 35% aplikasi hanya menggunakan bahasa Kotlin. Dalam aplikasi yang menyertakan kode Java dan kode Kotlin, rasio kode Kotlin meningkat dan kode Java menurun di versi yang lebih baru.

Kemudian analisis kualitas kode:

Anti-pola berorientasi objek (OO) termasuk Kelas Blob (BLOB), Pisau Tentara Swiss (SAK), Metode Panjang (LM), dan Kelas Kompleks (CC).

Anti-mode Android termasuk Heavy Broadcast Receiver (HBR), Heavy AsyncTask (HAS), Heavy Service Start (HSS), Initial OnDraw (Init OnDraw, IOD), tidak ada resolusi memori No Low Memory Resolver (NLMR) dan UI Overdraw (UIO).

Dalam anti-pola berorientasi objek, LM, CC, dan BLOB muncul di setidaknya 92% aplikasi Kotlin dan Java, dengan “bau” OO lebih umum di aplikasi Kotlin. Tetapi para peneliti menemukan bahwa dalam “bau” Android ini, Java lebih rentan terhadap tiga “bau” daripada Kotlin.

Para peneliti juga menyebutkan dalam makalah bahwa adopsi Kotlin telah meningkatkan kualitas setidaknya 50% dari aplikasi Android. Oleh karena itu, kode Kotlin dianggap lebih berkualitas.

Selain itu, kedua peneliti juga membandingkan aplikasi Objective-C dan aplikasi Swift dan menemukan bahwa outlier aplikasi Android lebih tinggi daripada aplikasi iOS.