Evan Martin
简介?
Evan Martin 是 Chrome 早期核心开发者,2007 至 2012 年间在 Google 工作,负责 Linux 版 Chrome 的开发。他最初以自由软件社区成员的身份加入 Chrome 项目, 希望解决 Linux 上缺乏优秀浏览器的问题。十年后他回顾这段经历,写下了《Chrome, 10 years later》一文,记录了那些年的故事与反思。
主要贡献/观点?
Chrome 时期的工作
他最初的目标是让 Linux Chrome 成为现实,为此先在 Windows-only Chrome 上工作多年,最终领导 Linux 团队。他参与了构建系统的设计,写了书签"星号"按钮点亮的代码, 也是最早推动 Git 工具链集成的人之一。
团队成功的关键:Alignment(对齐)
他认为 Chrome 成功的核心因素是"对齐"——产品有一个清晰的目标,每个人都理解并朝同一个方向前进。他回忆曾质疑某个设计细节,设计师 Glen 详细解释了他平衡的各种因素,从那以后他对 Glen 的判断充满信心。 好的领导力不一定有秘密配方,但团队对齐至关重要。
Polish timing(打磨时机)
Chrome 首次发布前夕,某个外部危机导致发布推迟一个月。这一个月不能加新功能,只能修 bug 和打磨细节。回顾起来,这段意外的打磨时间让首版比原计划更惊艳。打磨对某些产品至关重要,但在日常工作中却很难被优先安排。
Reward paradox(奖励悖论)
Google 有一个项目,会给特别成功的团队发放额外股票奖励。Chrome 团队获奖后,一位资深成员很快宣布离职。作者问他为什么,对方说:"一旦我知道留下的最高收益是多少,我就能更好地评估其他选项。" 这是一个关于奖励可能适得其反的教训—— 告诉人们"最高可能收益"反而加速他们的离职决策。
平台权力动态
浏览器世界的权力关系会随规模变化:小时你兼容别人的 bug,大了网站兼容你的 bug,巨大了你就定义网站能做什么。Chrome 从小到大,经历了这种权力转移。他对此感到不安——没有结构性原因保证这些决定是正确的。
Web vs Native 的演变
发布 Chrome 时,连浏览器开发者都认为 HTML 太烂不适合做浏览器 UI。他记得为搜索结果标签页写了原生 UI 代码来实现文本布局和可点击链接——尽管那个 UI 本来就应该像网页一样。后来他推动用 HTML 实现浏览器 UI, 现在 Electron 大行其道,桌面应用不用 HTML 反而少见。
版本控制债务
他是版本控制发烧友,用过 monotone、darcs、tla 等冷门工具,很早就知道 Git 会成为主流。他为 Chrome 写了 Git 工具链来对接 SVN 代码审查流程,但没能推动团队尽早迁移。 多年后 Chrome 终于切换到 Git,花了数年时间才完成。他反思这是领导力的失败——为你认为显而易见的事发声,本可以省掉很多人力。
与 Apple 的合作
Chrome 约一半代码是 WebKit fork,发布后需要向 Apple 上游提交 patch。他享受这个经历:来自完全不同工程文化(没有单元测试、没有注释)的 Apple 工程师的 code review 是极好的学习机会, 同时也防止 Chrome 随意往 Web 平台塞私货。但他也提到 Steve Jobs 曾因 Google 挖角 WebKit 团队成员而暴怒,这后来被揭露是全行业非法串通的一部分——他最终收到了一张约 1.2 万美元的集体诉讼赔偿支票。
对 Web 未来的悲观
离开 Chrome 后,他花了三年做一个试图"拯救报纸"的产品,最终失败。他认为广告驱动的 Web 正在螺旋下降——用 Web 技术可以做出 Figma 这样的好东西,但更容易做出用户敌对的垃圾。人们认为浏览器应该屏蔽广告,但他的观点是: 如果商家想把生意做得令人厌恶,唯一合理的回应就是不再光顾。
对 Chrome 现状的复杂情感
他开玩笑说"Chrome 12 是最好的 Chrome"——因为他想要的是一个快速精简的浏览器,而之后的版本都在变慢变大。他投入了大量心血,但产品是活的,走向了他不会选择的方向。他对 Google 日益随意的隐私态度感到失望—— "Old Google was a lot more respectful than what you see today."