EN
Back to the archive

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 it achievedFull Java interop; teams adopt gradually, zero rewriteclever

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

spotted an error? The archive wants to know.

Related cases