langwhy

Kotlin

Mobile· alive, actively evolving· since 2011 · Andrey Breslav · JetBrains

Statically typed language for JVM and Android apps that compiles alongside existing Java code.

Draft from 2026-10-30, not yet checked claim by claim against its sources. Help verify it.

Born from

In July 2011 JetBrains said that none of the existing JVM languages met its needs. Its development lead, Dmitry Jemerov, said that Scala has the right features but its most obvious deficiency is very slow compilation, so the new language had to be Java-compatible, more concise than Java and safer against null pointer errors.

What it trades away

garbage collectedmemory
static typestypes
runs on a virtual machineruns as
threads, asyncconcurrency

Cost: It runs on the JVM and inherits Java's startup time and memory footprint, which weighs most on short-lived scripts and small tools.

Where it fits

SlotFit
mobile●●●Google recommends starting new Android apps in Kotlin.
server●●○Spring Boot supports Kotlin and requires Kotlin 2.2 or later.
systems●○○
embedded○○○Kotlin targets the JVM, Android and native platforms, not microcontrollers.

Why it exists

In July 2011 JetBrains introduced Kotlin, a new language for the JVM, after concluding that “none of them meet our needs” among the existing JVM languages (InfoWorld). Scala had the features JetBrains wanted, but its development lead, Dmitry Jemerov, said its most obvious deficiency was very slow compilation. The published goals put Java compatibility first, then safety against null pointer errors and more concise code than Java (InfoQ).

What it trades away

Kotlin inherits the JVM. It compiles to the same bytecode as Java, so it starts on the same virtual machine and pays the same startup and memory costs, which matter most for short-lived scripts and small tools. The Java compatibility goal is the design choice behind this: Kotlin keeps working with Java libraries and Java conventions instead of starting from a clean slate (InfoQ). A team gets that interoperability in exchange for the JVM’s runtime model.

Where it won

Android is the big win. Google’s developer guide recommends starting new Android apps with Kotlin (Android developers), and Google reported in May 2019 that over half of professional Android developers used it (Android Developers Blog). Gradle made the Kotlin DSL the default for new builds in April 2023 (Gradle blog). On the server, Spring Boot supports Kotlin on the same JVM stack as Java and requires Kotlin 2.2 or later (Spring Boot docs).

Named wins

Evolution

Reacts to: Java, scala

Weigh it against: Java, Swift, Dart, scala

Timeline

Links

website · repo · PLDB

Sources

  1. https://www.infoworld.com/article/2183154/jetbrains-readies-jvm-language-kotlin.html
  2. https://www.infoq.com/news/2011/07/kotlin/
  3. https://www.infoq.com/news/2016/02/jetbrains-kotlin-1/
  4. https://www.infoq.com/news/2017/05/android-kotlin
  5. https://developer.android.com/kotlin/first
  6. https://android-developers.googleblog.com/2019/05/google-io-2019-empowering-developers-to-build-experiences-on-Android-Play.html
  7. https://blog.gradle.org/kotlin-dsl-is-now-the-default-for-new-gradle-builds
  8. https://docs.spring.io/spring-boot/reference/features/kotlin.html
  9. https://pldb.io/concepts/kotlin.html

Unverified draft, 2026-10-30.Edit the facts · edit the story · JSON · Markdown