The encyclopedia · Software & IT · Technical decision · 2016–2019
Kotlin became Android's language by being Java's drop-in successor
Google made Kotlin a first-class Android language in 2017 because it interoperates seamlessly with Java; by 2019 Kotlin was Android's preferred language.
JetBrains · Google
The solution
Android apps were written in Java, which developers found verbose and prone to null-pointer errors, but rewriting a platform's codebase was unthinkable: any new language had to coexist with millions of lines of existing Java.
JetBrains designed Kotlin for exactly that: it compiles to the same JVM bytecode and calls Java APIs directly, so teams could introduce it gradually into existing projects. In May 2017 Google announced official support and bundled Kotlin into Android Studio 3.0, citing 'effortless interoperation' as a large part of its appeal.
Adoption compounded. At Google I/O 2019 Google said more than 50% of professional Android developers used Kotlin and declared Android development Kotlin-first, with new Jetpack APIs arriving in Kotlin first. A third-party language became the platform's preferred language in two years.
Why it worked
- 100% Java interop meant no rewrite and no stranded investment.
- Bundling the plugin removed installation and compatibility barriers.
- Safer null handling and less boilerplate cut common Android bugs.
- JetBrains' IDE pedigree meant first-class tooling from day one.
What can be applied
The winning challenger preserves the incumbent's ecosystem: by keeping Java code working, Kotlin was adoptable file by file, and the platform owner's blessing made it the standard.
Aftermath
Kotlin became the default for new Android apps and expanded to server-side and multiplatform development. Google and JetBrains moved it into a non-profit foundation, and by 2019 it ranked among the most-loved languages in Stack Overflow's developer survey.
Sources
- Android Announces Support for Kotlin
- Kotlin on Android. Now official
- Kotlin is now Google's preferred language for Android app development
spotted an error? The archive wants to know.