<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>

          Go,11 歲了!

          共 3928字,需瀏覽 8分鐘

           ·

          2020-11-13 17:50

          今天,我們一起慶祝 Go 語言正式開業(yè)發(fā)布 11 周年。去年的“Go turning 10”周年慶典聚會似乎已成為久遠的回憶。這是艱難的一年,但我們一直保持了 Go 開發(fā)的步伐,并積累了很多亮點。


          在去年 11 月,我們在慶祝Go 10 周年后不久就發(fā)布和上線了go.dev 和 pkg.go.dev站點。

          今年 2 月,Go 1.14 版本提供了第一個正式的 “生產(chǎn)就緒” 的 go module 實現(xiàn),并進行了許多性能改進,包括更快的 defer和真正搶占式的 goroutine 調(diào)度,以減少調(diào)度和垃圾收集延遲。

          在今年三月初,我們推出了新版 protobuf API:google.golang.org/protobuf,大幅改善了對 protobuf reflection 和自定義消息的支持。

          當新冠疫情大流行發(fā)生時,我們決定在春季暫停所有公開發(fā)布或活動,因為大家都知道所有人的注意力都聚焦在其他地方。但是我們一直在努力,我們的團隊中的一個成員加入了 Apple/Google 發(fā)起的“privacy-preserving exposure notifications”項目,以支持全球范圍內(nèi)的聯(lián)系人追蹤工作。5 月,該小組啟動了用 Go 編寫的?reference backend server。

          我們繼續(xù)改進gopls,這讓許多編輯器受益并都啟用了高級 Go-aware 支持。六月份,VSCode Go 擴展正式加入 Go 項目,現(xiàn)在由從事 gopls 的同一位開發(fā)人員維護。

          同樣在 6 月,由于 Go 社區(qū)的反饋意見,我們還將 pkg.go.dev 背后的代碼開源,并將其作為 Go 項目的一部分。

          6 月下旬,我們 發(fā)布了有關(guān) Go generics 的最新設(shè)計草案,以及原型工具和一個支持 go generics 實驗語法的 playground。

          7 月,我們發(fā)布并討論了三個新的有關(guān) Go 未來演化的設(shè)計草案:go:build、文件系統(tǒng)接口和構(gòu)建時文件嵌入。(我們將在 2021 年看到所有新特性)

          8 月,Go 1.15 版本發(fā)布!該版本以優(yōu)化和 bug 修復為主,沒有提供太多新功能。其最重要的部分是開始重寫鏈接器,這使它在進行大型項目構(gòu)建時,平均運行速度提高了 20%,平均使用的內(nèi)存減少了 30%。

          上個月,我們發(fā)起了年度 Go 用戶調(diào)查。分析結(jié)果后,我們會將結(jié)果發(fā)布到博客上。

          Go 社區(qū)已經(jīng)與其他所有人一起適應了 “虛擬優(yōu)先” 的原則,今年我們看到了許多虛擬聚會和十多個虛擬 Go 會議。上周,Go 團隊在 Google Open Source Live 中舉辦了 “Go Day” 活動。

          前進

          我們也對 Go 語言在其第 12 年即將發(fā)生的事情感到非常興奮。近期,Go 團隊成員將參加GopherCon 2020并做以下展示和分享。請打開您的日歷,做好提醒標記!

          • 11 月 11 日上午 10:00,Robert Griesemer 的演講 “Typing [Generic] Go”;在 10:30 AM 進行 Q&A。

          • 11 月 11 日中午 12:00,現(xiàn)場播放 Go 時間播客的實況錄像:“What to Expect When You’re NOT Expecting”,該集播客由包括 Hana Kim 組成的專家調(diào)試小組主持。

          • Michael Knyszek 在 11 月 11 日下午 1:00 發(fā)表演講 “Evolving the Go Memory Manager's RAM and CPU Efficiency” ;在下午 1:50 進行 Q&A。

          • Dan Scales 在 11 月 11 日下午 5:10 發(fā)表演講 “Implementing Faster Defers”;在下午 5:40 進行 Q&A。

          • 11 月 12 日下午 3 點,與朱莉·邱(Julie Qiu),麗貝卡·史翠寶(Rebecca Stambler),拉斯·考克斯(Russ Cox),薩默·阿杰曼尼(Sameer Ajmani)和范·里珀(Van Riper)一起的現(xiàn)場問答環(huán)節(jié) “ Go Team-Ask Me Anything” 。

          • 奧斯汀·克萊門茨(Austin Clements)在 11 月 12 日下午 4:45 發(fā)表演講 “Pardon the Interruption: Loop Preemption in Go 1.14” ;在下午 5:15 進行 Q&A。

          • 喬納森·阿姆斯特丹(Jonathan Amsterdam)在 11 月 13 日下午 1:00 發(fā)表的演講:“Working with Errors” ;在下午 1:50 進行 Q&A。

          • 卡門·安多(Carmen Andoh)11 月 13 日下午 5:55 發(fā)表的演講 “Crossing the Chasm for Go: Two Million Users and Growing” 。

          Go 發(fā)布計劃

          2021 年 2 月,Go 1.16 版本將發(fā)布,該版本將包括新的文件系統(tǒng)接口和構(gòu)建時文件嵌入。它將完成鏈接器的重寫,從而帶來更多的性能改進。它將包括對新的 Apple Silicon(GOARCH=arm64)Mac 的支持。

          2021 年 8 月,Go 1.17 版本無疑會帶來更多功能和改進,盡管遠遠不夠,確切的細節(jié)仍然懸而未決。它將包括一個針對 x86-64 新的基于寄存器的調(diào)用約定(不破壞現(xiàn)有程序集!),這將使程序整體更快。(對其他體系結(jié)構(gòu)的支持將在以后的版本中發(fā)布。)新的//go:build行肯定會包含一個不錯的功能,肯定比當前// +build更不容易出錯。我們希望明年可以進行 Beta 測試的另一個備受期待的功能是對 go test 命令中的模糊測試 (fuzz test) 的支持。

          有關(guān) Go module

          明年,我們將繼續(xù)致力于開發(fā)對 Go module 的支持,并將其很好地集成到整個 Go 生態(tài)系統(tǒng)中。Go 1.16 將包括我們迄今為止最流暢的 Go module 體驗。我們最近的一項調(diào)查的初步結(jié)果是,現(xiàn)在有 96%的用戶已采用 Go 模塊(高于一年前的 90%)。

          我們還將最終終止對基于 GOPATH 的開發(fā)的支持:使用標準庫以外的依賴項的任何程序都將需要一個 go.mod。(如果您尚未切換到 go module,請參閱GOPATH Wiki 頁面以獲取有關(guān)從 GOPATH 到 go module 的最后一步的詳細信息。)

          從一開始,Go module 的目標就是 “將軟件包版本的概念添加到 Go 開發(fā)人員和我們的工具的常用詞匯中”,從而為整個 Go 生態(tài)系統(tǒng)中的 module 和版本提供深度支持。整個生態(tài)系統(tǒng)對包版本的廣泛理解使得go module 鏡像、chechsum 數(shù)據(jù)庫和 module index成為可能。在明年,我們將看到更多 module 支持被添加到更多的工具和系統(tǒng)中。例如,我們計劃研究新的工具,以幫助模塊作者發(fā)布新版本(go release),并幫助 module 使用者擺脫過時的 API 并完成遷移(新的 go fix)。

          一個更為有說服力的例子是,我們創(chuàng)建了 gopls來減少編輯器為支持 Go 而依賴許多外部工具的情況:將依賴一堆不支持 go module 的工具轉(zhuǎn)變?yōu)橹灰蕾囈粋€支持 module 的工具。明年,我們將準備讓 VSCode Go 擴展默認使用 gopls,以提供出色的、現(xiàn)成的 module 體驗,并將發(fā)布 gopls 1.0。當然,gopls 最大的優(yōu)勢之一是它與編輯器無關(guān):任何支持語言服務器協(xié)議的編輯器都可以使用它。

          版本信息的另一個重要用途是跟蹤構(gòu)建中的任何程序包是否具有已知漏洞。明年,我們計劃開發(fā)一個已知漏洞的數(shù)據(jù)庫以及基于該數(shù)據(jù)庫進行漏洞檢查的工具程序。

          Go 軟件包發(fā)現(xiàn)站點 pkg.go.dev 是 Go module 啟用的版本感知系統(tǒng)的另一個示例。我們一直致力于正確實現(xiàn)核心功能和用戶體驗,包括今天重新設(shè)計后的 pkg.go.dev 的上線。明年,我們將 godoc.org 統(tǒng)一為 pkg.go.dev。我們還將擴展展示每個軟件包的版本時間線,顯示每個版本的重要更改,已知漏洞等,以實現(xiàn)你進行依賴添加決策時所需的所有信息。

          我們很高興看到從 GOPATH 到 Go 模塊的旅程即將完成,以及 Go 模塊正在啟用的所有出色的依賴關(guān)系感知工具。

          有關(guān) Go generics

          每個人心中的下一個功能特性當然是泛型。如上所述,我們于今年 6 月發(fā)布了有關(guān)泛型的最新設(shè)計草案。從那時起,我們一直在做細節(jié)上的完善,并將注意力轉(zhuǎn)移到了實現(xiàn)可生產(chǎn)版本的細節(jié)上。我們將在 2021 年的整個過程中繼續(xù)努力,以期在年底之前為人們提供一些試用的目標,也許它是 Go 1.18 beta 的一部分。

          感謝大家

          Go 不僅限于我們這些 Google Go 團隊的成員。我們要感謝與我們一起開發(fā) Go 項目和工具的貢獻者。除此之外,Go 之所以成功,是因為所有在 Go 蓬勃發(fā)展的生態(tài)系統(tǒng)中工作并為之貢獻的人們。Go 之外的世界度過了艱難的一年。非常感謝您抽出寶貴的時間加入我們,并幫助 Go 取得成功。謝謝。我們希望大家都安全,并祝您一切順利。


          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  天堂日本亚洲 | 久久丁香 | 激情五月色播五月 | 日本在线欧美 | 超碰乱轮 |