Go 和 Golang 有什么關(guān)系?
本文轉(zhuǎn)載自微信公眾號(hào)「腦子進(jìn)煎魚了」,作者陳煎魚 。轉(zhuǎn)載本文請(qǐng)聯(lián)系腦子進(jìn)煎魚了公眾號(hào)。
大家好,我是煎魚。
最近天氣也冷了,掐指一算是招聘季了,無(wú)論是校招、社招、HR、面試官們都蠢蠢欲動(dòng)。這不,我有一個(gè)朋友的 HR 朋友都有起名困難了,一看 Go 語(yǔ)言的工作說(shuō)明(Job Description),發(fā)現(xiàn)各有不同。
如下圖:
來(lái)自某招聘網(wǎng)站
仔細(xì)一看,有叫 Go 的,也有叫 Golang,還有叫 GO 的。好家伙,Go 語(yǔ)言有這么多個(gè)別名,為什么要叫 Golang,甚至某乎都討論了起來(lái)。到底叫什么是正確的?
為此,今天就由煎魚帶大家理一理,了解這背后的關(guān)系。
Go 官方定義
從網(wǎng)上的資料來(lái)看,大家對(duì) Go 的名字還是比較關(guān)注的,對(duì)于 Go 團(tuán)隊(duì)來(lái)講,仿佛經(jīng)常被問(wèn)。例如:
- “Go 和 Golang 的關(guān)系是什么?”
- “Go、Golang、GO 哪個(gè)對(duì)?”
甚至在之前探討 Go2 草案時(shí),也有人開(kāi)始起 Go2 的名字了,糾結(jié)是要叫 “golang2”,還是 “go2lang”:
其實(shí)這是錯(cuò)誤的。在 Go FAQ 中有明確的回答這個(gè)問(wèn)題:
這一門語(yǔ)言稱為 “Go”,不叫 “Golang”,也不叫 “GO”。“golang” 只是網(wǎng)站的地址,而不是語(yǔ)言的名稱。
同時(shí) “GO” 的語(yǔ)言名稱叫法也是錯(cuò)誤的,雖然官方上的 Logo 是 “GO”:
但這顯然只是設(shè)計(jì)師層面的美觀考量,并不是這一門語(yǔ)言的標(biāo)準(zhǔn)定義。
因此這一門語(yǔ)言叫做 “Go” 語(yǔ)言,這是正確的,也得到官方認(rèn)證的,也不曾改變過(guò)。
為什么會(huì)有 Golang
但可能又有小伙伴疑惑了,那為什么 “Golang” 這個(gè)別名,如此之火。到底是為什么?
這里一共有三點(diǎn)原因,分別是:站點(diǎn)地址(Go FAQ 提到)、搜索引擎、社區(qū)和論壇、語(yǔ)言重名。
Go 站點(diǎn)地址
Go 團(tuán)隊(duì)所期望的 https://go.org 早就被注冊(cè),從網(wǎng)站的底部標(biāo)識(shí)來(lái)看,2008 年起建站:
所以 Go 語(yǔ)言只能使用 https://golang.org,你也會(huì) https://pkg.go.dev 和 https://golang.org、https://godoc.org,存在多個(gè)域名,并不統(tǒng)一。
因此作為 Go 開(kāi)發(fā)者所常用官方站點(diǎn),自然而然 golang 這一個(gè)語(yǔ)言標(biāo)識(shí)就深深地被記住了,一直沿用至今。
同時(shí)域名為 “golang” 關(guān)鍵字,自然會(huì)大幅度的影響到 Go 資料搜索引擎的收錄,是一個(gè)非常重要的因素。
搜索引擎
在早年 Go 語(yǔ)言還不知名時(shí),用 go 關(guān)鍵字去搜索資料會(huì)非常的困難。這是各大搜索引擎早年的一個(gè)槽點(diǎn)(reddit 很多吐槽)。
因?yàn)閱我坏?go 關(guān)鍵字過(guò)于廣泛了,很多人會(huì)直接用 golang 關(guān)鍵字來(lái)搜資料,反而會(huì)更能看到一些與 Go 真正相關(guān)的。
這一點(diǎn)在近年來(lái)有明確改善,得益于 Go 語(yǔ)言的崛起,現(xiàn)在也能搜到了。
社區(qū)和論壇
在社區(qū)、論壇等,也有類似的問(wèn)題。因?yàn)檎嘉弧⒅孛?、認(rèn)知等原因。像是 segmentfault、twitter 叫 golang。掘金叫 Go,各有不同。
這點(diǎn)難以改善,畢竟各家都是不同企業(yè)的。所以難受的點(diǎn)是用戶,搜了 Go,可能搜不到,又跑去搜 Golang 才可以。
再看看國(guó)外的論壇,在 Google 群組 golang-nuts 和 golang-dev 也有類似偏差。
基本可以明確 “Golang” 更多會(huì)被用在搜索和標(biāo)簽上,能夠保證搜索和標(biāo)簽查詢的結(jié)果。
語(yǔ)言重名
實(shí)際上在 Go 語(yǔ)言出現(xiàn)前,已經(jīng)存在一門 “Go!” 的編程語(yǔ)言了。有網(wǎng)友表示這也是 Go 官方糾結(jié)的一點(diǎn)。
不過(guò)實(shí)際上編程語(yǔ)言重名并不少見(jiàn),但由于真實(shí)性有待考量,建議僅是了解即可。
至少現(xiàn)在已經(jīng)沒(méi)有這門語(yǔ)言的命名之爭(zhēng)。
總結(jié)
可以明確,官方詮釋的正確名稱為 Go。
但由于 go.org 域名的原因, 因此在 Go Programming Language 的通俗稱呼下,采取了 golang 來(lái)作為 Go 站點(diǎn)、Google 群組的域名/組別等的建立。
Go 資料肯定都集中在官方站點(diǎn)、論壇,自然而然,大家用 “go” 關(guān)鍵字也就很難搜索到了,都得用 “golang” 關(guān)鍵字。
可以明確,Go 是這一門編程語(yǔ)言的名字,Golang 更多是在搜索和標(biāo)簽上的使用。
這看上去,是搜索引擎的勝利,你覺(jué)得呢?:)