Go语言始于2007年9月,当时Robert Griesemer,Ken Thompson和我开始讨论设计一种新语言,以解决我们和Google同事在日常工作中面临的工程挑战。我们当时编写的软件通常是一个网络服务器-一个与数百台其他服务器交互的程序-并且在其生命周期内,成千上万的程序员可能会参与编写和维护它。但是我们当时正在使用的语言似乎没有提供正确的工具来解决我们在这种复杂环境中面临的问题。

因此,我们坐了一个下午,开始讨论一种不同的方法。

当我们于2009年11月首次向公众发布Go时,我们不知道该语言是否会被广泛采用或是否会影响未来的编程语言。回顾2020年,Go在这两方面都取得了成功:它在Google内部和外部都得到了广泛使用,其网络并发和软件工程方法对其他语言及其工具产生了显着影响。

事实证明,Go的影响范围比我们预期的要广泛得多。它在行业中的增长令人瞩目,并为Google的许多项目提供了动力。

Google内部是如何使用Go语言的_Google

感谢Renee French提供的Gopher插图。

在Google内部,Go用于生产用途最早出现在2011年,那一年我们在App Engine上发布了Go,并开始通过Vitess为YouTube数据库提供流量代理服务。当时,Vitess的作者告诉我们,Go正是他们所需要的那种语言- 简单网络编程,高效执行和快速开发的结合,并且如果不使用Go,他们可能根本无法构建这个系统。

第二年,Go取代Sawzall被用作Google的搜索质量分析。当然,Go还推动了Google在2014年开发和推出Kubernetes。

在过去的一年中,我们发布了来自十六个来自全球Go用户的案例研究,这些案例讨论了他们如何使用Go大规模构建快速、可靠和高效的软件。今天,我们将添加来自Google内部团队的三个新的案例研究:

•核心数据解决方案:Google的核心数据团队用更灵活的微服务系统取代了用C++编写的整体式索引管道以为Google搜索提供支持,其中大多数服务使用Go编写。•Google Chrome:精简模式下的Google Chrome移动用户依靠Chrome优化指南服务器来提供提示,以优化其地理区域内知名网站的页面加载。用Go语言编写的服务器每天可为数百万用户提供更快的页面加载速度和更低的数据使用率。•Firebase:Google Cloud客户选择Firebase作为他们选择的移动和网络托管平台。加入Google后,该团队将其后端服务器从Node.js完全迁移到Go,以实现轻松并发和高效执行。

我们希望这些故事能为Go开发人员和社区提供更深入的见解,以了解Google团队选择Go的原因,使用Go的目的以及团队做出这些决定的不同途径。