<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          網(wǎng)友:Go 你是 Google 的,Go:我不是。

          共 4099字,需瀏覽 9分鐘

           ·

          2022-02-27 10:14

          大家好,我是煎魚。

          我有一個朋友,近幾年聽說各種博弈、各種國內(nèi)云產(chǎn)品等發(fā)力,各企業(yè)的 “國產(chǎn)化” 被提到了臺面上,明確要去做這類事情。

          作為當代編程語言風口的 Go 語言,在宣傳時,常常會說是 Google 背書:

          那么問題來了!

          假設出了一些沖突,Go 語言是否會被 Google 完全控制,形成壟斷呢?

          今天煎魚就和大家一起來了解 Go 語言的開發(fā)團隊對此的個人態(tài)度和運行情況。

          早有討論

          在 2019 年時,就有人因為 Go 泛型的事情在 twitter 上吐槽 Go 語言的社區(qū)靈活度和自主控制。希望能夠像 Java 的 OpenJDK 一樣,實現(xiàn)一個 OpenGo。

          如下:

          想要社區(qū)自己實現(xiàn)泛型,而不是等待官方團隊來做。從真實情況來講,其實社區(qū)上早就有類似 OpenGo 的項目了,如下:

          • albrow/fo[1]:實現(xiàn)了函數(shù)式編程的特性,最近一次提交是 2019 年。
          • goodlang/good[2]:支持從 GitHub 上拉取 PR,最近一次提交是 2016 年。
          • tinygo-org/tinygo[3]:嵌入式編程,結(jié)合 LLVM 開發(fā)的 Go 編譯器,用于微控制器、WebAssembly (Wasm) 和命令行工具等。
          • cosmos72/gomacro[4]:具有泛型和宏的交互式 Go 解釋器和調(diào)試器,最近一次提交是 2021 年 06 月。

          在開源社區(qū),OpenGo 的項目數(shù)和項目的提交歷史來看,并沒有非常強強的訴求,活躍度不高,可能不是 100% 必要的。

          在對企業(yè)內(nèi),“定制” 版是存在的,個別企業(yè)維護了自己的一份 Go,會一些功能變動,例如:對 Go 運行時進行修改。但這些功能不一定通用,且需內(nèi)部審查合規(guī)才能公開。

          硝煙四起

          在前文所提到的 twitter 后,一名博主 Chris Siebenmann 對 Go 語言表達更猛烈的意見,發(fā)表了一篇《Go is Google's language, not ours[5]》的批判文章。

          文內(nèi)提到 ”Go 是 Google 的語言,而不是社區(qū)的“。舉出了一個重要的案例,那就是 Go 模塊依賴,當時早年 Go 社區(qū)正傾向于 Dep,官方團隊也是給予了不少溝通。

          由于當時 Russ Cox 強推 Go modules(前身 vgo),引起了社區(qū)大量爭議討論,被作為該態(tài)度的依據(jù)。

          也就是: ”如果希望某些重要的特性被 Go 接受,那么在社區(qū)中建立共識遠沒有說服 Go 核心團隊重要“。

          整理后,核心依據(jù)共有三點,分別如下:

          1. 社區(qū)的聲音對于 Go 的開發(fā)來說并不重要。例如:Go modules 的歷史事件(其實是 Dep 有爭議...)。
          2. Go 核心團隊都被 Google 雇傭,Go 的特性由 Go 核心團隊最終確立,只有當他們不再為 Google 工作時,Go 才有可能是他們的(無法確定歸屬于誰)。
          3. Go 商標等均歸屬于 Google。例如:https://golang.org 域名歸屬于 Google。

          以上是作者認為 Go 語言是由 Google 控制的原因。

          官方回復

          顯然 Go 官方團隊聽到了社區(qū)的聲音,在 golang-nuts 中的《Interesting public commentary on Go...[6]》有多名核心成員參與了討論。

          主要為 Russ Cox 和 Ian Lance Taylor,做了大量長篇幅的回答,是平時所有溝通里都極為少見的,肯定了 Go 語言與社區(qū)共建、開放的想法。

          主要涉及如下方面:

          • Go 代碼是開源的。
          • Go 不由 Google 控制。
          • Go 提交者的情況。
          • Go 社區(qū)溝通。

          代碼是開源的

          實際上 Ian Lance Taylor 認為 Go 語言確實就是開源的,有以下幾點論點:

          • 所有的源代碼開放:包括所有的源代碼、所有基礎設施支持的源代碼,都是免費提供的,任何人都可以重復使用和修改。
          • 擁有推向新方向的自由:對于軟件來說,最基本的自由是 fork 的自由??梢詫⒁粋€現(xiàn)有的項目推向新的方向的自由,也就是 OpenGo。

          不是 Google 控制

          對 ”Go 語言是 Google 的語言“ 的說法進行了明確的反對,這種說法的意思是 ”Google 做出各種語言決策的最終決定“。

          由于 Go 是由在 Google 工作的人開發(fā)的,所以最初開發(fā)的人不可避免地包含在 Google 的人,核心團隊目前也沒有人離開 Google 去其他公司,所以造成了核心團隊又不少 Google 的員工的現(xiàn)象。

          Go 項目中可以 Approve(批準)的人,非 Google 的人多于 Google 內(nèi)部的人。

          Go 語言是 Google 的,可以展開來看:

          • 能說是 “對”,他確實是由在 Google 任職的人在 Google 時開發(fā)出來的。
          • 能說是 “不對”,因為社區(qū)也有許多有 Approve 權力的人,Go 項目非常的多元化。

          就看你怎么理解和定義這個概念了。

          Google 的角色是什么

          在《Go, Open Source, Community[7]》中 Russ Cox 明確的回答了這個問題。Google 的角色在 Go 語言的不斷發(fā)展中,也在不斷地轉(zhuǎn)變。

          如下:

          1. 開源發(fā)布之前:Google 為所有 Go 開發(fā)支付了資金費用。
          2. 開源發(fā)布后:許多 Go 開發(fā)者開始貢獻他們的開發(fā)時間,參與到 Go 語言的開發(fā)中。

          主要是支持?Go 社區(qū),分別是這幾個方面:進行人員協(xié)調(diào)、確保能夠更好地工作,并使 Go 忠實于最初的愿景、資助 Go 開發(fā)工作。

          在資助上,Google 更多的就像開源產(chǎn)品的贊助一樣。例如:跟前兩年亞馬遜宣布贊助 Rust 語言的開發(fā)一樣。

          有趣的是,以最近的新消息來看,Go 歸屬在 Google Cloud 大部門下。

          提交者的情況

          在早年統(tǒng)計時,以 CONTRIBUTORS[8] 為基準數(shù)據(jù),電子郵箱作為統(tǒng)計維度,Go 提交者名單上的也有了明顯的改變。

          人數(shù)對比如下:

          • 在 2019 年:有 59 名 Google 人和 51 名非 Google 人。Google 人數(shù)居多。
          • 在 2021 年:309 名 Google 人,2426 名非 Google 人。非 Google 人數(shù)居多。

          2019 年,兩者基本持平。

          2021 年,已經(jīng)是非 Google 的開發(fā)者貢獻人數(shù)更多了,也足矣說明社區(qū)的一定程度開放。

          2022 年,理論上會更多。

          社區(qū)溝通

          以我的觀察,在 Go issues、proposal、golang-nuts、golang-dev、gophers slack 中等渠道。Go 核心團隊的人都是高頻的查看社區(qū)反饋和交流情況,以此更好地聽取社區(qū)的意見。

          golang tools[9] 中,每月電話、郵件列表和 Slack 頻道都對所有人開放,且有會議記錄和錄音。

          有興趣的可以定時上去參加和學習,為 Go 語言發(fā)展出一份力。

          在 Go Commiter 層面,每年都會定期舉辦交流會,能得到很多信息。之前也聽歐神講過,還是有些意思的。

          現(xiàn)實思考

          實際上,任何開源產(chǎn)品都會有自己核心團隊。在所有的產(chǎn)品設計中,千人總是千面的。若是誰都可以合進來,這個產(chǎn)品很快就會變成一個 “大泥球”,以失敗而告終。

          展望當今開源界,很多產(chǎn)品一開始都是個人研發(fā),后續(xù)接受到大量的贊助,又或是開辦起了公司,再繼而去運營。

          也有許多人擔憂 GitHub 不給使用某些軟件代碼。實際上,創(chuàng)造方的開源協(xié)議是允許使用的。一些企業(yè)更多的會在國內(nèi)備份,又或是早早在內(nèi)部 fork 了一份進行開發(fā),重新套一層殼。

          以此避免極端情況的發(fā)生。

          總結(jié)

          經(jīng)過我們的閱讀和分析,其實不難看出。Go 語言的核心團隊,對于社區(qū)共建、交流是非常歡迎的,且做出了實際的行動。

          在他們的理解中,Go 項目不由 Google 絕對控制(表示反對這種說法),管理層也沒有給出他們?nèi)魏我蟆O喾?,Google 提供了許多的資助,還促使 Go 項目更好的協(xié)同。

          我認為個別消息更多是對 Go 語言的設計哲學或多或少的不理解、不認同,才形成一些不同的聲音。這其實對 Go 語言發(fā)展是好事。

          你對 Go 語言的發(fā)展和 Google 的定位怎么看呢,歡迎大家交流和討論:)

          參考資料

          [1]

          albrow/fo: https://github.com/albrow/fo

          [2]

          goodlang/good: https://github.com/goodlang/good

          [3]

          tinygo-org/tinygo: https://github.com/tinygo-org/tinygo

          [4]

          cosmos72/gomacro: https://github.com/cosmos72/gomacro

          [5]

          Go is Google's language, not ours: https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGooglesLanguage?showcomments#comments

          [6]

          Interesting public commentary on Go...: https://groups.google.com/g/golang-nuts/c/6dKNSN0M_kg/m/rfb9qxB2BAAJ

          [7]

          Go, Open Source, Community: https://go.dev/blog/open-source

          [8]

          CONTRIBUTORS: https://github.com/golang/go/blob/master/CONTRIBUTORS

          [9]

          golang tools: https://github.com/golang/go/wiki/golang-tools

          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操屄簧片一级毛片 | 中文字幕不卡在线观看 | 成人依人网 | 亚州高清免费播放 | 五月天黄色小说 |