“Go 仅是 Google 的编程语言,而不是程序员的!”

栏目: Go · 发布时间: 7年前

内容简介:包含了类 C 语法,拥有高性能、高效率且易于上手的 Go 语言,在被 Google 推出之后就受到了国内外开发者的热烈欢迎, 但是在此之际,不少程序员也纷纷开始吐槽,无论是 Go 语言的管理权还是其功能模块的更新,最终都需要取决于 Google 这位管控者,这极大地限制了 Go 的发展自由,最终他们还得出“Go 语言是 Google 的,而不是社区以及程序员”的结论。

“Go 仅是 Google 的编程语言,而不是 <a href='https://www.codercto.com'>程序员</a> 的!”

包含了类 C 语法,拥有高性能、高效率且易于上手的 Go 语言,在被 Google 推出之后就受到了国内外开发者的热烈欢迎, 但是在此之际,不少程序员也纷纷开始吐槽,无论是 Go 语言的管理权还是其功能模块的更新,最终都需要取决于 Google 这位管控者,这极大地限制了 Go 的发展自由,最终他们还得出“Go 语言是 Google 的,而不是社区以及程序员”的结论。

“Go 仅是 Google 的编程语言,而不是程序员的!”

作者 | Chris Siebenmann

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

最近,我在Twitter上看到了下面这样一个问题:

很多人在讨论Go,难道我们不能通过社区实现泛型(generics),建立类似于OpenGo的东西吗?就像OpenJDK一样。为什么非要等待Go官方的泛型?

对于为什么我们做不到这一点,这个问题有很多答案,但是没有人愿意大声说出那个最根本的原因:即Go是Google的语言,而不是社区的语言。

