回应Golang受Google控制,团队核心成员:决策不受高层影响

对于有开发者在博客抨击,Go不是社群的语言,而是Google的语言,因此语言发展方向无法依社群的意愿前进,为此,Go团队核心成员Ian Lance Taylor在开发论坛中以长文回应,Go社群中虽然有不少Google员工,但并非是压倒性的比例,而且Google高层从来没有影响过Go的发展。

这一系列针对Golang的讨论,从一则推特推文(下图)开始,内容提到Golang应该要像是OpenJDK一样,发展成OpenGo,这样社群就能自己实例泛型(Generics),而不需要等待官方的版本,这篇推文被转到了网络论坛Reddit引发讨论,而在多伦多大学信息科​​学系担任Unix系统管理员的博客Chris Siebenmann,在自己的博客提出自己的看法,认为虽然Go是一个开源项目,但是因为Google的成员多数为Google的员工,因此其他人也顶多只是贡献程序代码的开发者,真正决策都由Google掌控。

Chris Siebenmann举了Go模块功能实例的例子,当初社群投入大量的心力,发展与现有Go模块不一样方向的系统,但被一名Go核心团队成员整个否决。他认为,社群的声音无法影响Go的发展,要在Go中推动重要的事项,说服Go核心团队要比在社群创建共识有用多了。

这篇博客文章被转换了Golang的网上论坛,也引来了重要的Go核心团队成员Ian Lance Taylor回复。虽然外界对Go的印象也都是Google的语言,但真实情况跟这个说法有一些差异,因为Go的发展目前并不受任何Google官方影响,只不过Go核心团队的成员都在Google工作。

Ian Lance Taylor提到,Go本身就是开源语言,所有源码都在网络上公开,有兴趣的人可以分叉发展成自己想要的样子,因此要将Go发展成OpenGo也是没问题的,Google也不会阻止这样的作法发生,而在Go项目中,有资格变动Go项目的有110位成员,其中59位是Google员工,有51位不是,虽然Google员工占多数,但也不是压倒性的比例。

另外,Ian Lance Taylor也直接点出,目前所有成功的程序语言,都不是由民主过程产生的,因为成功的语言之所以成功,是因为关注开发者想要的功能,而非大多数贡献者想要更改,当依照多数贡献者意愿改变语言功能,最终会导致混乱以及功能上的不连续。他提到,Go是一个成功的语言,也需要一小群人来贯彻发展愿景,不过,他不认为这些是外界认为Go是Google的语言的理由,真正的原因应该是,Go的发展总是由Google做最终的决定。

对于这件事的解释,Ian Lance Taylor表示,只是因为Go是由在Google工作的人开发,而这些开发的人成为了Go核心团队成员,因此核心成员理所当然都在Google工作。当初Go的开发并不是由上层指导,而是一个由下而上的项目,也由于Go的成功,因此Google云计算开始支持Go,在Kubernetes项目也成为重要的元素,但这都属于较高层次的应用,而事实上,Google的高层都未曾影响过Go语言功能、工具和函数库的发展。

Ian Lance Taylor提到,当未来有Go的核心团队成员离开Goog​​le,Go的发展可能会产生不一样的变化,或是成立基金会来管理项目也是一种方法,但目前只不过是Go的核心团队成员都在Google工作,除此之外,他尚未看到在其他层次,可以将Go解读为Google的语言。