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