准备好,预备,Go lang:Brian Ketelsen 解释 Go 的快速增长

自 2009 年创建以来,Go 编程语言已经见证了全球开发人员不断增长的粉丝群,他们正在寻找一种非常适合当今微服务架构的轻量级开源语言。

我有机会与我们的一位常驻Gophers、开发者倡导者Brian Ketelsen一起了解有关 Go 及其蓬勃发展的社区的更多信息,以及他如何看到企业开发人员在云中使用 Go。

问:您是如何涉足Go领域的?

A:我做初创公司已经很久了,2009 年,Go 刚推出的时候我就看到了,当时我在一家金融科技初创公司。我使用 Go 作为向我们的平台引入一些并发性的一种方式——它很好地解决了这个问题,并且几乎立即成为我最喜欢的构建应用程序的工具。

通过更多的创业公司,我快速前进,我自己开始了,开始在世界各地教授Go课程。去年夏天,我有机会与Bryan Liston交谈,发现 Cloud Developer Advocate 小组对我来说真的是一个美妙的家,它让我有能力维持我在 Go 社区中的关系,并继续教授和帮助在 Go 中建立一个良好的社区。

另外,Erik St. Martin(现在也是微软的开发者倡导者)和我每年都运行 GopherCon,直到今天每年夏天都在丹佛举行。我们真的很喜欢将社区聚集在一起并观看 Go 社区的惊人发展。这是一门很棒的语言,但对我来说更重要的是它是一个非常棒的社区。

问:跟我们谈谈 Go 以及为什么它最近如此流行。

答:Go 是一种相对较新的语言,它源于 UNIX 的起源,起源于创建 C 但没有创建 C++ 的人。它被设想为一种易于使用但具有非常低级功能的语言。我认为吸引人们使用 Go 的一件事(尤其是对于云而言)是它非常快,并且可以编译成没有任何依赖关系的静态二进制文件。因此,您可以在您的 Mac 上构建一个生产二进制文件并将其发送到 Linux 服务器并直接运行它,而无需任何疯狂的安装或担心依赖冲突。

问:今天谁在使用 Go?

答:Go 在初创公司中非常流行,但我认为更令人惊讶的是在真正的大企业中的采用——像纽约时报这样的大公司和几家大银行正在使用 Go,还有像苹果、微软和谷歌这样的公司。Go 的采用在全球范围内广泛传播,从中国和您所期望的主要技术中心到处于锈带中间的公司。

问:您如何看待 Go 近年来的发展?

答:指数可能是描述这一点的最佳方式。我们的第一次会议是在 2014 年。我们开始以为我们会卖出 300 张门票,但最终我们将其翻了一番多,达到 750 张。在去年的会议上,我们售罄了 1,500 张,我们增加了 2018 年的门票数量到 1,800,我怀疑我们会再次售罄。Go 在世界范围内的采用令人惊叹。2017 年的开发者调查中,我们看到 Go 跻身所有编程语言的前 20 名——在增长和开发者“热爱”方面跻身前 10 名。

问:与其他流行语言相比,使用 Go 有哪些优势,特别是在云中?

答:具体来说,在云中,编译成静态二进制文件绝对是第一大优势。当您查看基于云的基础架构时,通常会使用 Docker 容器之类的东西来部署工作负载。使用您在 Go 中构建的静态二进制文件,您可以拥有 10、11、12 兆字节的 Docker 文件,而不是引入整个 Node.js 生态系统、Python 或 Java,在那里您拥有数百兆字节 -大小的 Docker 文件。所以,运送那个微小的二进制文件是惊人的。

Go 的性能意味着当你来自另一种语言时,你并没有真正失去任何东西。事实上,与 Python 或 Ruby 相比,您获得了相当多的速度。并且就 Java 的性能而言,根据工作负载的不同,可以达到同等水平或快一点,也可能慢一点。但是这种微小的二进制大小使它在云中非常棒。拉取一个 10mb 的 Docker 文件,或传送一个 10mb 的二进制文件,与拉取 GB 的巨大 Docker 文件相比,资源要少得多,时间也要少得多。

问:是否存在 Go 不是最佳或首选选项的情况?

答:Go 的大多数用例都不能很好地工作,我会说以客户端为中心。我今天不会使用 Go 来构建桌面应用程序。可以做到——但这并不容易。所以,Go 肯定更以服务器为中心。它非常适合构建网络服务,非常适合构建 Web 应用程序、API、微服务以及任何通过网络通信的东西——Go 非常适合。

问:你能告诉我们更多关于Go社区的信息,以及他们在Go发展轨迹中所扮演的角色吗?

答:Go 来自 C 语言的创始人——很多现在在谷歌工作的人。谷歌继续提供有价值的支持和赞助,但多年来,随着社区的发展远远超出公司范围,这真是令人惊叹。有来自全球各个角落的人领导社区,很高兴看到这样的项目有自己的生命。

仅通过查看 GitHub 就会发现,全球大约有 1,000 人为核心 Go 项目本身做出了贡献。除了 Go 项目之外,估计有 500,000 到 750,000 名 Go 开发人员,我们真的不知道其规模,因为我们还无法很好地衡量中国的人口数量。当然,世界上很多人都在使用 Go。

问:微软在用 Go 做什么?

答:微软在内部使用 Go 来支持 Azure 基础架构的各个部分,例如 AKS [Azure Container Service]。对于客户而言,Go 绝对是 Azure 上的一等公民——您可以使用 Go 调用 Azure SDK 并提供服务和基础设施。您还可以使用 Go 调用这些服务并使用诸如 Cosmos DB、其他数据库、消息队列以及 Microsoft 提供的任何服务之类的东西。Azure 团队一直在为 Go 开发人员提供出色的体验

我认为将 Go 与 Azure 结合使用的优势之一是开发速度——Go 的执行速度。这是一种非常快的语言。以及创建单个静态二进制文件的绝佳能力:当您使用 Go 构建应用程序时,您不必疯狂地担心依赖关系。

问:您认为 Go 未来的发展方向是什么?

答:我认为 Go 将继续其增长轨迹。我认为,最终,Go 将成为在服务器端做事的人们的首选。现在肯定有一些用于移动开发和桌面开发的 Go 项目。我希望看到它们更加成熟,并在涉及用户界面时让 Go 更易于使用。

我喜欢微软这样的公司都很好地采用和支持 Go 的事实。我绝对喜欢的一件事是由 Microsoft 编写的用于 Go 的 Visual Studio Code 扩展。我认为 Visual Studio Code 是编写 Go 代码最简单和最好的地方,这太棒了,我真的很喜欢微软在这门伟大的语言背后投入了如此多的工作。它让我的生活更轻松。我认为用不了多久,Go 就会成为构建服务器端应用程序的主导平台。如果我们还没有做到这一点,那么我们很快就会做到这一点,我认为从长远来看 Go 不会有不利影响。

布赖恩的其他问题?让我们在评论中知道。关注布赖恩@bketelsen