Go 博客
Go 四年
今天标志着 Go 作为开源项目迎来四周年纪念。

我们不打算谈论我们的技术进展(几周后发布 Go 1.2 时将有很多内容可讲),而是希望借此机会探讨 Go 社区的成长情况。
我们先来看一张图

这张图显示了过去四年中 Google 搜索“golang”一词的增长情况。请注意,在 2012 年 3 月左右,即 Go 1.0 发布时,曲线出现了一个拐点。如果这些搜索量可以很好地反映兴趣程度,那么很明显,自发布以来,人们对 Go 的兴趣显著增长,尤其是在过去两年中。
但这种兴趣来自哪里呢?
开源社区已经接受了 Go,我们的社区维基列出了数百个 Go 项目。其中一些热门项目
-
Docker 是一个用于在轻量级容器中打包和运行应用程序的工具。Docker 可以轻松地隔离、打包和部署应用程序,深受系统管理员的喜爱。其创建者 Solomon Hykes 认为 Go 的标准库、并发原语和易于部署是关键因素,并表示“简单地说,如果 Docker 没有用 Go 编写,就不会如此成功。”
-
Packer 是一个用于自动化创建虚拟机或云服务部署的机器镜像的工具。其作者 Mitchell Hashimoto 目前正在开发另一个 Go 项目serf,这是一个去中心化的发现服务。与 Docker 一样,这些项目都有助于管理大规模、基于集群的服务。
-
Bitly 的NSQ 是一个为容错和高可用性设计的实时分布式消息平台,它在 bitly 和许多其他公司中得到了实际应用。
-
Canonical 的JuJu 基础设施自动化系统已用 Go 重写。项目负责人 Gustavo Niemeyer 表示:“Go 并非某个单一方面的特性使其成为一个有吸引力的选择,而是精心组织的、精心制作的小块的集合。”
-
其他热门项目包括biogo、Gorilla Web Toolkit、groupcache、Mozilla 的heka、kv 和ql 轻量级存储系统,以及Sky 行为数据库。
但这仅仅是冰山一角。高质量的开源 Go 项目数量惊人。多产的 Go 黑客Keith Rarick 曾精辟地说道:“Go 生态系统仅四年就达到了令人惊叹的水平。将 2013 年的 Go 与 1995 年的 Python 或 1999 年的 Java 进行比较。或者 1987 年的 C++!”
企业也乐于使用 Go。Go 用户维基页面列出了数十个成功案例(如果您使用 Go,请添加到其中)。以下是一些示例:
-
CloudFlare 完全用 Go 构建了其分布式 DNS 服务,并正在将其每分钟 TB 级的日志基础设施迁移到该语言。程序员 John Graham-Cumming 说:“我们发现 Go 非常适合我们的需求:熟悉的语法、强大的类型系统、强大的网络库和内置并发的结合意味着越来越多的项目在这里用 Go 构建。”
-
SoundCloud 是一个音频分发服务,拥有“数十个 Go 系统,几乎触及网站的每个部分,并在许多情况下为从上到下的功能提供支持。”工程师 Peter Bourgon 说:“Go 表明,其他语言和生态系统中的那些令人烦恼的负担——开发者已经学会了忍受,而且往往非常恼火——并非现代编程的必需品。使用 Go,我与我的工具之间拥有简单且非对抗性的关系,从开发到生产。”
-
ngrok 服务允许 Web 开发者远程访问他们的开发环境。其作者 Alan Shreve 表示,“ngrok 项目的成功在很大程度上归功于选择 Go 作为实现语言”,并引用 Go 的 HTTP 库、效率、跨平台兼容性和易于部署作为主要优势。
-
Poptip 提供社交分析服务,产品工程师 Andy Bonventre 说:“最初只是尝试用 Go 编写单个服务,结果我们几乎将整个基础设施都迁移到了 Go。我最喜欢 Go 的不是语言的特性,而是对工具、测试和其他使编写大型应用程序更易于管理的元素的关注。”
-
音乐协作初创公司Splice 选择用 Go 构建其服务。联合创始人 Matt Aimonetti 说:“我们认真研究并考虑了许多编程语言,但 Go 的简洁性、效率、理念和社区征服了我们。”
-
当然,Google 的各个工程团队也在转向 Go。工程师 Matt Welsh 最近分享了他用 Go 重写大型生产服务的经验。其他值得注意的公开示例包括 YouTube 的vitess 项目和dl.google.com。我们希望很快能分享更多此类故事。
2012 年 9 月,Apcera 首席执行官 Derek Collison 预测:“在 [基础设施即服务]、编排和 [平台即服务] 领域,Go 将在 24 个月内成为主流系统工作语言。”看看上面的列表,很容易相信这一预测。
那么,您如何参与进来呢?无论您是经验丰富的 Go 程序员还是刚刚对 Go 产生兴趣,都有许多方式可以开始融入 Go 社区。
-
加入您最近的 Go 用户组,当地的 gophers 会在那里分享他们的知识和经验。这些组织遍布世界各地。我个人曾在阿姆斯特丹、柏林、哥德堡、伦敦、莫斯科、慕尼黑、纽约、巴黎、旧金山、首尔、斯德哥尔摩、悉尼、东京和华沙的 Go 小组发表演讲;但还有更多!
-
创建或贡献一个开源 Go 项目(或贡献 Go 本身)。(如果您正在构建某项内容,我们很乐意在Go 邮件列表上听到您的声音。)
-
如果您在 2014 年 2 月份在欧洲,请参加 FOSDEM 2014 的 Go Devroom。
-
参加GopherCon,这是第一个大型 Go 会议,将于 2014 年 4 月在丹佛举行。该活动由Gopher Academy 组织,他们还经营着一个Go 工作板。
Go 团队对 Go 社区过去四年的发展感到惊叹。我们很高兴看到这么多 Go 语言的优秀应用,并非常感激能与我们优秀且敬业的贡献者合作。谢谢大家。
为未来的四年干杯!
下一篇文章:Go 语言中的文本规范化
上一篇文章:Go 语言中的字符串、字节、Unicode 码点和字符
博客索引