對於有開發者在部落格抨擊,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的核心團隊成員離開Google,Go的發展可能會產生不一樣的變化,或是成立基金會來管理專案也是一種方法,但目前只不過是Go的核心團隊成員都在Google工作,除此之外,他尚未看到在其他層次,可以將Go解讀為Google的語言。


Advertisement

更多 iThome相關內容