成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 語言十五周年!權力交接、回顧與展望

開發 前端
在過去的五年中,Go 的用戶基數增長了三倍多,成為增長最快的編程語言之一。Go 語言不僅躋身于十大編程語言之列,更成為現代云計算的首選語言。

大家好,我是煎魚。

2024 年 11 月 11 日,Go 語言迎來了它的 15 歲生日。自 2009 年開源發布以來,Go 語言以其穩定性、安全性和對大規模軟件工程的支持而聞名。

本文將回顧 Go 語言的發展歷程,探討其最新特性,并展望 Go 語言的未來。

Go 語言的快速增長

在過去的五年中,Go 的用戶基數增長了三倍多,成為增長最快的編程語言之一。

Go 語言不僅躋身于十大編程語言之列,更成為現代云計算的首選語言。

Go 1.22 和 Go 1.23 的新特性

for 循環的變革

Go 1.22 和 Go 1.23 的發布標志著 for 循環的重大變革。

Go 1.22 引入了變量作用域的變更,使得 for 循環中引入的變量作用域為每次迭代,而非整個循環,解決了長期存在的語言 “陷阱”。

如下代碼:

for i := 0; i < 5; i++ {
    go func() {
        fmt.Println(i)
    }()
}

在 Go 1.22 之前,這會打印最后 i 的值 5 次;現在會打印出 0 到 4 的數值。

這一決策的背后是 Go 團隊對歷史決策的反思和社區反饋的重視。

向前兼容的語言特性

這些變革得以實現,得益于 Go 1.21 引入的向前語言兼容性。

這一特性建立在 Go 模塊的基礎上,Go 模塊自 Go 1.14 引入以來,已經過去了四年半。

迭代器和用戶定義的 for-range 循環

Go 1.23 在此基礎上進一步引入了迭代器和用戶定義的 for-range 循環。

迭代器的代碼例子:

func Backward[E any](s []E) iter.Seq2[int, E] {
 return func(yield func(int, E) bool) {
  for i := len(s) - 1; i >= 0; i-- {
   if !yield(i, s[i]) {
    return
   }
  }
 }
}

func main() {
 sl := []string{"腦子", "進", "煎魚", "了"}
 for i, s := range Backward(sl) {
  fmt.Printf("%d: %s\n", i, s)
 }
}

結合 Go 1.18 引入的泛型,這為自定義集合和其他編程模式提供了強大而便捷的基礎。

各項特效的功能增強

這些版本還帶來了許多生產就緒性的提升,帶來了非常大的提升。

例如,標準庫 net/http 的 HTTP ServerMux 的功能增強:

mux.HandleFunc("POST /eddycjy/create", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "腦子進煎魚了!")
})

mux.HandleFunc("GET /eddycjy/update", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "煎魚進腦子了...")
})

mux.HandleFunc("/eddycjy/{id}", func(w http.ResponseWriter, r *http.Request) {
    id := r.PathValue("id")
    fmt.Fprintf(w, "id 值為 %s", id)
})

mux.HandleFunc("/eddycjy/{path...}", func(w http.ResponseWriter, r *http.Request) {
    path := r.PathValue("path")
    fmt.Fprintf(w, "path 值為 %s", path)
})
...

還有 Trace 執行追蹤的全面改革,以及為所有 Go 應用程序提供更強的隨機性的新包 math/rand/v2。

此外,首個 v2 標準庫包的引入為未來庫的演變和現代化樹立了新的 v2 模板。(后面要搞 encoding/json/v2,值得期待!)

Go 工具的遙測

過去一年,Go 團隊謹慎推出了 Go 工具 Gotelemetry 的可選遙測系統。

這一系統將為 Go 開發者提供數據,幫助他們做出更好的決策,同時保持完全開放和匿名。

圖片圖片

Go 遙測首先出現在 gopls 中,已經帶來了許多改進。

未來的發展方向

硬件適應性

Go 團隊正在進化 Go 語言,以更好地利用當前和未來的硬件能力。

