近幾年,AI勢頭越來越猛,許多創(chuàng)新型企業(yè)都開始涉入AI領(lǐng)域,同時(shí)計(jì)算機(jī)硬件水平也突飛猛進(jìn),為了加快產(chǎn)品應(yīng)用開發(fā)效率及瓶頸問題,Google所開發(fā)的Golang應(yīng)運(yùn)而生,正在成為機(jī)器學(xué)習(xí)和AI的主流編程語言,全球已有數(shù)百萬用戶。那么很多IT技術(shù)人員肯定會(huì)有這樣的疑問,前些年火起來的Python在科學(xué)計(jì)算及AI領(lǐng)域也有廣泛應(yīng)用,那么這兩者今后誰才是AI的菜呢?
Python很棒,但是Golang也不遜色!
Golang為并發(fā)而生
如今,硬件制造廠商正在為處理器添加越來越多的內(nèi)核以提高性能。數(shù)據(jù)中心都在處理器上運(yùn)行,應(yīng)用程序使用多個(gè)微服務(wù)來維護(hù)數(shù)據(jù)庫連接,消息隊(duì)列和維護(hù)緩存。因此,編程語言和應(yīng)用程序應(yīng)該可以輕松地支持并發(fā)性,并且應(yīng)該能夠隨著CPU核心數(shù)量的增加而具備相應(yīng)的擴(kuò)展性。
但是,大多數(shù)現(xiàn)代編程語言(如Java,Python等)都是來自90年代的單線程環(huán)境。雖然一些編程語言的框架在不斷地提高多核資源使用效率,例如 Java 的 Netty 等,但仍然需要開發(fā)人員花費(fèi)大量的時(shí)間和精力搞懂這些框架的運(yùn)行原理,才能熟練的運(yùn)用到生成開發(fā)中。
Golang于2009年11月發(fā)布,當(dāng)時(shí)多核處理器已經(jīng)上市,Go語言在多核并發(fā)上擁有原生的設(shè)計(jì)優(yōu)勢,Go語言從底層原生支持并發(fā),無須第三方庫、開發(fā)者的編程技巧和開發(fā)經(jīng)驗(yàn)。
Golang現(xiàn)在正成為機(jī)器學(xué)習(xí)和AI的主流編程語言,全球已有數(shù)百萬用戶使用。國內(nèi)例如有阿里巴巴、滴滴、京東、知乎、七牛云、小米等科技互聯(lián)網(wǎng)公司,國外有Google、Facebook、Uber、Dropbox、Salesforce、Twitter等等。
Golang會(huì)淘汰Python嗎?
Python被廣泛使用,而且用途太多,它可將數(shù)千個(gè)組件從單個(gè)模塊編譯為整個(gè)開發(fā)的程序包。Python還有一個(gè)強(qiáng)大的社區(qū),它有望在未來幾十年內(nèi)保持活力。經(jīng)過多種環(huán)境的測試,對于初學(xué)者來說,使用Python編程很容易,并且被認(rèn)為是年輕開發(fā)人員的最愛。在編寫服務(wù)器端腳本時(shí),Go語言的性能優(yōu)于Python。因此,在尋找具有快速部署周期的超高性能并發(fā)服務(wù)時(shí),Golang將優(yōu)于Python。
然而,最近,Golang和Python被稱為最適合AI開發(fā)者的流行語言。當(dāng)公司中同時(shí)存在使用這兩種語言的團(tuán)隊(duì)時(shí),組織內(nèi)部將會(huì)出現(xiàn)以下兩個(gè)門派。
AI工程師中的Golang粉
AI即將席卷整個(gè)技術(shù)世界。機(jī)器學(xué)習(xí),自我糾正和推理是一些可以模仿人類智能的應(yīng)用程序。人工智能驅(qū)動(dòng)的應(yīng)用程序現(xiàn)在使企業(yè)能夠改善其資源的使用,從而產(chǎn)生積極的影響。
高可擴(kuò)展性和計(jì)算能力:與Python相比,Golang在可擴(kuò)展性和性能方面具有更高的潛力。使用Go的想法是因?yàn)榕c數(shù)學(xué)計(jì)算速度相比,它具有較高的速度。例如,與Python相比,它可以處理高達(dá)20至50倍且速度更快的復(fù)雜數(shù)學(xué)問題。
Golang涵蓋了廣泛的AI用途:盡管Go提供了小型庫,但它一直在不斷增長,從而解決了許多AI用途。Go庫(例如GoLearn(數(shù)據(jù)處理),Goml(傳遞數(shù)據(jù))和Hector(二進(jìn)制分類問題))是為AI及其應(yīng)用程序服務(wù)的一些庫。
提供了大量的代碼可讀性:Go中使用的算法提供了一種極簡主義的方法,使開發(fā)人員可以輕松地創(chuàng)建可讀代碼。
Go開發(fā)人員易于使用Go庫:大多數(shù)Go開發(fā)人員不需要選擇用其他編程語言編寫的庫。在Go中擁有庫的核心優(yōu)勢在于,它為AI專業(yè)人員提供了與Go一起進(jìn)行編程的開發(fā)人員的便利。
AI工程師中的Python粉
如今在IT行業(yè)中,機(jī)器學(xué)習(xí)和AI這兩種技術(shù)一直是IT行業(yè)的主流,并將會(huì)有一個(gè)美好的將來。
多個(gè)庫:多個(gè)庫可以幫助AI工程師構(gòu)建新算法,進(jìn)行數(shù)據(jù)集處理,進(jìn)行模型處理,處理最復(fù)雜的數(shù)據(jù)以及更多其他功能。別忘了,TensorFlow是最流行的庫(開源)之一,可用于Google的許多機(jī)器學(xué)習(xí)應(yīng)用程序。
Python是一種可訪問性的語言:從商業(yè)角度來講,語言的可訪問性意味著擁有大量的Python編程市場。此外,正如我們所知,這些編程語言已遍布全球。
強(qiáng)大的社區(qū):Python具有完善的強(qiáng)大社區(qū)。據(jù)GitHub在2019年中的統(tǒng)計(jì),在全球范圍內(nèi)發(fā)送了近一百萬次服務(wù)請求。社區(qū)傾向于為創(chuàng)建新庫以擴(kuò)展工具集和更新文檔做出貢獻(xiàn)。
為什么是Golang而不是Python?
編程語言的可伸縮性可以維護(hù)和幫助開發(fā)人員更大規(guī)模地解決問題。Golang內(nèi)在支持適當(dāng)?shù)牟l(fā)流程通道,而Python在并發(fā)方面將面臨著巨大的挑戰(zhàn)。由于Golang提供了并發(fā)支持,因此Go在群集計(jì)算和云計(jì)算中已被廣泛接受。
如果涉及到可讀性時(shí),Python肯定會(huì)被提名,但是有時(shí)也會(huì)被夸大其詞。Python確實(shí)可以提供多種方法來實(shí)現(xiàn)不同的業(yè)務(wù)場景,但是這常常會(huì)引起混亂。然而,Go在編程方面遵循嚴(yán)格的規(guī)則,它不允許簡單地導(dǎo)入不需要的庫,也不允許創(chuàng)建不必要的變量。所以,這意味著Go具有更好的執(zhí)行優(yōu)勢,保證代碼風(fēng)格的一致性,可以在跨部門協(xié)作中提高團(tuán)隊(duì)開發(fā)的工作效率。盡管有些人可能不同意,只要代碼可讀即可。
得出哪種語言更好的結(jié)論可能是一件比較難的事,盡管在大多數(shù)情況下,Golang似乎占了上風(fēng)。目前,它的火熱程度可能還不如Python,但最終它將在某天到達(dá)。根據(jù)記錄,Python花費(fèi)了二十年才能達(dá)到今天的水平。在最初的十年中,Python的存在并未引起人們的注意,直到2001年它才開始引起人們的注意。因此,Go一定會(huì)趕上。
-
cpu
+關(guān)注
關(guān)注
68文章
10870瀏覽量
211896 -
AI
+關(guān)注
關(guān)注
87文章
30947瀏覽量
269209 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84727
發(fā)布評論請先 登錄
相關(guān)推薦
評論