的确,我们有一个Go的社区在为Go语言做贡献,其中有些还是很重要且很有价值的功能,你只需看看贡献者列表(https://github.com/golang/go/blob/master/CONTRIBUTORS)中的多样性,或者看看各种各样的人提交的PR(https://github.com/golang/go/commits/master)就能明白这一点。然而,Google才是这个社区的管理者,只有Google才能决定Go将接受哪些功能,而哪些则不会被接受。所谓的Go语言的社区决策流程,说到底实际上负责决策的只有Google。只要是Google反对的东西绝对不会出现在Go语言中;同时,凡是Google想要的功能,最终都会出现在Go中。

最明显的一个例子是,Go的模块,虽然外部的一个Go社区一直在努力支持相对完全不同的模型,但最终该系统被Google Go核心团队的一名成员放弃了。你可以点击这里阅读这段历史(https://peter.bourgon.org/blog/2018/07/27/a-response-about-dep-and-vgo.html)。

简而言之,虽然有社区贡献,但它不是一个社区项目,它是Google的项目。这是一个不争的事实,无论你认为这是好还是坏,我们都必须接受这个结果。例如,你希望Go接受一些重要的功能,那么与其努力在社区中建立共识,还不如尝试说服Go的核心团队。

结果必然是很多人投入了大量时间和精力到社区中,结果却没有得到Go团队的认可,而被白白浪费。大多数时候,我们的努力也许可以帮助Go核心团队更好地明白问题所在。

总的来说,很明显社区的力量对于Go的发展并没有那么重要,而我们这些在Google墙外从事Go语言的人只能接受现实。如果我们的工作重点与Google一致,那么只能说明我们非常幸运;如果Go的核心团队和Google能够优先考虑我们的工作重点,那么我们也算是幸运了。好消息是,迄今为止Google和Go核心团队非常关心外外部世界对Go的看法,而不仅仅是Google内部,所以他们愿意努力解决难点。

无论是好还是坏,人们都有一种感觉:Go有一支非常优秀的核心小团队,他们有良好的判断,而且对语言本身也有着始终如一的发展愿景。这个团队不会受到外界力量的左右,在缓慢地发展,而且他们更加不希望发生变化。

很长一段时间以来,我都很喜欢Go,基本上我对于该语言的发展以及Go核心团队的管理还比较满意。我当然同意,在引入像泛型之类的功能时的确应该谨慎。但与此同时,开发Go模块的经历给我留下了阴影,我无法再说服自己成为一名Go的贡献者,即使是非常小的微不足道的贡献。(换句话说,我不想成为二等公民。)我会提交Bug报告,但仅此而已。我对Go的整体状况感到不解,所以一般我都会完全忽略。

Go团队声称,他们非常关心社区,而且他们希望社区能够多多参与Go的开发,现在这听起来可能很可笑。但我相信他们确实关心社区,但只是在一定程度上。我认为Go的核心团队应该直言不讳这种情况,而不是假装并暗中引导人们。

你可能想问,Go是Google的语言,还是Go核心团队的语言,因为Go的发展方向是由它的核心团队设定和控制的。但是,目前我认为大部分活跃的Go核心团队都是Google的员工,因此实际上这两者没有区别(至少Google外面的人没法区分)。如果Go核心团队的成员离开Google,但仍然继续积极为Go的发展做贡献,那么我们才能讨论Go真正属于谁。如果真的有那么一天,尤其是大多数人都离开Google,那么Go可能会成为他们的语言,而不是Google,就像 Python 一直是Guido van Rossum的语言一样,无论他在何处高就。

然而,在现实中,不可否认的是,Go所需的大量基础架构和资源都是由Google提供的,例如golang.org,因此域名等也属于Google。而且从他们的商标列表(https://www.google.com/permissions/trademark/trademark-list/)来看,Go编程语言的商标也归Google所有。

对此,网友的看法不一:

  • 评论1:实际上,真正由社区驱动的开源项目相对很少,至少大多数的重大项目都不是。许多开源项目都是由一家公司主导的商业项目。例如 RedisMongoDBMySQL 和Elasticsearch等等。它们完全符合上文中描述的情况。像这样的技术也可以由社区开发,但很难形成这样的社区并使保持活力。

    对于数据库这种大型的社区驱动的项目来说,非常需要一些资金雄厚的赞助商。Rust、 Linux 和PostgreSQL就是很好的例子。 我想知道为什么这么多公司很乐意向Oracle(以及其他公司)提供大量的资金支持,却不愿资助PostgreSQL这样的开源项目。

  • 评论2:很多人喜欢Go,因为它是一种固执己见的语言。我不认为仅靠社区的力量无法创建这样的东西,因为众口难调。许多人声称代表社区,但是社区却无法不同意他们的意见。我担心如果没有明确的领导,技术的方向和判断会像政治一样,变得不确定以及高风险。

    我喜欢Go有一个紧凑又团结的小团队,他们是最初设计的主力军。我希望也能有一些其他力量的介入,因为如果这些原创人员离职,那么Google会拥有太多控制权。

  • 评论3:看看目前的十大编程语言,我认为只有 Ruby 是社区驱动的,几乎没有其他赞助商的支持。而其他语言统统都由一个(比如苹果的Swift)或多个(Javascript、Java)合作赞助商驱动。

    我感觉这种平衡很难,因为你需要大量的资源,比如文档、VM专业知识、库等等。

原文:https://utcc.utoronto.ca/~cks/space/blog/programming/

作者:Chris Siebenmann,Unix系统管理员。

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

【END】

“Go 仅是 Google 的编程语言,而不是程序员的!”

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员: 极客宝宝(ID: geek_baby)

戳他了解更多↓↓↓

“Go 仅是 Google 的编程语言,而不是程序员的!”

 热 文推 荐 

☞ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!

☞忽略这一点,人工智能变人工智障的!

☞比特币冲到9000美元, 你就能找个好工作?

☞1000 万个“AI 名师”:用机器算法“解剖”应试教育

☞阿里面试,我挂在了第四轮……

☞10个爬虫工程师必备的 工具 了解一下

☞为什么说深耕AI领域绕不开知识图谱?

☞如何快速深入理解监控知识? | 技术干货

☞大神!这段代码让程序员躺赚200W,源码简单,你怎么看?

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢


以上所述就是小编给大家介绍的《“Go 仅是 Google 的编程语言,而不是程序员的!”》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Foundations of PEAR

Foundations of PEAR

Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84

PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器