偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Go 語言十五周年!權(quán)力交接、回顧與展望

開發(fā) 前端
在過去的五年中,Go 的用戶基數(shù)增長(zhǎng)了三倍多,成為增長(zhǎng)最快的編程語言之一。Go 語言不僅躋身于十大編程語言之列,更成為現(xiàn)代云計(jì)算的首選語言。

大家好,我是煎魚。

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

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

Go 語言的快速增長(zhǎng)

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

Go 語言不僅躋身于十大編程語言之列,更成為現(xiàn)代云計(jì)算的首選語言。

Go 1.22 和 Go 1.23 的新特性

for 循環(huán)的變革

Go 1.22 和 Go 1.23 的發(fā)布標(biāo)志著 for 循環(huán)的重大變革。

Go 1.22 引入了變量作用域的變更,使得 for 循環(huán)中引入的變量作用域?yàn)槊看蔚?,而非整個(gè)循環(huán),解決了長(zhǎng)期存在的語言 “陷阱”。

如下代碼:

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

在 Go 1.22 之前,這會(huì)打印最后 i 的值 5 次;現(xiàn)在會(huì)打印出 0 到 4 的數(shù)值。

這一決策的背后是 Go 團(tuán)隊(duì)對(duì)歷史決策的反思和社區(qū)反饋的重視。

向前兼容的語言特性

這些變革得以實(shí)現(xiàn),得益于 Go 1.21 引入的向前語言兼容性。

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

迭代器和用戶定義的 for-range 循環(huán)

Go 1.23 在此基礎(chǔ)上進(jìn)一步引入了迭代器和用戶定義的 for-range 循環(huán)。

迭代器的代碼例子:

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{"腦子", "進(jìn)", "煎魚", "了"}
 for i, s := range Backward(sl) {
  fmt.Printf("%d: %s\n", i, s)
 }
}

結(jié)合 Go 1.18 引入的泛型,這為自定義集合和其他編程模式提供了強(qiáng)大而便捷的基礎(chǔ)。

各項(xiàng)特效的功能增強(qiáng)

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

例如,標(biāo)準(zhǔn)庫 net/http 的 HTTP ServerMux 的功能增強(qiáng):

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

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

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 執(zhí)行追蹤的全面改革,以及為所有 Go 應(yīng)用程序提供更強(qiáng)的隨機(jī)性的新包 math/rand/v2。

此外,首個(gè) v2 標(biāo)準(zhǔn)庫包的引入為未來庫的演變和現(xiàn)代化樹立了新的 v2 模板。(后面要搞 encoding/json/v2,值得期待?。?/p>

Go 工具的遙測(cè)

過去一年,Go 團(tuán)隊(duì)謹(jǐn)慎推出了 Go 工具 Gotelemetry 的可選遙測(cè)系統(tǒng)。

這一系統(tǒng)將為 Go 開發(fā)者提供數(shù)據(jù),幫助他們做出更好的決策,同時(shí)保持完全開放和匿名。

圖片圖片

Go 遙測(cè)首先出現(xiàn)在 gopls 中,已經(jīng)帶來了許多改進(jìn)。

未來的發(fā)展方向

硬件適應(yīng)性

Go 團(tuán)隊(duì)正在進(jìn)化 Go 語言,以更好地利用當(dāng)前和未來的硬件能力。

為了確保 Go 在未來 15 年繼續(xù)支持高性能、大規(guī)模的生產(chǎn)工作負(fù)載,Go 需要適應(yīng)大型多核、高級(jí)指令集以及在日益非均勻的內(nèi)存層次結(jié)構(gòu)中局部性的重要性。

新的 map 實(shí)現(xiàn)

Go 1.24 將有一個(gè)全新的 map 實(shí)現(xiàn),它在現(xiàn)代 CPU 上更高效。

同時(shí),Go 團(tuán)隊(duì)正在原型設(shè)計(jì)新的垃圾回收算法(就是上次說到新任負(fù)責(zé)人去日本喝抹茶,結(jié)果想出來個(gè)抹茶新算法)。

這些新算法將基于現(xiàn)代硬件的能力和限制會(huì)進(jìn)行調(diào)整,給 Go 帶來更大的效益。

新 API 和工具

一些改進(jìn)將以新 API 和工具的形式出現(xiàn),以便 Go 開發(fā)者更好地利用現(xiàn)代硬件。

Go 團(tuán)隊(duì)正在研究如何支持最新的向量和矩陣硬件指令,以及應(yīng)用程序如何構(gòu)建 CPU 和內(nèi)存局部性。

可組合優(yōu)化

指導(dǎo)這些努力的核心原則是可組合優(yōu)化:優(yōu)化對(duì)代碼庫的影響應(yīng)盡可能局部化。

確保代碼庫其余部分的開發(fā)簡(jiǎn)便性不受影響。

安全性

Go 團(tuán)隊(duì)繼續(xù)確保 Go 的標(biāo)準(zhǔn)庫默認(rèn)安全、設(shè)計(jì)安全。

圖片圖片

這包括持續(xù)努力將 FIPS 認(rèn)證的加密支持內(nèi)置到 Go 中,使得需要 FIPS 加密的應(yīng)用程序只需切換一個(gè)標(biāo)志即可。

AI 與 Go

Go 團(tuán)隊(duì)正在通過增強(qiáng) Go 在 AI 基礎(chǔ)設(shè)施、應(yīng)用程序和開發(fā)者輔助方面的能力,使 Go 更好地服務(wù)于 AI,同時(shí)也使 AI 更好地服務(wù)于 Go。

Go 作為構(gòu)建生產(chǎn)系統(tǒng)的可靠語言,Go 團(tuán)隊(duì)希望它也能成為構(gòu)建生產(chǎn) AI 系統(tǒng)的可靠語言。

圖片圖片

Gabyhelp

OscarOscar

Go 在云基礎(chǔ)設(shè)施中的可靠性使其成為 LLM 基礎(chǔ)設(shè)施的自然選擇。

對(duì)于 AI 應(yīng)用程序,Go 團(tuán)隊(duì)將繼續(xù)在流行的 AI SDK(LangChainGo 和 Genkit) 中為 Go 提供一流的支持。

責(zé)任編輯:武曉燕 來源: 腦子進(jìn)煎魚了
相關(guān)推薦

2011-12-27 14:54:24

回顧app移動(dòng)應(yīng)用

2011-11-11 17:33:34

Go

2011-12-15 20:21:48

Web

2010-01-07 13:47:35

交換機(jī)產(chǎn)品

2011-08-22 09:35:34

2012-08-13 10:44:55

IT技術(shù)周刊

2014-01-09 14:07:46

Firefox OS操作系統(tǒng)

2011-07-28 17:22:57

虛擬化云計(jì)算

2021-01-07 22:46:43

人工智能農(nóng)業(yè)疫情

2009-09-01 18:15:56

IBM大型機(jī)主機(jī)

2024-01-19 09:03:06

ReactTypeScripFlexbox

2009-10-27 08:46:38

Ubuntu操作系統(tǒng)linux

2019-10-14 16:08:26

5G運(yùn)營(yíng)商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

2011-04-14 10:29:19

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)