Go 十年

Posted by LB on Tue, Dec 24, 2019

Russ Cox,代表Go团队

2019年11月8日

Happy birthday, Go!

这个周末,我们庆祝Go发布10周年,庆祝Go作为一种开源编程语言和构建现代网络软件的生态系统的10周年。

为了纪念这一时刻,Go gopher的创始人蕾妮·弗兰奇描绘了这一令人愉快的场景:

庆祝Go十周年让我回想起2009年11月上旬,那时我们正准备与世界分享Go。 我们不知道会有什么样的反应,也不知道是否有人会关心这种小小的语言。我希望,即使没有人最终使用Go,我们至少也会注意到一些好的想法,特别是Go的并发性和接口方法,它们可能会影响后续语言。

当人们对Go感到兴奋的时候,我研究了流行语言的历史,比如C、C++、Perl、Python和Ruby,考察了它们被广泛采用所花的时间。例如,在我看来,Perl似乎在上世纪90年代中后期就已经完全成形了,有了CGI脚本和web,但它是在1987年首次发布的。这一模式几乎适用于我所研究的每一种语言:一种新的语言要真正起飞,似乎需要大约十年的安静、稳定的改进和传播。

我在想:十年后会是什么样子?

今天,我们可以回答这个问题:Go无处不在,全世界至少有一百万开发者在使用它。

Go最初的目标是网络系统基础设施,也就是我们现在所说的云软件。如今,每个主要的云提供商都使用用Go编写的核心云基础设施,如Docker、Etcd、Istio、Kubernetes、Prometheus和Terraform;云计算基金会的大多数项目都是用Go编写的。无数的公司也在使用Go将他们自己的工作转移到云上,从从无到有的创业公司到现代化软件栈的企业。Go的应用范围也远远超出了它最初的云目标,从使用GoBot和TinyGo来控制微型嵌入式系统,到使用GRAIL进行大规模的大数据分析和机器学习来检测癌症,以及两者之间的一切。

所有这一切都说明,Go的成功超乎我们的想象。Go的成功不仅仅在于语言。它是关于语言,生态系统,特别是社区的合作。

在2009年,该语言是一个不错的主意,并带有一个实现的工作草图。 go命令不存在:我们运行了诸如6g的命令进行编译,并运行了6l的命令来链接二进制文件,这些命令使用makefiles自动执行。 我们在语句末尾键入分号。 整个程序在垃圾回收期间停止,然后努力利用两个内核。 Go只能在Linux和Mac,32位和64位x86和32位ARM上运行。

在过去的十年里,在全球Go开发人员的帮助下,我们已经将这个想法和草图发展成为一种富有成效的语言,它具有出色的工具、高质量的产品实现、最先进的垃圾收集器以及12个操作系统和10个体系结构支持。

任何编程语言都需要蓬勃发展的生态系统的支持。 开源版本是该生态系统的种子,但是从那时起,许多人贡献了自己的时间和才干,用出色的教程,书籍,课程,博客文章,播客,工具,集成以及可重复使用的Go来填充Go生态系统。 可通过go get导入的软件包。 没有这个生态系统的支持,Go永远不可能成功。

当然,生态系统需要蓬勃发展的社区的支持。 在2019年,全球有数十个Go会议,以及超过90个成员超过150个Go会议团体。GoBridge和Going Who Go通过指导,培训和会议奖学金帮助将新的声音带入Go社区。仅今年一年,他们就在社区成员教授和指导新加入者的研讨会上,教育了数百名来自传统代表性不足群体的人。

全球有超过一百万的Go开发人员,全球各地的公司都在寻求雇用更多的人。 实际上,人们经常告诉我们,学习Go帮助他们获得了技术行业的第一份工作。 最后,我们为Go感到最自豪的不是设计完善的功能或巧妙的代码,而是Go在这么多人的生活中产生的积极影响。我们的目标是创造一种语言,帮助我们成为更好的开发人员,我们很高兴Go帮助了这么多人。

作为#GoTurns10,我希望每个人都花一点时间来庆祝Go社区以及我们所取得的一切。 代表Google的整个Go团队,感谢过去十年来加入我们的每个人。 让下一个更不可思议!

Original URL : https://blog.golang.org/10years