為了確保 Go 在未來 15 年繼續支持高性能、大規模的生產工作負載,Go 需要適應大型多核、高級指令集以及在日益非均勻的內存層次結構中局部性的重要性。

新的 map 實現

Go 1.24 將有一個全新的 map 實現,它在現代 CPU 上更高效。

同時,Go 團隊正在原型設計新的垃圾回收算法(就是上次說到新任負責人去日本喝抹茶,結果想出來個抹茶新算法)。

這些新算法將基于現代硬件的能力和限制會進行調整,給 Go 帶來更大的效益。

新 API 和工具

一些改進將以新 API 和工具的形式出現,以便 Go 開發者更好地利用現代硬件。

Go 團隊正在研究如何支持最新的向量和矩陣硬件指令,以及應用程序如何構建 CPU 和內存局部性。

可組合優化

指導這些努力的核心原則是可組合優化:優化對代碼庫的影響應盡可能局部化。

確保代碼庫其余部分的開發簡便性不受影響。

安全性

Go 團隊繼續確保 Go 的標準庫默認安全、設計安全。

圖片圖片

這包括持續努力將 FIPS 認證的加密支持內置到 Go 中,使得需要 FIPS 加密的應用程序只需切換一個標志即可。

AI 與 Go

Go 團隊正在通過增強 Go 在 AI 基礎設施、應用程序和開發者輔助方面的能力,使 Go 更好地服務于 AI,同時也使 AI 更好地服務于 Go。

Go 作為構建生產系統的可靠語言,Go 團隊希望它也能成為構建生產 AI 系統的可靠語言。

圖片圖片

Gabyhelp

OscarOscar

Go 在云基礎設施中的可靠性使其成為 LLM 基礎設施的自然選擇。

對于 AI 應用程序,Go 團隊將繼續在流行的 AI SDK(LangChainGo 和 Genkit) 中為 Go 提供一流的支持。

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2011-12-27 14:54:24

回顧app移動應用

2011-11-11 17:33:34

Go

2011-12-15 20:21:48

Web

2010-01-07 13:47:35

交換機產品

2011-08-22 09:35:34

2012-08-13 10:44:55

IT技術周刊

2014-01-09 14:07:46

Firefox OS操作系統

2009-09-01 18:15:56

IBM大型機主機

2011-07-28 17:22:57

虛擬化云計算

2021-01-07 22:46:43

人工智能農業疫情

2024-01-19 09:03:06

ReactTypeScripFlexbox

2009-10-27 08:46:38

Ubuntu操作系統linux

2019-10-14 16:08:26

5G運營商5G牌照

2014-11-13 11:22:27

Go

2017-12-07 15:44:58

人工智能AI信息化

2010-01-10 23:13:46

2012-01-08 00:19:21

2011-12-19 09:13:45

Javaeclipse

2013-01-09 08:59:13

20122013iOS

2010-12-01 13:32:25

東軟安全新老交接睿變
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品欧美一区二区在线观看欧美熟 | 欧美视频成人 | 伊人春色成人 | 成人在线视频免费观看 | 欧美日韩中文在线 | 视频一区在线观看 | 日韩有码一区 | 美女久久 | 成人妇女免费播放久久久 | 黄色大片观看 | 91精品久久久| 免费国产视频 | 欧美a级网站 | 久久er99热精品一区二区 | 久久久久久高清 | 国产乱码精品一品二品 | 亚洲精品一区av在线播放 | 国产精品1区2区3区 一区中文字幕 | 久久久久国产精品午夜一区 | 中文字幕1区2区 | 久久久精品一区 | 最新中文字幕第一页视频 | 成人性生交大片免费看中文带字幕 | 先锋资源站 | 欧美亚洲视频 | 99爱国产| 国内av在线| 三级av在线| av一区二区三区四区 | 欧美午夜一区二区三区免费大片 | 69av在线视频 | 国产一区久久 | 日韩成人在线一区 | 成人av一区二区三区 | 一区二区三区视频免费观看 | 国产原创在线观看 | 一本一道久久a久久精品蜜桃 | 在线观看av网站永久 | 女人av | 综合自拍 | 亚洲欧美日韩精品久久亚洲区 |