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