Go 博客

Go 语言八周年

Steve Francia
2017 年 11 月 10 日

今天,我们庆祝 Go 作为开源项目发布 8 周年。在 Go 4 周年纪念 中,Andrew 在文章的最后写道:“祝未来四年一切顺利!”现在我们已经达到这一里程碑,我不禁反思自那时起,该项目和生态系统是如何发展的。在我们四年前的帖子中,我们包含了一张图表,展示了 Go 在 Google 趋势中使用搜索词“golang”的流行度不断上升。今天,我们包含了一张更新后的图表。在这个相对的流行度尺度中,四年前是 100,现在仅仅是 17。Go 的流行度在过去 8 年中呈指数级增长,并且仍在继续增长。

来源:trends.google.com

开发者喜欢 Go

Go 已被全球的开发者所接受,全球约有 100 万用户。在 GitHub 最近发布的 2017 Octoverse 中,**Go 已成为最受欢迎的语言排名第九位**,超过了 C 语言。**Go 是 2017 年 GitHub 上增长最快的语言**,在排名前十的语言中,**比前一年增长了 52%**。在增长方面,Go 与 JavaScript 交换了位置,JavaScript 跌至第二名,增长率为 44%。

来源:octoverse.github.com

Stack Overflow 2017 年开发者调查 中,Go 是唯一一种同时出现在 **最受欢迎语言前五名和最想要的语言前五名** 的语言。使用 Go 的人喜欢它,而没有使用 Go 的人则想要使用它。

来源:insights.stackoverflow.com/survey/2017

Go:云基础设施的语言

2014 年,分析师 Donnie Berkholz 将 Go 称为 新兴的云基础设施语言。**到 2017 年,Go 已成为云基础设施的语言**。如今,**每一家云计算公司都使用 Go 来实现其云基础设施的关键组件**,包括 Google Cloud、AWS、Microsoft Azure、Digital Ocean、Heroku 等等。Go 是阿里巴巴、Cloudflare 和 Dropbox 等云计算公司的关键组成部分。Go 是开放式基础设施的关键组成部分,包括 Kubernetes、Cloud Foundry、Openshift、NATS、Docker、Istio、Etcd、Consul、Juju 等等。越来越多的公司选择 Go 来构建云基础设施解决方案。

Go 的优秀社区

很难想象,仅仅四年前,Go 社区还处于从在线社区过渡到包含线下社区的阶段,并举办了第一届会议。现在,Go 社区已在全球举办了 30 多场会议,有数百场演讲,数万名与会者。有数百个 Go 聚会每月举行,覆盖全球大部分地区。无论您身在何处,您都可能在附近找到 Go 聚会。

为了帮助 Go 社区中的包容性,成立了两个不同的组织:Go Bridge 和 Women Who Go;后者已发展到 25 个分会。这两个组织都为提供免费培训做出了贡献。仅在 2017 年,Go Bridge 和 Women Who Go 就通过努力为参加会议提供了 50 多个奖学金。

今年,Go 项目迎来了两个重要的首次。我们举办了第一届 贡献者峰会,来自 Go 社区的各界人士齐聚一堂,讨论 Go 项目的需求和未来。不久之后,我们举办了第一届 Go 贡献者研讨会,数百人参加了这次研讨会,并完成了他们的第一次 Go 贡献。

Sameer Ajmani 拍摄的照片

Go 对开源的影响

Go 已成为开源世界的一股重要力量,为一些最受欢迎的项目提供支持,并在许多行业推动创新。在 awesome-go 中可以找到数千个其他应用程序和库。以下只是一些最受欢迎的项目:

  • Moby(以前称为 Docker)是一种用于在轻量级容器中打包和运行应用程序的工具。其创建者 Solomon Hykes 提到了 Go 的标准库、并发原语以及易于部署等关键因素,并表示:“简而言之,如果没有 Go,Docker 就不可能取得如此成功。”

  • Kubernetes 是一个用于自动部署、扩展和管理容器化应用程序的系统。Kubernetes 最初由 Google 设计并在 Google 云中使用,如今已成为所有主要云平台的关键组成部分。

  • Hugo 现在是最受欢迎的开源静态网站引擎。凭借其惊人的速度和灵活性,Hugo 使构建网站再次变得有趣。根据 w3techs 的数据,Hugo 的使用率现在几乎是前领导者 Jekyll 的三倍。

  • Prometheus 是一种开源监控解决方案和时间序列数据库,它为指标和警报提供支持,旨在成为您在故障期间求助的系统,以便您可以快速诊断问题。

  • Grafana 是一种开源、功能丰富的指标仪表板和图形编辑器,适用于 Graphite、Elasticsearch、OpenTSDB、Prometheus 和 InfluxDB。

  • Lantern 提供快速、可靠和安全的访问被阻止的网站和应用程序。

  • Syncthing 是一种开源的跨平台点对点持续文件同步应用程序。

  • Keybase 是一款适用于移动电话和计算机的新型免费安全应用程序。您可以将其视为具有端到端加密公钥密码学的开源 Dropbox & Slack。

  • Fzf 是一种交互式 Unix 命令行过滤器,可用于任何列表;文件、命令历史记录、进程、主机名、书签、git 提交等等。Fzf 支持 Unix、macOS,并提供 Windows 的测试版支持。它也可以作为 vim 插件运行。

许多作者都说,如果没有 Go,他们的项目就不可能存在。有些项目,比如 Kubernetes 和 Docker,创建了全新的解决方案。其他项目,比如 Hugo、Syncthing 和 Fzf,创建了更精致的体验,而许多解决方案已经存在。这些应用程序的受欢迎程度本身就证明了 Go 是一种适用于广泛用例的理想语言。

感谢

这是我们第八次有幸为 Go 撰写生日博客文章,我们对 Go 社区的热情和支持感到高兴和感谢。

自从 Go 首次开源以来,我们已经发布了 10 个版本,包括语言、库和工具,共有 1680 多位贡献者对该项目的 34 个存储库进行了 50000 多次提交;与 两年前 相比,贡献者人数增加了一倍多,提交次数也几乎增加了一倍。今年,我们宣布已开始计划 Go 2,这是我们对该语言和工具的第一次重大修订。

Go 团队感谢所有为该项目做出贡献的人,无论您是通过贡献更改、报告错误、在设计讨论中分享您的专业知识、撰写博客文章或书籍、举办活动、参加或在活动中发言、帮助他人学习或改进、开源您编写的 Go 软件包、贡献艺术作品、向他人介绍 Go,还是成为 Go 社区的一员。如果没有您,Go 就不可能像今天这样完整、实用和成功。

谢谢,并祝未来八年一切顺利!

下一篇文章:参与 2017 年 Go 用户调查
上一篇文章:社区外联工作组
博客索引