Although Java has been a mainstay of Android development for many years, Google has recently thrown its weight behind Kotlin, naming it a “first class” language for Android development. And given how well Kotlin leverages Java libraries and integrates with Java frameworks, it’s not that difficult (in theory) for even longtime Java developers to jump to the newer language.
With all that in mind, we posted a quiz on Dice’s Facebook page about using Java or Kotlin for Android development. The response was overwhelming: 85 percent of respondents preferred Java, while the rest went for Kotlin:
Granted, a Facebook quiz isn’t the most scientifically accurate survey available to humankind, but if we take the data as even somewhat accurate, it’s clear that Kotlin is a long way from eclipsing Java entirely, despite the buzz around it.
For those who haven’t really explored Kotlin yet, it’s worth keeping an eye on. According to a recent survey by JetBrains (which created the language in 2011), some 62 percent of developers say they use it to build mobile apps; web backend projects came in a distant second, with 41 percent, followed by libraries with 29 percent and tooling with 22 percent. (Only 9 percent of respondents used the language for desktop apps, and 7 percent leveraged it for building for the Internet of Things.)
Although the language is versatile enough for other uses, it’s primarily utilized as a way to build Android apps. In that same survey, some 66 percent of developers told JetBrains that they target Android, versus 57 percent who said they target Java Virtual Machine (or JVM, a virtual machine that allows PCs to run Java programs in addition to programs created in other languages and compiled to Java bytecode).
If you do build with Android, there’s a high likelihood that the momentum behind Kotlin will only increase in coming years, making it important that you at least familiarize yourself with the language. In the meantime, Java remains an immensely popular language, as well. You can’t lose to know either… or both!