50 萬行 Go 代碼,美國一組織從 Python 2 遷移到 Go
美國教育非營利組織可汗學(xué)院(Khan Academy)方面透露,其已經(jīng)用谷歌的 Go 編程語言完成了 50 萬行代碼,以取代此前用 Python 2 編寫的后臺服務(wù)器。根據(jù)介紹,可汗學(xué)院在其 Goliath 項目下實現(xiàn)了從 Python 2 到 Go 的大轉(zhuǎn)變。Goliath 最初是使用 Python 2 實現(xiàn)的;從 2019 年開始,可汗學(xué)院逐步將其遷移到了 Go。
當(dāng)我們開始 Goliath 項目的時候,團隊中沒有人知道 Go,只是通過實驗驗證了 Go 是相較而言更好的選擇。今天,我們所有的后端和全棧工程師都在寫 Go,而我們對 Goliath 的漸進式交付也使我們跨越了一個重要的里程碑?,F(xiàn)在有超過 50 萬行的 Go 代碼在生產(chǎn)中運行。這似乎是對 Go 本身進行反思的一個好時機。
Python 2 于 2020 年初到達 EOL 階段;鑒于此,可汗學(xué)院計劃進行大規(guī)模遷移。對此,可汗學(xué)院的首席軟件架構(gòu)師 Kevin Dangoor 曾表示,從 Python 2 遷移到 3 并不是一件容易的事。
他的團隊曾認(rèn)為 Kotlin 是一個有吸引力的選擇,但最終還是選擇了 Go;其工程師認(rèn)為,和 Python 3 相比,Go 具有很大的性能優(yōu)勢。“由于 Go 的編譯速度快得驚人,我們可以更快地進行迭代。此外,我們的團隊成員擁有多年的經(jīng)驗和圍繞許多不同編輯器建立的肌肉記憶。Go 比 Kotlin 更受各種編輯器的支持。”
很多可汗學(xué)院的工程師反饋稱,Go 很容易寫和讀,并表示自己越是使用 Go 就越喜歡它。同時,Go 的錯誤處理、工具鏈以及編譯速度也都收到了諸多好評。另一方面,可汗學(xué)院方面也表達了對泛型的需要。“雖然大多數(shù)情況下不需要泛型。但有時候,特別是是在寫內(nèi)部庫,尤其是涉及到 slice 時,就會明顯感覺到對泛型的需求...... 我們希望少寫一點代碼,而泛型提供的選項將對此有所幫助。”
最后,該組織總結(jié)稱,雖然一般來說 Go 比 Python 更冗長;但他們還是更喜歡 Go 一些,因為它速度快、工具好用、并且在生產(chǎn)中運行良好。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:50 萬行 Go 代碼,美國一組織從 Python 2 遷移到 Go
本文地址:https://www.oschina.net/news/142282/khanacademy-half-a-million-lines-of-go