
在软件行业普遍押注 AI 的当下,公开表示“坚决不用 AI 编程”,几乎等于主动缩小自己的职业选择。但 Jake Wharton 还是这样做了。这位被国内开发者称为“J 神”的 Android 与 Kotlin 开源大神,在寻找新工作时列出了九项择业标准,其中第一项就是:不加入 AI 公司,不参与以 AI 为核心的产品,也不接受公司强制工程师使用 AI。按照他的估算,这项要求直接排除了约 80%的潜在雇主。Wharton 并非没有选择。他称,目前美国资深 Kotlin 工程师的基本年薪通常从 20 万美元起,还可能获得每年约 10 万美元、分四年归属的股权。进入 AI 等热门行业,回报可能更高,但风险也更大。年轻时,他愿意用股权押注未来;现在,他更看重稳定的现金收入,以及选择雇主的自由。这种态度也延续了他离开大公司的原因。Wharton 承认,Google 的 Android 团队非常优秀,但他不喜欢 Google 通过产品和服务将用户锁定在自有生态。公司规模扩大后,官僚主义增加、产品迭代放缓,管理层也更急于寻找新用户和收入。相比之下,他更愿意留在目标明确的小团队。他至今没有使用过 AI Agent 写代码。在他看来,AI 可以帮助工程师处理重复劳动,但最不负责任的用法,是让 AI 生成超出使用者能力范围的代码。如果没有大模型就无法完成任务,开发者往往也无法真正理解、验证和维护结果。一旦形成依赖,工程师交出去的不只是部分工作,还包括自己的能力和议价权,最终可能变成一枚更容易被低成本替换的齿轮。Wharton 并不认为 AI 会消失,也不担心程序员很快失去位置。“AI 已经强大得令人不安”,但这并不意味着它能够稳定、无误地承担整个软件工程过程。对他而言,AI 最多只能是工具箱中的一件工具,而不能成为工程能力的地基。从拒绝 AI、质疑加密货币,到讨论 Kotlin 是否仍有优势、为什么更喜欢 Rust,下面是 Jake Wharton 在近期的一场两小时访谈中的完整回答。Kotlin 像是“Java 十年后想要成为的样子”主持人:Java 当年已经是全球最主流的编程语言,Android 也建立在 Java 之上,为什么还需要 Kotlin?Jake Wharton:Kotlin 出现时,Java 语言的发展正处于一个相对停滞的阶段。当时 Oracle 正在逐步接手 Java,版本发布周期仍然长达两年。对于 Android 团队来说,能够使用的语言特性很大程度上受限于 Java 本身。与此同时,Java 生态之外的编程语言正在快速演进,出现了许多开发者想要的新特性。社区也开始尝试其他选择,有人使用 Scala,也有人使用 Groovy。大家都在期待一种更加现代的语言,Kotlin 正好出现在这个时间点。JetBrains 本身是一家开发工具公司,因此能够在推出新语言的同时,提供 IDE 和周边基础设施。这让 Kotlin 比那些需要从零建立工具链的语言更容易被开发者接受。更重要的是,采用 Kotlin 并不意味着抛弃原有的 Java 代码和库。开发者可以继续使用已有的 Java 生态,在原有项目中逐步引入 Kotlin,再慢慢完成迁移。这种渐进式兼容能力,是 Kotlin 得以普及的重要原因。主持人:你后来成为了 Google Kotlin 团队的第一位工程师,这个机会是怎么来的?Jake Wharton:在加入 Google 之前,我已经在 Square 工作了五六年。大约在那之前三年,我们开始在公司内部采用 Kotlin。为了获得公司批准,我写过一份文档,解释为什么我们应该使用 Kotlin。由于其中的论证并不只适用于 Square,我后来将这份文档公开了。它在一定程度上推动了 Android 社区对 Kotlin 的兴趣,我也因此越来越深入地参与 Kotlin 相关工作,并不断向开发者推广这门语言。随着社区关注度上升,Google 内部的一些人也逐渐意识到,Kotlin 可能会给 Android 开发带来很大帮助。当时我认识的一些 Google 员工开始暗示,Google 可能会正式支持 Kotlin,并询问我是否愿意参与。对我来说,没有什么比加入负责整个 Android 工具链的公司,并推动 Kotlin 成为 Android 官方一等语言更大的认可了。这个机会几乎不可能拒绝。主持人:Google Android 团队当时对采用 Kotlin 有没有抵触?Jake Wharton:与其说是抵触,不如说是谨慎。当时 Android 已经围绕 Java 构建了大约十到十二年,Java 深入整个技术栈,团队对它也非常熟悉。相比之下,Kotlin 还是一门相对年轻、尚未得到充分验证的语言,大概只稳定了一两年。因此,采用 Kotlin 确实存在风险,团队内部也有顾虑。Google 并非完全厌恶风险,但必须确认各方面都考虑周全。Kotlin 的引入过程非常审慎,并不是一夜之间完成硬切换。Android 团队最初会为 Kotlin 单独构建配套库,而不是立即用 Kotlin 重写已有的 Java 库。开发团队也不需要一次性改造整个代码库,而是可以逐步采用。从另一个角度看,这也证明了 Kotlin 对 Java 传统的尊重。它允许开发者在不推翻现有系统的情况下慢慢迁移。主持人:Kotlin 是否只是一门用于 Android 开发的语言?Jake Wharton:最初几年,由于 Kotlin 在 Android 社区获得了大量支持,外界形成了一种错误印象,认为它是一门专门为 Android 设计的语言。当时甚至出现过文章,声称 Kotlin 是 Google 为 Android 创造的,这显然并不正确。后来,Kotlin 开始进入更多领域。过去可能会使用 Java 构建的后端服务,现在也越来越多地采用 Kotlin。Spring 等公司提供的许多能力,也开始优先考虑 Kotlin。JetBrains 还在持续推动 Kotlin Multiplatform,因此现在也能在 iOS 和桌面应用中看到 Kotlin。比如用于管理和安装 JetBrains IDE 的 Toolbox App,就是一个使用 Kotlin 构建的桌面应用。Android 更像是 Kotlin 进入其他生态的催化剂。以 Square 为例,我们最初只获准在 Android 项目中使用 Kotlin。但后端的 Java 工程师看到移动团队对 Kotlin 的热情后,也开始希望使用它。后来,Kotlin 逐步被批准用于后端服务。主持人:如果让你用一分钟向 Java 开发者推荐 Kotlin,你会怎么说?Jake Wharton:Kotlin 很像是“Java 十年后想要成为的样子”。Java 必须尽量避免破坏已有代码,因此语言演进速度相对缓慢。很多未来可能进入 Java 的现代语言特性,现在已经可以在 Kotlin 中使用。采用 Kotlin 也不要求项目运行在最新版本的 JVM 上。现实中还有许多代码库停留在 Java 8 或 Java 11,Kotlin 同样兼容这些环境。开发者可以在较老的 JVM 上,使用更现代的语言能力。主持人:现在有哪些大型公司在生产环境中使用 Kotlin?Jake Wharton:Meta、Google 和 Amazon 都在使用 Kotlin。最初的应用主要集中在移动端,但现在后端服务也越来越多地采用 Kotlin。这些公司还在投入相关工具。例如,就在我们录制这期节目这一周,Meta 将自己的 Kotlin 格式化工具贡献给了 Kotlin Foundation,它未来可能成为 Kotlin 官方的格式化工具。这些公司拥有世界上规模最大的代码库。它们能够在既有语言和系统之上逐步引入 Kotlin,并且愿意进行长期投入,本身就是对这门语言的一种验证。谷歌令人生厌之处——把用户锁在自家生态里主持人:Google 是很多工程师心目中的理想雇主,你为什么工作两年九个月后就离开了?Jake Wharton:加入 Google 之前,我在 Cash App 工作。我们推动了 Kotlin 的采用,也用 Kotlin 编写了不少开源库。后来 Google 决定让 Kotlin 成为 Android 官方语言,这个机会实在太难得了。不过,我加入时就对同事说,我大概会离开办公室两年。我的计划是帮助 Kotlin 成为 Android 的一等语言,尽可能推动它取得成功,让自己以后能够放心地依赖这门语言,然后再回到一线,用这些工具真正构建产品。我喜欢开发工具和库,但不想永远只做工具。我也希望成为这些工具的使用者,并真正享受到前期投入带来的价值。两年期满时,我原本准备离开,但 Google 恰好批准了另一个我很想做的项目,于是又留下来工作了九个月。最终,我认为自己已经完成了当初的目标,因此决定回到产品开发。主持人:你不喜欢 Google 的哪些地方?Jake Wharton:Google 是一家规模非常大的公司。Android 团队相对独立,我在那里遇到的同事也都非常优秀,我至今仍然怀念那段工作。但我对 Google 这家公司的一些做法存在意见,例如它会通过产品和服务将用户锁定在自己的生态系统中。不过,这些看法主要针对 Google 作为一家公司的运作方式,并不是针对 Android 团队。主持人:你在 2025 年离开 Cash App 时,科技行业正经历大规模裁员。那时找工作有多难?Jake Wharton:找工作并不轻松,但市场上并非完全没有机会。我对下一份工作有一些具体要求,因此选择比较谨慎。我比较幸运,是按照自己的计划主动离职,没有必须立刻找到工作的压力。但现在的就业市场,确实已经不像五年前。那时一名 Android 开发者可能很容易就被公司招走,并获得非常高的薪酬。现在,求职需要投入更多精力,花费更长时间,也必须想办法证明自己的差异化价值。我非常理解那些被迫进入求职市场的工程师所面对的压力。不过,我不认为整个市场已经彻底崩溃,工作机会依然存在,只是更难找了。主持人:目前美国资深 Kotlin 工程师的薪酬大概是多少?Jake Wharton:我通常看到的基本工资是 20 万美元起,此外还可能包括股权,例如每年约 10 万美元的股权,按照四年归属。当然,低于这个水平的职位也有很多。如今公司会更加谨慎地考虑资金流向,不再像以前那样普遍支付极高的薪酬。如果希望获得更高回报,就可能需要进入当前最受关注、潜在收益更高的技术领域。这类公司给出的现金和股权可能更多,但风险也更大:股权可能归零,也可能增长十倍。最终,这取决于个人所处的人生阶段和风险承受能力。年轻时,我愿意承担这种风险;但现在,我更倾向于获得稳定、可预期的现金收入。主持人:到了 2026 年,掌握 Kotlin 还能给软件工程师带来职业优势吗?Jake Wharton:我不确定它现在还能算是一项优势。从某种意义上说,这反而体现了 Kotlin 的成功:它已经成为一项默认要求,而不再是一种稀缺、难以找到的能力。这主要源于 Google 将 Kotlin 确立为 Android 的官方一等语言。如今进入 Android 开发领域,通常就会直接学习 Kotlin,用人单位也默认求职者已经掌握它。Jetpack Compose 同样如此:大约四年前,它可能还是一项相对少见的技能,现在已经逐渐成为默认要求。如果开发者掌握的不只是常规 Kotlin,而是 Kotlin Multiplatform 等相对进阶的能力,那么它仍然可能构成差异化优势,让你从其他 Kotlin 开发者中脱颖而出。但仅仅“会 Kotlin”,已经很难成为明显的职业加分项,因为它实在太普及了。为什么拒绝使用 AI 编程?主持人:你在寻找下一份工作时,公开列出了对未来雇主的九项要求,其中第一条就是“不去 AI 公司、不做以 AI 为基础的产品,也不接受公司强制使用 AI 开发”。为什么这一点对你如此重要?Jake Wharton:它被放在第一位是有原因的。这可能是我找工作时最看重的一项标准。我们正处在一个快速变化的时期,不仅软件开发方式在变,许多公司也在强行把 AI——更准确地说是大语言模型——塞进一些原本可能并不需要它的地方。我不认为过去几年软件的整体质量得到了提高,也不认为这类工具长期来看会改善软件质量。但一些公司高管看到的却是另一幅图景:他们认为 AI 可以让工程师工作得更快,并产出质量更高的代码。我的判断恰恰相反。因此,我不想与这些事情产生关联。只是现在想完全避开 AI 已经越来越困难,所以我把这一要求放在首位。它也直接排除了大约 80%我原本可能加入的公司。主持人:除了版权和软件质量,你反对的是否还有公司强制工程师使用 AI 的方式?Jake Wharton:是的。传统上,一项开发工具通常由工程师自下而上推动。可能是一名工程师喜欢上一门新语言,比如 Kotlin;也可能是一款新 IDE,比如 In IDEA;或者是一套新的构建系统。工程师在实际工作中发现它有价值,热情逐渐感染其他人,然后大家再去说服工程管理者批准采用它。但 AI 工具的推广方向似乎完全相反。为什么要由一家公司的 CEO 告诉工程师,日常工作应该使用什么工具?公司领导通常不会直接要求你必须使用静态类型语言,也不会决定你应该如何利用类型系统表达业务需求,或者如何处理空值。这些原本都是工程决策。工程师了解业务需求,再选择能够有效完成工作的工具。如果 Jack Dorsey 当时要求我必须使用 Eclipse,我可能同样会辞职。问题不只在于 AI,而在于公司管理层越过工程判断,强制开发者使用某一种工具。主持人:为什么管理层强推 AI,会让你联想到科技行业的裁员?Jake Wharton:如果只是要求使用某种工具,或许还是一个可以单独讨论的问题。但当强制使用 AI 与一轮又一轮裁员同时发生时,整件事看起来就不那么乐观了。我可以作出个人选择,决定不使用这些工具。我也认为,很多全力投入 AI 的公司是在争抢市场、追逐现金和用户。趁市场火热进入这个领域,从商业角度并不难理解:资金和用户在哪里,公司就会去哪里。但我比较幸运。经过多年工作,我现在有能力按照自己的价值观选择雇主,并不是所有人都有这样的条件。拒绝 AI 让我失去了大量潜在机会,但这是目前对我而言最重要的标准,所以我愿意接受这个结果。主持人:你的第二项择业标准是不加入加密货币公司。你反对的是密码学,还是加密货币?Jake Wharton:密码学是一项有价值的技术,但我不认同加密货币。在大语言模型之前,加密货币是科技行业最受追捧的方向之一,Square 和 Cash App 当时也大举投入其中。在我看来,加密货币基本上已经变成了一种庞氏骗局,没有创造多少真实价值。这似乎与我对“所有权”的重视相矛盾——我当然支持人们真正拥有自己的资产,不受其他机构控制,但加密货币的问题出在具体实现上。它最终形成了一个带有掠夺性的系统。真正赚到钱的,往往是利用其他参与者获利的人,或者是在上面搭建业务、不断从客户身上抽取价值的公司。这是我不希望参与的一类行业。主持人:你希望未来的雇主既使用开源软件,也将自己的项目开源。为什么?Jake Wharton:我在成长为一名开发者的过程中,几乎一直在接触开源。学习新技术、研究别人如何编写软件时,我首先会去看开源项目。所以对我来说,尝试或构建一项新东西时,默认选择就是把它公开。后来我加入 Square,我们也成功地将大量技术成果开源。几乎每家公司都建立在他人工作的基础之上。如果一家企业愿意开源自己的成果,或者为其他开源项目作出贡献,这就是一种回馈,也是把自己获得的帮助传递给后来者。企业不需要从头构建 Linux、Android、SQLite 或者 JVM,因为前人已经完成了这些工作。同样,你今天公开的项目,也可能成为下一家公司或下一代开发者的基础。主持人:你的另一项要求是公司“小而专注”。为什么你认为做好一件事,比试图服务所有人更重要?Jake Wharton:我职业生涯中最好的阶段之一,是早期加入 Square 并参与构建 Cash App 的时候。那时公司规模还很小,大家彼此认识,也能围绕一个愿景迅速执行。团队甚至会带着一点天真,相信自己能够做出很多东西。我加入 Square 时,公司大约有 200 人;后来离开 Cash App 时,公司已经增长到约 1.2 万人。Google 的规模还要再大一个数量级。公司不断扩大以后,官僚主义随之增加,产品迭代开始放缓,管理层也会越来越急于寻找能够带来新用户和新收入的方向。相比之下,小团队更容易保持目标的纯粹性,找到一个明确的问题并把它做好。主持人:大公司除了效率下降,对工程师个人还有什么影响?Jake Wharton:公司规模越大,工程师的职责往往越狭窄。我听说过一位 Twitter 工程师,长期负责的几乎只是私信界面中的一小部分。当一个人的工作范围被切割得如此细,他就很难再体验产品开发的其他环节。我喜欢参与不同类型的工作,在一个产品内部不断切换问题。小团队能给工程师更多这样的空间,同时也会带来更多学习机会。当团队规模较小时,不会有一个 50 人的专门团队替你解决某类问题。你不能只是把需求扔给另一个部门,再等两个月接收结果,而是必须走出舒适区,亲自动手学习和解决问题。对我来说,这种广度和成长机会非常重要。主持人:经过三个月求职,你在 2026 年 2 月加入 Skylight。这家公司为什么能说服你?Jake Wharton:Skylight 符合前面提到的许多价值观,更重要的是,我自己就是它的目标用户。它面向家庭提供硬件产品,而我有家庭,也确实存在相应的使用需求。我一直希望接触更多硬件开发,这份工作正好提供了机会。它与 Android 有关,但又包含许多我以前没有深入做过的事情,例如 AOSP 和真实硬件设备。Skylight 的应用不通过 Google Play 商店分发,因此我们拥有更大的系统控制权,不必处理 Google Play 体系中的许多问题。这对我而言也是一个有吸引力的新领域。此外,公司已经获得融资,也有实际收入。我认识 Nova Launcher 的作者 Kevin Barry,他比我早大约半年加入 Skylight。他的选择也增强了我对这家公司的信心。Skylight 是我求职期间最先接触的公司,后来它反而成了衡量其他机会的标准。市场上并非没有其他优秀公司,但没有一家像它这样完整地满足我的要求。主持人:Skylight 同样使用大语言模型,这是否违背了你“不加入 AI 公司”的原则?Jake Wharton:我不认为自己作出了实质性妥协。Skylight 此前没有做过太多开源工作,但公司愿意尝试,也接受我继续维护已有的开源项目,其中一些项目本身就在产品中使用。它确实使用了大语言模型,但整个产品并不是围绕 AI 建立的。AI 功能是可选的,用户完全可以不用;它也没有为了追赶潮流,把整个产品改造成聊天机器人。我认为,公司对 AI 的使用相对克制,也确实用在了合适的位置。我加入以后,也希望继续把自己的这些价值观带进团队。这与加入一家以 AI 为核心、要求所有工程师依赖 AI 开发的公司并不是一回事。让非技术人员用 AI ...