The key thing is that on mobile you are stuck with what the platform owners allow. On Android that's pretty much the JVM. You can get away with some things in native code (C, C++, now Go?), but most of the Android framework lives in the Java layer. Kotlin is pretty much your only option other than Java that works. The other JVM languages (Clojure, Scala, Groovy, etc) are quite a bit heavier and that's still an issue on mobile.