:::info 日期:2019 年 11 月 08 日
    作者:Russ Cox, for the Go team
    原文链接:https://go.dev/blog/10years :::

    生日快乐,加油!

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

    为了纪念这一时刻,Go gopher 的创造者 Renee French 描绘了这个令人愉快的场景:
    Screen Shot 2021-09-21 at 10.18.15 PM.png
    庆祝围棋 10 周年让我想起了 2009 年 11 月初,当时我们正准备与世界分享围棋。 我们不知道期待什么样的反应,是否有人会关心这种小语言。 我希望即使最终没有人使用 Go,我们也至少会注意到一些好的想法,尤其是 Go 的并发和接口方法,这可能会影响后续语言。

    当人们对 Go 感到兴奋时,我查看了 C、C++、Perl、Python 和 Ruby 等流行语言的历史,研究了每种语言获得广泛采用的时间。 例如,在我看来,Perl 似乎在 1990 年代中后期完全成型,带有 CGI 脚本和网络,但它于 1987 年首次发布。这种模式几乎在我看过的每种语言中都重复出现:似乎 在一种新语言真正起飞之前,需要大约十年的安静、稳定的改进和传播。

    我想知道:十年后 Go 会在哪里?

    今天,我们可以回答这个问题:Go 无处不在,全球至少有 100 万开发人员在使用它。

    Go 最初的目标是网络系统基础设施,也就是我们现在所说的云软件。 当今每个主要的云提供商都使用 Go 编写的核心云基础设施,例如 Docker、Etcd、Istio、Kubernetes、Prometheus 和 Terraform; Cloud Native Computing Foundation 的大部分项目都是用 Go 编写的。 无数公司也在使用 Go 将他们自己的工作转移到云端,从从头开始构建的初创公司到对其软件堆栈进行现代化改造的企业。 Go 的采用也远远超出了其最初的云目标,其用途范围从使用 GoBotTinyGo 控制微型嵌入式系统到在 GRAIL 使用大量大数据分析和机器学习检测癌症,以及介于两者之间的一切。

    所有这一切都说明围棋的成功超出了我们最疯狂的梦想。 Go 的成功不仅仅在于语言。 这是关于语言、生态系统,尤其是社区的合作。

    在 2009 年,该语言是一个很好的想法,有一个实现的工作草图。 go 命令不存在:我们运行像 6g 来编译和 6l 之类的命令来链接二进制文件,用 makefile 自动化。 我们在语句的末尾输入分号。 整个程序在垃圾收集期间停止,然后努力充分利用两个内核。 Go 只能在 Linux 和 Mac、32 位和 64 位 x86 和 32 位 ARM 上运行。

    在过去的十年里,在世界各地 Go 开发人员的帮助下,我们已经将这个想法和草图发展成一种具有出色工具、生产质量实现、最先进的垃圾收集器端口的高效语言 到 12 个操作系统和 10 个体系结构

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

    当然,生态系统需要蓬勃发展的社区的支持。 2019 年,全球有数十场围棋大会,以及超过 150 个围棋聚会小组,超过 90,000 名成员。 GoBridge Women Who Go 通过指导、培训和会议奖学金帮助将新的声音带入围棋社区。 仅今年一年,他们就在社区成员教授和指导 Go 新手的讲习班上教了数百名来自传统上代表性不足的群体的人。

    全球有超过 100 万 Go 开发人员,全球各地的公司都希望招聘更多人。 事实上,人们经常告诉我们,学习围棋帮助他们在科技行业找到了第一份工作。 最后,我们对 Go 最自豪的不是精心设计的功能或巧妙的代码,而是 Go 对许多人的生活产生的积极影响。 我们的目标是创建一种语言来帮助我们成为更好的开发人员,我们很高兴 Go 帮助了这么多其他人。

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