20世紀(jì)20年代的人工智能和數(shù)據(jù)科學(xué)編程語(yǔ)言 Go
意見(jiàn) Golang可能很快會(huì)取代Python
30年前,Python首次出現(xiàn)。 但是花了20年時(shí)間才能獲得開發(fā)人員的贊賞。 快進(jìn)到2019年,它成為開發(fā)人員中第二受歡迎的語(yǔ)言。¹
過(guò)去,尤其是在過(guò)去的5年中,它的增長(zhǎng)非常大。 Python成為機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)開發(fā)人員的首選語(yǔ)言。
在接下來(lái)的幾年中,Python在這些領(lǐng)域的主導(dǎo)地位無(wú)疑將是巨大的。 但是與更新的語(yǔ)言相比,它具有一些嚴(yán)重的缺點(diǎn)。 對(duì)于20年代的開發(fā)者來(lái)說(shuō),這可能是一個(gè)障礙。
現(xiàn)在是檢查Python問(wèn)題并將其替換為更好的替代方法的正確時(shí)機(jī)。 就AI開發(fā)和數(shù)據(jù)科學(xué)而言,我們的下一個(gè)入門語(yǔ)言可能是Golang。
Python受歡迎的原因
Python受歡迎的主要原因是-它易于學(xué)習(xí)。 與其他語(yǔ)言相比,它的語(yǔ)法很簡(jiǎn)單,任何人都可以在幾小時(shí)或幾天內(nèi)學(xué)習(xí)Python的基礎(chǔ)知識(shí)。
即使在學(xué)習(xí)了其他語(yǔ)言(例如C ++或Java)之后,開發(fā)人員通常還是更喜歡使用Python。 那是因?yàn)橛幸粋€(gè)python庫(kù),幾乎可以滿足所有人的要求。
庫(kù)和簡(jiǎn)單的語(yǔ)法使使用Python開發(fā)軟件既簡(jiǎn)單又高效。 這些優(yōu)勢(shì)使Python成為了初學(xué)者的語(yǔ)言。
Python問(wèn)題
速度
Python是一種解釋型語(yǔ)言,它會(huì)導(dǎo)致Python最大的問(wèn)題-執(zhí)行緩慢。 與其他編譯語(yǔ)言(例如C ++和Go)相比,Python的執(zhí)行速度很慢,非常慢。
Python是一種動(dòng)態(tài)類型化的語(yǔ)言。 變量的數(shù)據(jù)類型在運(yùn)行時(shí)自動(dòng)分配。 這使執(zhí)行速度大大降低。
使用C / C ++
為了克服Python的慢度庫(kù),例如Tensorflow,Numpy和Pandas都是用C或C ++編寫的。 它們有助于顯著提高執(zhí)行速度。
基本上,Python需要其他語(yǔ)言的幫助才能克服其問(wèn)題。
全局解釋鎖
Python的全局解釋器鎖(GIL)²一次只能執(zhí)行一個(gè)線程,同時(shí)提高了單線程性能。 Python的多線程實(shí)際上并沒(méi)有同時(shí)運(yùn)行多個(gè)線程。
實(shí)際上,Python無(wú)法執(zhí)行真正的多線程。
(注意:Python的非CPython實(shí)現(xiàn)(例如Jython和IronPython沒(méi)有GIL))
為什么要使用Go語(yǔ)言?
Go是一種開放源代碼編程語(yǔ)言,可輕松構(gòu)建簡(jiǎn)單,可靠且高效的軟件。
Golang或簡(jiǎn)稱" Go"于10年前首次出現(xiàn)。 它是Google在通用語(yǔ)言下開發(fā)的。
與Python和其他編程語(yǔ)言相比,它具有多個(gè)優(yōu)勢(shì),這就是我們感興趣的原因。
快速
Go是靜態(tài)類型化和編譯的語(yǔ)言。 這意味著執(zhí)行速度將比Python快幾倍。 與Python不同,Go不需要其他語(yǔ)言的幫助就可以更快。
這是Go和Python之間的一個(gè)小型基準(zhǔn)游戲比較。 Go幾乎與C ++和Java一樣快。 而且,Go的代碼編譯速度比C ++和Java快得多。
簡(jiǎn)單易學(xué)
Go的語(yǔ)法很簡(jiǎn)單,類似于C。這是一種易于學(xué)習(xí)的編程語(yǔ)言,特別是如果有人已經(jīng)了解C或Java語(yǔ)言的基礎(chǔ)知識(shí)的話。
要了解Go的基礎(chǔ)知識(shí),請(qǐng)?jiān)L問(wèn)Go之旅進(jìn)行交互式之旅或訪問(wèn)官方文檔。
越來(lái)越受歡迎
根據(jù)Hackearth對(duì)來(lái)自76個(gè)國(guó)家/地區(qū)的16,000多名開發(fā)人員的調(diào)查,Go是2020年最受歡迎的編程語(yǔ)言。
32%的經(jīng)驗(yàn)豐富的開發(fā)人員和29%的學(xué)生說(shuō)他們想學(xué)習(xí)Go不足為奇。


并發(fā)
并發(fā)是Go的主要優(yōu)勢(shì)之一。 Go具有Goroutines³以實(shí)現(xiàn)并發(fā)。 Goroutines是可以同時(shí)獨(dú)立運(yùn)行的函數(shù)。
Goroutine重量輕,僅占用2 kB的內(nèi)存。 由于Goroutine輕巧,因此可以同時(shí)運(yùn)行數(shù)千個(gè)。
Go還有很多其他優(yōu)點(diǎn)。 查看Keval Patel撰寫的這篇深入文章。
為什么要學(xué)習(xí)Go?
" Go將成為未來(lái)的服務(wù)器語(yǔ)言。" — TobiasLütke,Shopify
是什么使Go適用于AI研究
將Go專門用于AI研究或數(shù)據(jù)科學(xué)并沒(méi)有什么特別的。 為什么應(yīng)將Go用于AI和數(shù)據(jù)科學(xué)? 我會(huì)告訴你的……但是等一下,
30年前,尚未開發(fā)Python來(lái)構(gòu)建機(jī)器學(xué)習(xí)或深度學(xué)習(xí)算法或進(jìn)行數(shù)據(jù)可視化。
之所以如此,是因?yàn)殚_發(fā)人員和學(xué)生喜歡用Python進(jìn)行編碼,并且喜歡使用語(yǔ)言來(lái)開發(fā)開發(fā)人員想要的內(nèi)容。
Go旨在提高程序員的生產(chǎn)力。 與Python相比,它具有多個(gè)優(yōu)點(diǎn)。 它可以輕松地在未來(lái)幾年中取代Python成為最受歡迎和最受歡迎的語(yǔ)言。
因此,它可以歸結(jié)為1行,
Go可以支持" 20世紀(jì)20年代的開發(fā)者"發(fā)展他們的想法,遠(yuǎn)勝于其他任何語(yǔ)言。