第 1 章 · Kotlin 是什么 & 为什么这么火

5 个交互式演示帮你直观理解 Kotlin 的诞生背景、与 Java 的差距、空安全的威力、协程的轻量。

📜 Kotlin 与 JVM 语言简史

Kotlin 是 JetBrains 内部为了解决"Java 太啰嗦"问题而立项的,2010 年开始,2017 年被 Google 钦定为 Android 一等公民,从此一飞冲天。

1995Java 1.0 发布,Sun Microsystems。世界 #1 编程语言诞生。
2000C# 1.0,Microsoft 的 Java 仿品。
2007Clojure 1.0(Lisp on JVM),开启 JVM 函数式探索。
2010Kotlin 项目立项。JetBrains 苦于 Java 的啰嗦决定自己造一个。
2011Kotlin 公开命名,名字源自俄罗斯圣彼得堡附近的 Kotlin 岛。
2016Kotlin 1.0 正式发布。
2017🎉 Google I/O 宣布 Kotlin 成为 Android 官方语言。引爆全球。
2019Google 进一步宣布 "Kotlin First",新 API 优先 Kotlin 写。
2020Coroutines 1.4 发布,协程标准化
2023Kotlin 1.9,K2 编译器进入 Beta。
2024Kotlin 2.0,K2 编译器正式版(编译速度提升 ~2 倍)。

💡 点击每条时间线可放大查看细节(hover 高亮)。

⚔️ 同样需求:Java 38 行 vs Kotlin 1 行

点击上方按钮切换不同需求的对比。Kotlin 用 data class 扩展函数 协程 等特性大幅简化代码。

💣 NPE 终结者:试试给可空和非空类型赋值

Java 里所有引用类型都可能是 null,Kotlin 把它写进了类型系统:String 不能为 null,String? 才能为 null。

场景 A:Java 风格(编译期不检查)

String name =
未运行

场景 B:Kotlin 非空类型 val name: String

val name: String =
未运行

场景 C:Kotlin 可空类型 val name: String?

val name: String? =
未运行

🚀 协程 vs 线程:跑 1000 个并发任务的差距

每个任务模拟 100ms 计算 + 200ms IO 等待。线程在 IO 等待时占用一个 OS 线程不放;协程在 suspend 时让出线程。

100

🧵 Java 线程模型 --

峰值线程
--
总耗时
-- ms

⚡ Kotlin 协程模型 --

线程数
--
总耗时
-- ms

💡 关键观察:线程模型每个并发任务要 1 个 OS 线程(成本 ~1 MB),1000 个任务 = 1 GB 内存;协程模型只用线程池里的几个线程(4-8 个),任务在 suspend 时让出线程,1000 个任务也只占几 MB 内存。

🌍 Kotlin 全平台能力

Kotlin 不只是 JVM 语言,它还能编译成 JS、Native、WASM,目标是"一处编写,多端运行"。

📱
Android
Google 官方第一语言,Jetpack Compose 全 Kotlin。
⭐⭐⭐⭐⭐
JVM 后端
Spring Boot 原生支持,Ktor 是 JetBrains 自家轻量框架。
⭐⭐⭐⭐
🌐
Kotlin/JS
编译成 JS 跑浏览器,可写 React 组件。
⭐⭐⭐
🦀
Kotlin/Native
无 JVM 依赖,编译成 macOS / Linux / iOS 二进制。
⭐⭐⭐
🔄
KMP 跨平台
iOS + Android + Web 共享业务逻辑层。
⭐⭐⭐⭐
🛠
Gradle DSL
build.gradle.kts,IDE 类型提示完整。
⭐⭐⭐⭐
📊
数据科学
Kotlin Notebook + DataFrame,势头初现。
⭐⭐
🎮
Wasm
Kotlin/Wasm 实验性,目标极致性能。
⭐⭐

📈 Kotlin 在企业里的真实应用

公司使用场景规模
GoogleAndroid 系统应用 / 内部后端数百万行 Kotlin
NetflixKMP 跨平台业务层iOS+Android 共用
Pinterest后端 + Android全栈 Kotlin
AirbnbAndroid 客户端1000+ 工程师
字节跳动抖音 / TikTok Android全 Kotlin 化
京东App / 后端微服务大规模混合栈
JetBrains所有 IDE 产品后端原生 Kotlin