Kotlin
JetBrains’ statically-typed, multi-target programming language — written in ../dev-tooling-wiki as its second
programming-language page after dart, and a close structural rhyme with it. Apache-2.0, designed by
Andrey Breslav (now led by Roman Elizarov), first committed Nov 2010, open-sourced Feb 2012, hit 1.0 in
Feb 2016. Wikipedia is the neutral (T2) anchor.
The language
- Null safety in the type system — nullable vs non-nullable types are distinct, with an explicit
?marker and null-safe operators (?.safe-navigation,?:Elvis). The same design bet dart makes with sound null safety. - Static typing with inference, concise syntax (optional semicolons; newline-terminated statements; type-after-name declarations, as in Rust/Pascal), and full functional + OO support (lambdas, higher-order functions, default/named args). Classes are public and final by default.
- Coroutines for structured concurrency.
The compile-everywhere toolchain
Like dart, Kotlin’s defining trait is one language, many backends — which is why it’s tooling, not just syntax:
- JVM — full two-way interop with Java and the Java class library (its origin and heartland).
- JavaScript — for frontend/web and code-sharing with JS backends.
- Native — via an LLVM backend to iOS/macOS/Linux/Windows, no JVM required.
- WebAssembly — beta, including WASI.
- Kotlin Multiplatform (KMP) — share business logic across Android/iOS/server/desktop from one codebase (stable Nov 2023; Google endorsed it at I/O 2024, and uses it in Google Docs for shared Android/iOS/web logic).
K2 — the compiler-corner performance story
Kotlin 2.0 (May 2024) shipped K2, “a complete rewrite of the original compiler frontend”:
benchmarked up to 94% faster compilation, with the analysis phase up to 376% faster. That slots
into ../dev-tooling-wiki’s compiler-performance thread as a distinct lever — where typescript-7-go-compiler
won speed by porting the compiler’s host language (TS→Go) and v-flat-ast won memory by changing
its data layout, K2 rewrote the frontend itself. Same corner, a fourth route to “make the
toolchain fast.”
Android, and the Google mobile pair
Google announced first-class Android support in May 2017 and made Kotlin its preferred Android
language in May 2019; as of 2024, 95%+ of the top-1,000 Play apps contain Kotlin. Google’s own
“Kotlin-first” pitch (kotlin-and-android) adds the practitioner numbers: 60%+ of professional
Android developers use Kotlin, and Kotlin apps are “20% less likely to crash” (the null-safety
payoff, made concrete). Android backs it with tooling — Android Studio’s Java→Kotlin conversion and
bytecode viewer, the Android KTX idiomatic extensions, and nullability annotations in the SDK from
API 28 — and Jetpack Compose, “Android’s modern UI toolkit built on Kotlin” (a Kotlin-native UI
framework, the Android counterpart to Flutter; adjacency to ../ui-frameworks-wiki if a
Compose source lands).
That makes Kotlin and dart the two Google-blessed mobile stacks — Kotlin↔Android and Dart↔Flutter — though from different makers (JetBrains vs Google) and different lineages (JVM vs Flutter’s own canvas).
Related
programming-language · hosted-language · dart · typescript-7-go-compiler · developer-tooling · jetbrains · kotlin-and-android · google · flutter