屬于新十年的開發語言:Go語言可能很快會取代Python
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)
30年前,Python首次亮相,它花了20年才得到開發者的贊賞。如今,它已經成為開發者第二喜愛的語言。尤其是在過去五年里,Python用戶激增,成為機器學習和數據科學開發者的首選語言。
在未來幾年里,Python在這些領域的主導地位必然是很難被動搖的。但與較新的語言相比,它依然存在嚴重的缺陷。這也是20年代開發者們所面臨的障礙?,F在正是反思Python的問題并選擇更好的語言取代它的最好時機。對于人工智能開發和數據科學來說,下一個首選語言可能是Go語言。
Python廣受歡迎的原因
Python廣受歡迎的主要原因是它很容易學習。與其他語言相比,它的語法很簡單,任何人都能在幾小時或幾天內學會Python基礎知識。就算學習了C++或Java等其他語言,開發者還是更傾向于使用Python。這是因為Python的庫幾乎可以滿足用戶的所有需求。
Python 的問題
速度
Python是解釋語言,這導致了其較大問題——執行速度慢。與C++和Go等其他編譯語言相比,Python的執行速度非常慢。Python還是動態語言。變量的數據類型在運行時自動分配,這導致其執行速度變得更慢。
C/C++的使用
為了克服Python執行緩慢的問題,Tensorflow、Numpy和Pandas等庫部分是用C或C++編寫的。這能大幅提高執行速度?;旧螾ython需要借助其他語言來克服自身問題。
全局解釋器鎖
Python的全局解釋器鎖(GIL)一次只允許執行一個線程,同時提高了單線程性能。Python的多線程并不是真正的多線程同時運行。事實上,Python做不到真正的多線程。
注意,Python非CPython實現的部分,比如Jython和IronPython沒有GIL。
為什么選擇Go語言?
Go是開源編程語言,它使得構建簡單、可靠且高效的軟件變得容易。10年前,Go首次亮相,它在谷歌作為通用語言開發。與Python和其他編程語言相比,它有一些顯著的優勢。
快速
Go是靜態編譯語言。這意味著其執行速度要比Python快好幾倍。與Python不同,Go不需要其他語言的幫助;另外,Go編譯代碼的速度比C++和Java還快得多。
易于學習
Go的語法和C相似,比較簡單,是一門易于學習的編程語言,特別是對于那些已經了解C或Java基礎知識的人。想要學習Go的基礎知識,可以在A Tour of Go網站進行交互式學習,或者閱讀官方文檔。
日益流行
Hackearth調查了來自76個國家的16000多名開發者,顯示Go是2020年很受歡迎的編程語言。無需驚訝,有32%富有經驗的開發者和29%的學生表示想學Go。


并發性
并發性是Go的優勢之一。它擁有Goroutines來實現并發,Goroutines是一些可以同時獨立運行的函數。Goroutines體積很小,只占用2kB內存,你可以同時運行成千上萬個Goroutines函數。
Go為什么適合人工智能研究
實際上,對于人工智能研究和數據科學來說,Go沒有任何特殊之處。那么究竟為什么開發者會選擇它呢?
30年前,開發Python不是為了構建機器學習或深度學習算法,也不是為了實現數據可視化。它之所以成為今天這個樣子,是因為開發者和學生喜歡用Python,而且它能夠支持開發者開發他們想要的東西。
Go旨在提高程序員的工作效率。相比Python,它的幾大優勢讓它很容易在未來幾年取代Python成為很受歡迎的語言。最后一言以蔽之:相比其他任何語言,Go可以更好地支持“20年代開發者”開拓創新。