当逃生路线变成收费公路:JetBrains 研究程序员如何在编程语言之间迁移
JetBrains Research 博客发表文章,由 Vladimir Volokhonsky 撰写,基于 2025 年 State of Developer Ecosystem 调查揭示编程语言迁移的真实图景。核心发现:项目需求仍是切换语言的最常见原因,但 Kotlin 是例外——人们切换到 Kotlin 不是因为必须,而是因为更好的开发体验和更现代的特性"感觉更好";C 有惊人的高流失率;Java 开发者倾向于转向 Python 和 TypeScript;HTML/CSS 开发者学习 JavaScript 以改善就业机会,而 JavaScript 开发者为了同样的原因切换到几乎所有其他语言。本文基于 JetBrains Research 官方文章,解读语言迁移研究的发现。
编程史也是逃离史
- Ada Lovelace 为尚未以可用形式存在的机器写作
- 一个世纪后,程序员与带开关、打孔卡和原始数字指令的机器搏斗
- 汇编出现,带来软件的第一笔重大交易:放弃一点与机器的亲近,换取一点人类思维的空间
- 随着新语言和语境转变,现有语言的某些方面开始碍事:
- 一种语言达到如此高的抽象级别,在机器的物理现实中效率不再成立
- 快速增长的物联网意味着程序必须在咖啡机上运行
- 某些地方缺少开发速度,另一些地方缺少安全性
语言迁移的历史路径
- 从汇编逃到 C
- 从 C 逃到托管运行时
- 从仪式性的企业 Java 逃到 Kotlin
- 从动态语言的自由逃到 TypeScript
- 从不安全的系统代码逃到 Rust
- 从重型框架逃到更小的云原生工具
研究方法:从程序员视角出发
- 许多材料以某种方式衡量编程语言流行度随时间的变化
- 但似乎没有人真正审视程序员本身如何在语言之间迁移——不是从全球软件开发趋势的角度,而是从个体路径的角度
- JetBrains 设计 State of Developer Ecosystem 调查以照亮真实程序员的路径
2025 年的改进
- 过去使用"你计划在未来 12 个月内采用或迁移到其他语言吗?"的问题
- 发现这不是语言迁移的好预测器:计划尝试 Rust 或从 Java 切换到 Kotlin 的人很多,但实际完成切换的远少于有计划的人
- "我们支持旧 Java 8 代码库有问题"不代表真的会离开它
- 2025 年新增一组关于受访者以往语言经验的问题,用"过去一年你在用什么语言工作?"评估实际迁移
2025 年调查发现
语言之间的路径看起来可以是任何样子
- 最常见路径在前沿语言之间:Python 与 Java 之间往返
- Java 到 Kotlin 按绝对数量排在第三
- 但人们在每个可能方向迁移
Kotlin 的例外
- 项目需求仍是切换语言的最常见原因
- Kotlin 是这一趋势的离群值:人们切换到 Kotlin 不是因为必须
- 而是因为更好的开发体验和更现代的特性,感觉更好
- 体验驱动而非需求驱动的迁移
C 的高流失率
- C 有惊人的高流失率
- 系统级语言的开发者向更安全、更高层的方向迁移
Java 开发者
- 倾向于转向 Python 和 TypeScript
- 需求(生态、岗位)驱动的移动
HTML/CSS 开发者
- 学习 JavaScript 以改善就业机会
JavaScript 开发者
- 为同样的原因(就业机会)切换到几乎所有其他语言
意义与讨论
为什么迁移发生
- 项目需求是最常见的切换原因(约束驱动)
- 开发体验是 Kotlin 的独特拉力(体验驱动)
- 就业机会驱动前端生态的迁移(市场驱动)
计划与现实的差距
- "计划迁移"与实际迁移之间存在巨大差距
- 语言切换有实际成本(存量代码、工具链、团队技能)
- 调查改用实际使用数据衡量迁移
对语言生态的启示
- 开发体验是语言吸引力的重要因素(Kotlin 案例)
- 就业市场信号驱动特定方向的流动(JavaScript 外流、Java 流向 Python/TS)
- 流失率(C)反映语言的维持成本
总结
JetBrains 的 2025 年调查揭示了程序员语言迁移的真实图景:路径几乎可以是任何方向,但最常见的是前沿语言之间(Python-Java 往返、Java→Kotlin 第三)。核心发现:项目需求仍是切换语言的最常见原因(约束驱动),但 Kotlin 是例外——人们为更好的开发体验和更现代的特性而切换(体验驱动),"不是因为必须,而是因为感觉更好";C 有惊人的高流失率;Java 开发者流向 Python 和 TypeScript;HTML/CSS 开发者学 JavaScript 为就业,JavaScript 开发者又为就业流向几乎所有其他语言。方法上,JetBrains 发现"计划迁移"不是好的预测器(计划与实际完成差距大),改用实际语言使用数据衡量迁移。意义:语言生态的吸引力不仅来自技术能力,还来自开发体验(Kotlin 范本)、市场信号(岗位需求)和维持成本(C 流失)——这些因素共同塑造了个体程序员的语言选择路径。
来源:https://blog.jetbrains.com/research/2026/08/programming-language-migration/