离开 Google

在 Google 工作了 19 年后,我离开了。

在大部分时间里,我很幸运能够参与 Go programming language 的开发。Go 由 Rob Pike、Ken Thompson 和 Robert Griesemer 于 2007 年秋季启动。我在 2008 年 6 月加入团队,差不多和 Russ Cox 同一时间。能够与如此杰出的人才一起从事如此有趣的项目,我感到非常幸运。

我惊讶于 Go 这些年来获得的广泛应用。Go 已经达到了“另一种编程语言”的地位,任何程序员都可以在适当的时候选择它。这远远超出了我们早期所有人的预期,当时我们最大的希望是 Go 可以作为其他语言和编程环境可以采用的有用思想的例子。

我最初参与 Go 的方式是为 GCC compiler 添加一个 Go 前端。当然,Go 项目已经有了一个基于 Inferno C 编译器的编译器。拥有两个编译器有助于确保语言的清晰定义。当两个编译器存在差异时,我们就知道必须澄清规范并确定正确的行为。

总的来说,我在 Go 团队中自我任命的角色包括跟踪关于该项目的一切,并寻找需要帮助的领域。在早些年,我还在 Google 的内部构建系统和 the SWIG tool 中添加了 Go 支持。我有几年是团队经理。从 Go 的最初几天开始,人们就要求支持某种形式的泛型或类型参数化;与 Robert Griesemer 合作,我开发了一系列语言变更提案,并且泛型在 Go 1.18 release in 2022 中被添加到语言中。

我的方法有优点也有缺点。我能够很快地看到人们今天遇到的问题,以及他们明天将会遇到的问题,而且我经常能够解决这些问题。但我很难看到那些能帮助人们做他们没有尝试做的新事情的想法,比如 Go module proxy 和 Go vulnerability database。

总的来说,我认为我的方法在帮助构建一个成功的项目方面是有效的。但是 Google 已经改变,Go 也已经改变,整个计算机编程环境也已经改变。在过去一年左右的时间里,我越来越清楚地意识到,我不再适合 Google 的 Go 项目。我必须继续前进了。

我对 Go 仍然很感兴趣。我不认为这门语言已经完成了。我不认为任何编程语言是永远完成的 —— 编程环境一直在变化,语言必须进化或消亡。对于像 Go 这样配备了大量标准库的语言来说,更是如此,它必须适应程序员的新需求。

我会休息一段时间,但我希望将来能够再次为 Go 做出贡献。