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


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