Kotlin"J神"两小时争议访谈:我宁愿失去80%的工作机会,也坚决不用 AI 编程
"J神"的九项择业标准与反 AI 立场
Jake Wharton 被国内开发者称为"J 神",是 Android 与 Kotlin 领域最具影响力的开源贡献者之一。他在寻找新工作时公开列出了九项择业标准,第一条就是:
- 不加入 AI 公司
- 不参与以 AI 为核心的产品
- 不接受公司强制工程师使用 AI
按他的估算,这一条直接排除了约 80% 的潜在雇主。
核心反对理由
1. 软件质量没有提高
Wharton 不认为过去几年软件整体质量得到了提高,也不认为 AI 工具长期会改善软件质量。一些公司高管看到的是"AI 让工程师工作更快、代码质量更高",他的判断恰恰相反。
2. 版权与伦理问题
他认为大语言模型建立在大规模使用受版权保护内容的基础上,训练过程忽视了艺术家版权和开源代码许可证。"能在网上访问一项内容,并不意味着你就拥有重新组合、改写它,甚至逐字输出它的权利。"
3. 管理层绕过工程判断
这是他最尖锐的批评。传统上,开发工具由工程师自下而上推动——工程师发现新语言/IDE/构建系统有价值,热情感染团队,再说服管理层批准采用。但 AI 工具的推广方向完全相反:由 CEO 告诉工程师日常应该使用什么工具。
"如果 Jack Dorsey 当时要求我必须使用 Eclipse,我可能同样会辞职。问题不只在于 AI,而在于公司管理层越过工程判断,强制开发者使用某一种工具。"
4. 议价权与依赖风险
他从未使用过 AI Agent 写代码。最不负责任的用法是让 AI 生成超出使用者能力范围的代码——如果没有大模型就无法完成任务,开发者往往也无法真正理解、验证和维护结果。一旦形成依赖,工程师交出去的不只是部分工作,还包括自己的能力和议价权,最终变成更容易被低成本替换的齿轮。
关于"AI 成本拐点"的预判
Wharton 认为当前大语言模型行业很大程度上仍由资本补贴:先用低价吸引市场,让企业形成依赖,再转向按实际价值收费。届时 AI 成本可能增长一个甚至两个数量级。如果使用 AI 的成本最终超过原本想要替代的工程师薪酬,"用 AI 替代工程师"的经济账也会失效。
Cash App 在他离职后裁掉了 70% 的工程师,设想是通过 AI 让一名工程师承担过去四个人的工作。他认为这种模式短期可能有效,但长期会导致软件质量下降。
从 Google 离职:不喜欢把用户锁在自家生态
Wharton 在 Google 工作了两年九个月,是 Google Kotlin 团队的第一位工程师。他加入时就对同事说自己大概会离开办公室两年,目标是帮助 Kotlin 成为 Android 一等语言。
他离开 Google 的原因不是 Android 团队(他至今怀念那段工作),而是对 Google 这家公司运作方式的意见:Google 通过产品和服务将用户锁定在自有生态系统中。公司规模扩大后,官僚主义增加、产品迭代放缓、管理层急于寻找新用户和收入。
相比之下,他更愿意留在目标明确的小团队。他最终加入了 Skylight——一家面向家庭的硬件公司,符合他的多项价值观:开源、小而专注、他自己就是目标用户、不通过 Google Play 分发。
Kotlin 的过去与未来
"Java 十年后想要成为的样子"
Kotlin 出现时,Java 语言发展正处于停滞期(Oracle 接手、版本周期长达两年)。Kotlin 的关键优势是渐进式兼容——开发者可以在不推翻现有 Java 代码的情况下逐步引入 Kotlin。
Kotlin 已不是"优势",而是"默认要求"
"这反而体现了 Kotlin 的成功:它已经成为一项默认要求,而不再是一种稀缺、难以找到的能力。"
如果掌握 Kotlin Multiplatform 等进阶能力,仍可能构成差异化优势。但仅仅"会 Kotlin"已经很难成为明显职业加分项。
Java 在追赶,Kotlin 的护城河在哪?
Java 没有停滞。它将发布周期缩短到六个月,通过 Record、密封类等现代特性追赶。Wharton 承认,Java 近年来的一些新特性设计得可能比 Kotlin 对应方案更完整——因为 Java 可以同时调整语言、字节码和虚拟机,而 Kotlin 受限于既有 JVM 字节码表示。
Kotlin 仍难被取代的优势:可空性类型系统。 "十亿美元错误"不是程序中不应该存在空值,而是 Java 没有在类型系统中充分描述它。Kotlin 把可空性提升到类型系统层面,几乎消除了一整类空指针错误。
Swift vs Kotlin
Wharton 认为 Swift 语言设计本身可能比 Kotlin 更好——错误处理是一等概念(函数签名标记可能抛出的错误),内存表示更紧凑(面向原生代码)。但 Kotlin 的优势在语言之外:库生态、开源社区、IntelliJ IDEA 工具、构建系统都更成熟,大型代码库重构体验更好。
为什么更偏爱 Rust
"Rust 的许多设计非常符合我的思维方式:资源所有权和借用关系应该进入类型系统。"
Rust 把过去容易被忽略的问题(内存泄漏、文件描述符泄漏、空指针、未预期异常)直接纳入语言和类型系统。学习门槛高,但在描述所有权、资源责任和失败模式方面做得最好。
他透露有一份"梦想项目"清单:尝试把所有权语义引入 Kotlin。KotlinConf 上已有研究者提出早期设想。
关于开源生态与 AI 的关系
AI 能生成代码,开源库还有价值吗?
Wharton 认为这种说法低估了共享代码库的长期价值。开源库的意义不只是生成一段眼前可用的代码,而是让许多项目共同受益于持续维护——有人今天修了一个你暂时不会遇到的 Bug,两年后你的业务重构时它已经被提前解决。AI 生成的是彼此孤立的实现,开源则把一次贡献分发到许多不同代码库。
My Take
这篇文章的价值不在于 Wharton 的结论是否正确,而在于他提出了几个被行业刻意回避的硬问题:
-
AI 成本拐点谁在算? 当前 AI 工具低价是资本补贴的获客阶段。如果 Cash App 裁掉 70% 工程师后,AI 成本涨 10-20 倍,经济账直接崩盘。这个问题没有任何公司在认真回答。
-
管理层强制 vs 工程师自选这个区分很精准。历史上帝国主义工具推广(强制 Eclipse、强制框架)都失败了,AI 能否成为例外取决于它是否真的让一线工程师更高效,而不只是让管理层觉得更高效。
-
"生成超出能力范围的代码"是真正的风险。与 Thariq 在前一篇访谈中说的"100 倍测试代码"形成对照——Anthropic 的解法是用验证 Harness 兜底,Wharton 的解法是不用。两者本质上是同一问题的两种工程哲学:扩大能力边界 vs 保守在自己理解的范围内。
-
**Kotlin 已从"优势"变成"默认要求"**这个判断对前端工程师也有启发——任何技术红利都有从"稀缺"到"普及"的周期,真正的差异化在持续向前沿延伸(如 Kotlin Multiplatform 对应的跨端能力)。