Go始于2007年9月,当时罗伯特·格里斯默(Robert Griesemer)、肯·汤普森(Ken Thompson)和我开始讨论一种新的语言,以解决我们和我们在谷歌的同事在日常工作中面临的工程挑战。我们正在编写的软件通常是一个联网的服务器-单个程序与数百个其他服务器交互-在其整个生命周期中,可能有数千名程序员参与编写和维护它。但是,我们使用的现有语言似乎没有提供正确的工具来解决我们在这个复杂环境中面临的问题。所以,一天下午,我们坐下来,开始谈论一种不同的方法。当我们在2009年11月首次发布Go时,我们不知道这种语言是否会被广泛采用,或者它是否会影响未来的语言。回顾2020年,Go在两个方面都取得了成功:它在谷歌内部和外部都得到了广泛的使用,其网络并发和软件工程的方法对其他语言及其工具产生了明显的影响。事实证明,围棋的覆盖范围比我们预期的要广泛得多。它在行业中的增长是惊人的,它为谷歌的许多项目提供了动力。Go Inside Google最早的量产使用出现在2011年,那一年我们推出了Go on App Engine,并开始与Vitess一起为YouTube数据库流量提供服务。当时,Vitess的作者告诉我们,围棋正是他们所需要的简单的网络编程、高效的执行和快速开发的组合,如果没有围棋,他们很可能根本就无法构建这个系统。第二年,Go取代了Sawzall,成为谷歌搜索质量分析的代言人。当然,围棋也为谷歌在2014年开发和推出Kubernetes提供了动力。在过去的一年里,我们发布了来自世界各地最终用户的16个案例研究,讨论他们如何使用Go大规模构建快速、可靠和高效的软件。今天,我们将增加三个来自Google内部团队的新案例研究:核心数据解决方案:Google的核心数据团队用更灵活的微服务系统取代了用C++编写的单一索引管道,其中大多数微服务系统是用Go编写的,这些微服务有助于支持Google搜索。
Google Chrome:精简模式下Google Chrome的移动用户依赖Chrome优化指南服务器来提供提示,以优化其地理区域内知名网站的页面加载。该服务器是用Go编写的,有助于提供更快的页面加载速度,并降低每天数百万用户的数据使用量。
Firebase:Google Cloud客户将Firebase作为其移动和虚拟主机平台的首选。加入Google后,团队完全将其后端服务器从Node.js迁移到Go,以实现轻松的并发和高效的执行。
我们希望这些故事能为Go开发者社区提供更深入的见解,了解Google团队选择Go的原因,他们使用Go的目的,以及团队做出这些决定的不同途径。如果您想分享您自己关于您的团队或组织如何使用围棋的故事,请与我们联系。