Go 语言为什么能成功?

提示您,本文原题为 -- Go 语言为什么能成功?

两位创造者Rob Pike和Robert Griesemer一起探讨了Go成功的原因 。


Go 语言为什么能成功?

Go 语言为什么能成功?// //

作者 | Jerod Santo

译者 | 风车云马 , 责编 | 郭芮

以下为译文:

常言道 , 历史不会重演 , 但总会惊人的相似 。

如果您想创建一种编程语言 , 多向那些有经验的人士学习 , 他们有很多可取之处 。 在《Go Time》第100期节目中 , 两位Go语言的创造者Rob Pike和Robert Griesemer一起探讨了他们的经历 。

以下是他们认为取得成功的5大原因 。

正式的语言规范

在讲述这个项目的起源时 , Rob说:“我们经过六个多月的头脑风暴和思想成形之后 , 我们做的第一件重要的事情 , 就是花了几个星期写了一份正式的语言规范 , 我认为这是项目成功的关键部分 。 ” 该规范引起了其他工程师的兴趣 , 比如Ian Lance Taylor 。

还有最重要的事情之一是Ian Taylor看到了规范 , 并决定为它编写一个编译器 。 有一天他走进我们的办公室说:“顺便说一下 , 我为你们的语言做了一个编译器 。 ” 这是一个多么神奇的时刻 。 当然 , 他后来成为了团队的一员 , 现在他还在为Go工作 。

杀手锏App

Rob说当时并没有重点考虑为什么要引入Docker 的 , 大概是为了使Go语言对系统程序员有吸引力?

是的 , Docker现在是我们的杀手锏App , 因为它是用Go编写的 , 运行良好 , 它成为了现在所谓的云计算的核心……我们过去只称它为系统编程或服务器 。 事实上 , 只要有一项重要的技术是用Go语言写的 , 这就证明了它的用武之地 。 我认为Go确实是一种很好的语言 。

后来又出现了Kubernetes 。 能够使用你的语言编写重要的软件 , 这是取得成功的一个重要部分 。 如果一门语言没有任何应用内容 , 那么它有多好就无关紧要了 。

他们建立了一个开源社区

Rob相当坦率地谈到了他们在开放源码世界中所面临的挑战 , 这让人耳目一新 。

我确实认为这个团队并没有真正准备好与开源社区进行交互 。 Ian是我们中唯一一个在开源世界中待了很长时间的人 , 他在社区中做的事情比他应得的要多 。

我们花了很长时间才理解开源社区意味着什么 , 比如有一个项目 , 该项目是由公司支付 , 但有很多开源贡献者…我们早期有很多出色的开源开发 。 Windows的移植完全是由外部贡献者完成的 , 这非常棒……社区的输入也很关键 。

有时人们认为社区受谷歌控制太多了 , 这是他们的观点 , 我不同意;我认为他们低估了团队听取开源社区的意见、处理所有问题的能力……

建立开源社区 , 这是一件很有挑战性的事情 , 因为有成千上万的人(现在全世界有数百万的Go程序员) , 他们都对这件事有自己的看法 , 也知道如何去做 。 每个人都想要不同的东西 , 但是这很棘手 , 很难平衡 。

不会改变其他语言

这一点一开始有点违背常理 。 通常对于软件来说 , 要推崇其可塑性 , 而要避免僵化 。 然而 , Rob很好地解释了这一点 。

我们故意这样做 , 对于Go语言我们承诺不改变任何东西 。 这对语言的成功至关重要 , 因为它使企业相信我们所做的事情和依赖我们不会破坏他们的东西 。 我想很多人没有意识到这一原则 。 我们没有破坏人们的程序 , 即使这是一个有十年历史的项目 。 这多么令人难以置信 , 但正因为如此 , 我们才走到现在 。

坚持自己的信仰

当面对社区的不良反馈以及团队如何做出改变的时候 , Rob说:

Go的一些特点对它的成功至关重要 , 但人们并不喜欢 , 我们对此也直言不讳 。 我想您提到的 , 未使用变量的编译错误就是其中之一 。 这是令人非常恼火的 , 哪怕你忘记删除一个未使用的变量 , 你的程序将出现编译错误 。 但对我们来说 , 这是Go语言出彩的地方 。 虽然不能阻止你写“坏”代码 , 但我们试图告诉你…这样可以避免你的程序很慢 , 或者你的代码难以维护 。

其实真正让人们抓狂的是 , Go不允许导入你不使用的库 。 这对我们来说是至关重要的 , 因为程序构建和处理大量二进制文件会花费很多时间 , 我们确保您的程序的依赖项正是您所需要的 。 但对很多人来说 , 每次编辑并删除打印语句或其他内容时 , 编译器都会说“你没有使用这个库” , 这简直是太烦人了 。

后来 , Brad编了一个基于gofmt的goimports , 为你管理那些编译项 , 这基本上平息了那些抱怨 。

以上就是Rob Pike的Go语言成功的5件事 。 整个对话都很精彩 , 值得一听 。 你还在等什么?

原文:https://changelog.com/posts/5-things-rob-pike-attributes-to-gos-success

本文为 CSDN 翻译 , 转载请注明来源出处 。

微软“杀”不死的数据库软件

?中国单身成年人口超 2 亿 , 程序员双 11 脱单太难??

点击阅读原文 , 即刻报名参会!