在Android开发者圈子里,Jake Wharton是一位很难被忽视的人物。
他曾被同行尊称为“Android 之神”,长期活跃于Android和开源社区,Retrofit、OkHttp、Picasso等一批广为人知的开源项目背后,都能看到他的贡献。
后来,他加入Google,参与了Kotlin在Android平台的推广工作。2017年,Google正式宣布Kotlin成为Android的一级开发语言,而Jake Wharton也成了Google Kotlin团队的首位工程师。
2020年,他重返Square,随后在Cash App团队工作。2025年11月,他在科技行业大规模裁员潮中选择了离开。
离职后,他公开了一份对下一份工作的9条要求,第一条就是:不加入AI公司、不做以AI为核心的产品,也不接受公司强制使用AI。
这个选择代价不小。Jake Wharton本人估计,这一条要求直接让他放弃了约80%的潜在工作机会。 即便如此,他依然把“不用AI”放在首位。
在AI编程工具已成为行业主流的今天,一位参与过Android和Kotlin生态建设的资深工程师,为何宁愿主动缩小就业选择,也不愿接受AI?Google当初为何选择Kotlin?Kotlin和Swift相比各有什么优势?当AI正在改变程序员写代码的方式,Kotlin的“黄金时代”是否已经过去?
在最近一次采访中,Jake Wharton从自身经历出发,谈到了代码、开发工具,以及AI时代程序员这个职业正在发生的变化。
Kotlin 是怎么成为 Android 的一级编程语言?
主持人:2010年,Java是全球排名第一的编程语言。Android也运行在Java上。JetBrains开发Kotlin是为了和它竞争吗?为什么要做这种尝试?
Jake Wharton: Kotlin出现时,正是Java语言有些停滞不前的时期。当时Oracle正在接管这门语言,发布周期依然长达两年,而Google的团队只能依赖Java语言所能提供的有限功能。
这就给其他人介入的机会。当时,社区正在寻找替代语言。有人使用Scala,也有人尝试Groovy,Kotlin就是在大家渴望更现代的语言时应运而生的。随着Java生态系统之外的其他语言不断演进,你看到了很多令人向往的特性。
作为一家工具公司,JetBrains能够将一门新语言与IDE以及周围的所有基础设施一起交付,这比一个完全从零开始的项目更容易被接受。此外,能够利用现有的生态系统,意味着你不需要抛弃现有的Java库或整个Java代码库。你可以逐步引入它,增量式迁移,并继续使用你已经熟悉的库。
主持人:2017年,Google宣布Kotlin成为Android的官方语言之一。你成为了Google Kotlin团队的第一位工程师。这是怎么发生的?
Jake Wharton: 当时我在Square工作了五六年,而我们大约在三年前就已经采用了Kotlin。我曾写过一份内部文档,论证为什么我们公司应该采用Kotlin,以争取获得批准。我把那份文档公开了(https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit),因为里面没有任何针对我们专有场景的具体内容,它只是对这门语言的一个通用论证。
那份文档在Android社区引发了极大的关注。我成了一个深度参与这门语言演进并积极推广其使用的人。随着兴趣的增长,Google的工程师们也认识到了Kotlin的潜在价值。我在那里认识的人开始向我暗示,官方支持很可能即将成真,并问我是否有兴趣参与其中。
我想象不到有什么比去那家为整个Android提供工具的公司,并把这门语言变成官方第一方产品,更能体现引入Kotlin这个想法的价值了。这是一个不容错过的机会。
主持人:Android团队对采用Kotlin有什么阻力吗?
Jake Wharton:Android团队起初肯定是有疑虑的。 毕竟他们要从构建了10到12年、有着深度全栈集成且极为熟悉的技术,转向采用一种相对未经证实的技术,这种犹豫是必然的。
Kotlin在当时也不过稳定了一两年,因此这些风险和担忧确实存在。Google并不是完全不愿意承担风险,而是希望把风险控制在可接受的范围内,所以对Kotlin的引入采取了非常谨慎的方式。
这种采用并不是一夜之间完成的,而是一个渐进的过程。最开始,我们并没有急着用Kotlin重写已有的Java库,而是先为Kotlin开发对应的兄弟库。
这也恰恰体现了Kotlin的吸引力:它既有自己的语言特性,又很好地延续了Java的生态和开发习惯。开发者可以逐步把Kotlin引入现有代码库,而不需要为了拥抱这门新语言,在一夜之间把所有代码全部重写。
主持人:除了Android之外,Kotlin还在哪里使用?
Jake Wharton: Kotlin刚开始发展的几年里,Android社区对它的支持非常强烈,也因此让不少人产生了一个误解:Kotlin就是一门专门为Android打造的语言。甚至还有文章声称,Kotlin是Google专门为Android开发的,这显然并不准确。
好在这种印象后来逐渐被打破。Kotlin的应用范围已经从Android扩展到了后端服务,覆盖了过去主要使用Java的场景。以Spring为例,如今已经在整个产品体系中正式提供Kotlin的优先支持。
与此同时,JetBrains也在持续推进Kotlin Multiplatform(KMP)。Kotlin开始被用于iOS应用,也出现在越来越多的桌面软件中。JetBrains自己的Toolbox就是一个很典型的例子,它本身就是开发者获取和管理JetBrains IDE的工具。
不过,Android早期的大规模应用并不意味着Kotlin只能用于Android。恰恰相反,Android反而成了Kotlin进入其他开发领域的一个重要跳板。
以Square为例,当时公司的后端服务几乎全部使用Java。Kotlin最初获准在公司内部使用时,也被限定在Android开发场景中。但后端团队看到Android团队使用Kotlin后越来越积极,也开始产生兴趣。最终,他们也获得了在后端项目中使用Kotlin的许可。
所以从某种意义上说,Android并没有把Kotlin限定在移动端,反而成为了它走向更广泛开发场景的催化剂。
主持人:目前在生产环境中使用Kotlin的最大公司有哪些?
Jake Wharton: Meta、Google和Amazon。他们首先在移动端采用了它,但现在已积极应用于他们构建的后端服务和开发者工具中。比如,Meta最近向Kotlin基金会贡献了他们的Kotlin格式化工具,使其成为官方的第一方格式化程序。
这些代表了世界上最大的一些代码库。能够将这种规模的系统迁移到Kotlin,证明了这门语言的实力,也证明了他们对这门语言正在进行的长期投资。
为什么离开 Google?
主持人:Google是许多工程师的梦想工作,也是Kotlin最大的采用者之一。然而你却在两年零九个月后离开了。为什么?
Jake Wharton: 在去Google之前,我曾在Cash App工作。那时,我们已经成功采用了Kotlin,并用它开发了几个开源库。后来,Google决定在Android上正式支持Kotlin。对我来说,加入Google并参与、推动这项工作,是一个无法拒绝的机会。
不过,刚加入Google时,我原本预计自己只会在那里待两年左右。我的目标很明确:帮助Kotlin成为Android上的一等语言,这样以后我自己也可以放心地使用它。
虽然我很享受构建工具和库,但并不想一直专注于基础设施工作。我更希望把自己创造的这些工具真正用起来,去开发面向用户的产品。
两年期限到了之后,我已经准备好转向产品工程。就在我准备提出离职时,管理层又批准了一个我非常想做的项目。为了把这个项目完成,我又多留了九个月。
最终,我还是决定回到产品开发中。对我来说,这也是享受自己参与打造的工具和语言所带来成果的一种方式。Google确实有很多优势,但既然我已经完成了当初给自己设定的目标,那么也是时候继续往前走了。
主持人:你提到过你不喜欢Google的一些方面。这是什么意思?
Jake Wharton: 它是一个极其庞大的组织。Android团队本身非常棒,相对独立于Google的消费者产品生态系统,团队里全是我非常怀念共事的优秀同事。
我真正担心的是Google作为一家商业公司的属性。具体来说,Google的商业模式很大程度上依赖于自己的专有生态和服务,通过这些产品和服务把用户留在自己的体系之内。
主持人:在Cash App工作了五年后,在2025年11月全行业裁员和科技动荡之际,你离开了。找新工作有多难?
Jake Wharton: 并不是毫不费力。工作机会仍然存在,但我对自己想去哪里有具体的标准。因为我是根据自己的意愿主动离职的,所以我并没有陷入绝望或极其紧迫的境地。
机会就在那里,但市场与五年前需求泡沫、Android工程师薪资被抬高的时期显然不同了。现在需要有针对性的努力,我非常同情那些面临非自愿工作变动的工程师。市场并没有完全崩溃,它只是需要更多的时间、耐心以及清晰的差异化定位。
主持人:目前在美国,一名高级Kotlin工程师的现实薪资范围是多少?
Jake Wharton: 通常来说,基本工资的起薪在20万美元左右,之后会随着职位和经验逐步上涨,同时还会配有股权激励。按照标准的四年归属期计算,股权部分通常每年大约价值10万美元。当然,也有一些职位的薪酬会低于这个水平。
不过,现在各家公司在薪酬上都变得更加谨慎了,不再像过去那样愿意开出特别高的薪酬包。如果想拿到明显更高的收入,通常就得进入一些高风险、高回报的领域。
目前,生成式AI无疑是市场上最热门的方向之一,这类岗位的现金和股权薪酬往往会高得多。但与此同时,股权也意味着更大的风险:它可能最终一文不值,也可能带来数倍甚至十倍的回报。
归根结底,怎么选择还是取决于个人的风险承受能力和所处的人生阶段。就我现在而言,我更看重稳定、可预期的现金收入,而不是押注波动较大的股权。职业生涯早期,我其实很愿意承担这样的风险;但随着生活状况发生变化,我对工作的优先级也会随之改变。
主持人:在2026年,Kotlin仍然是软件工程师的职业优势吗?
Jake Wharton: 我现在已经不太确定,Kotlin是否还能算得上一个明显的竞争优势。听起来似乎有些矛盾,但这恰恰说明了这门语言有多成功:它已经从一项能够让你脱颖而出的技能,变成了行业默认的基本要求。
Google将Kotlin定为Android的主要开发语言后,进入这个生态的开发者自然都会接触并学习Kotlin。就像Jetpack Compose一样,四年前它还是一项比较新鲜的技能,如今已经成为许多岗位的标准要求。Kotlin也是如此,现在已经成了基本门槛。
真正能够形成差异化的,反而是更深入的专业能力,比如Kotlin Multiplatform(KMP)。这些技能依然能让一名工程师从庞大的人才库中脱颖而出。相比之下,单纯掌握Kotlin本身,如今已经越来越普遍了。
找工作的九条准则
主持人:在寻找下一份工作时,你列出了未来雇主应具备的九项价值观,我们逐个来看一下。
“第一条——不沾AI。不去AI公司,不做基于AI的产品,或者不强制在开发中使用AI。”
Jake Wharton: 这条标准排在第一是有原因的,它可能正是我一直在寻找的东西。
如今我们正处于一个技术快速演进的时期,各公司正积极地将LLM硬塞进工作流和产品中,而它们往往并不属于那里。
在过去几年里,软件质量并没有出现肉眼可见的改善,我也不认为当前的AI工具本质上会随着时间的推移提升代码质量。 虽然很多公司高管们把它们看作是加速产出和削减工程成本的捷径,但现实情况往往并非如此。
除了实用性,还存在伦理方面的担忧。这些模型是在侵犯版权的基础上训练出来的。回想一下亚伦·斯沃茨 (Aaron Swartz),在2013年,他因为下载了大约30GB的学术论文而面临数十年的监禁,最终选择了自杀。而今天,AI公司肆无忌惮地抓取受版权保护的书籍、艺术品和获得许可的代码库,将这种访问转化为混搭和重新发布知识产权的特权。最近有报道称,Meta使用BitTorrent下载了大量受版权保护的书籍用于模型训练。领先科技公司对伦理的漠视令人震惊,我拒绝为其添砖加瓦。
这个要求直接淘汰了大约80%的潜在机会。 这也反映了我在Block和Cash App的经历。传统上,开发者工具的采用是自下而上的:工程师们对Kotlin、IntelliJ或更好的构建系统感到兴奋,然后申请领导层采用它。而在生成式AI方面,指令是自上而下的:高管领导层在不考虑工程判断的情况下,强制要求使用特定的工具。
高管们通常不会直接规定工程师是否应该使用静态类型,因为这类问题本质上属于工程决策,应该根据代码的正确性和可维护性来判断。但如果管理层开始强行要求团队使用某些开发工具,尤其是在公司持续裁员的背景下,就容易形成一种不健康的工作氛围。
我也理解为什么公司都在追逐AI,本质上是在争夺新的竞争优势。 单纯从商业角度来看,跟随资本和市场炒作并不难理解。但到了我职业生涯的这个阶段,我已经有了选择的余地,可以决定自己不参与这样的生态。
主持人:“第二条——不沾加密货币。密码学是好东西,但加密货币很糟糕。”
Jake Wharton: 在LLM出现之前,加密货币曾是科技行业最主要的炒作周期之一。我在Square和Cash App工作时,公司都非常积极地押注比特币和加密产品。
但从根本上说,我认为加密行业的很大一部分运作方式,更像是一场缺乏内在效用支撑的庞氏骗局。虽然我一直非常支持数据所有权和个人自主权,但加密货币在实际发展过程中已经逐渐演变成了一个具有掠夺性的系统:从散户手中榨取价值,最终让早期参与者和各种投机平台获利。
主持人:“第三条——远程工作。我要远程工作,但很乐意每年去几次办公室。”
Jake Wharton: 我从2015年起就一直远程工作,回到受办公室束缚的工作模式对我没有吸引力。
我重视面对面的交流。在行业会议上录制这次采访,让我能够与几十位平时可能一年才见一次面的同事重新建立联系。面对面的情谊和共情是很有价值的。但是,我完全没有恢复每天通勤的欲望。有了孩子之后,日程的灵活性变得至关重要。能够围绕家庭生活来平衡工作,这是我不愿放弃的优势。
主持人:“第四条——开源。我使用开源软件,并且会发布自己的开源项目或者想要开始做开源。”
Jake Wharton: 开源对我职业发展起到了核心作用。当我在学习开发软件时,开源仓库提供了蓝图。默认把自己的工作公开发布变成了我的第二天性。
在Square,发布开源库在招聘、代码质量提升和社区参与方面都取得了巨大成功。现代技术完全建立在开源基础上——从Linux和Android到SQLite和JVM。做出回馈,无论是通过原创项目还是维护外部依赖项,都维系了这种使软件行业得以生存的互惠关系。
主持人:“第五条——客户高于股东。你的产品专注于为客户提供价值,而不是让股东中饱私囊。”
Jake Wharton: 今天很少有消费级软件的更新能真正让用户感到兴奋。更多的时候,更新带来的是恐惧:功能被移除,界面退化,或者现有的功能被锁在了付费墙后。
这个过程通常被称为“平台劣质化”。依靠风险投资支持的公司经常通过补贴早期增长来获取用户,一旦增长放缓,就会转向激进的价值榨取。我更喜欢开发那些由可持续商业模式支持的产品,这种模式不会为了满足股东的短期期望而牺牲客户体验。
主持人:“第六条——人高于利润。不要零工或者用剥削性的手段去榨取客户的每一分钱。”
Jake Wharton: 这与客户高于股东的理念紧密相连。像Uber和Airbnb这样的公司,最初利用风投补贴,以低价冲击了成熟行业。曾经打车很便宜,是因为投资者垫付了一半的成本。一旦资金收紧,价格就会恢复正常,甚至达到或超过传统替代方案的水平。
虽然传统的出租车行业存在监管缺陷,但他们提供了保护和结构性的监督。而零工经济在弹性收入的幌子下,将运营成本(如车辆折旧、维护和燃料)转移到了独立承包商身上。我不希望去构建促成这种经济模式的软件。
主持人:“第七条——小而专注。 把一件事做好,胜过试图面面俱到。”
Jake Wharton: 我在Square和Cash App最充实的时期,正是团队规模还很紧凑的时候。小团队能培养出一致性、快速的决策和雄心勃勃的解决问题能力。
到我离开时,这家已经扩张到了大约12,000名员工,与我刚加入时的200人相去甚远。在这种规模下,毫无疑问,就像在Google这样的规模下一样,组织惯性、官僚主义和产品臃肿不可避免地会出现。官僚主义的习惯一旦形成,产品开发就会放缓,领导层就开始拼命寻找能带来用户的新事物。当公司规模较小时,事情比较纯粹;你可以专注于寻找特定的问题领域,并将其执行得异常出色。
我也喜欢做各种不同的事情。当公司变大时,工程师的职责范围往往会急剧缩小。我记得听说五年前Twitter的一位工程师仅仅负责私信(DM)的输入框——而且那还是在Twitter甚至都没有富文本聊天功能之前;他们的整个工作领域真的就只有那个私信输入区域。这实在是太狭窄了,以至于你失去了享受构建产品不同层面的灵活性。我更喜欢在产品内部自由切换,并在多个领域开展工作的自由。
小团队还提供了多得多的学习机会。当团队很精简且你的职责更广泛时,你会不断地被推离舒适区。你必须学会自己动手做事情,因为那里没有一个专门的50人部门,可以让你把需求扔过去,然后等上两个月让他们来交付。你必须事必躬亲。
主持人:“第八条——多元、公平和包容(DEI)。平等地分配机会需要积极的努力。”
Jake Wharton: 取决于你居住在哪里、出生在哪里以及你过往的工作经历,生活中的各种因素会赋予你不同的优势和劣势。这超越了性别或种族等显而易见的类别。
回到我在Cash App的经历:在讨论薪酬时,在不同国家做着和我完全相同工作的同事,拿到的是当地的“市场价”,这可能只有我在美国收入的一半。这对我来说毫无道理。他们仅仅因为地理位置就受到了惩罚。你会看到人们为了获得更高的薪水而搬到美国,目的只是在做完全相同的工作时拿到更高的报酬。地理差异会让工程师处于严重的劣势,他们的收入少得多,并且可能难以维持他们渴望的生活方式。
除了地理因素,基于人们无法控制的特征来歧视他们是荒谬的。令人沮丧的是,我甚至必须将这一点明确声明为核心价值观,这本应是基本底线。那些反对DEI的人小时候真应该多看看《星际迷航》,在那里,跨物种、不同背景的多元化以及性别平等是完全自然的事情。这甚至都不应该再有争论了。鉴于更广泛的针对DEI的政治抵制,我觉得非常有必要指出这种抵制是胡说八道,并重申这对我来说依然极其重要。
主持人:“第九条——工作与生活的平衡。我的手机上没有工作聊天软件、工作邮件,也不在手机上做代码审查。”
Jake Wharton: 在Square的头五六年里,我的手机上装了Slack和GitHub。我根本不觉得在周六晚上跳出来审查一个Pull Request有什么不妥。
虽然这对我个人有效,但我最终意识到了这