Python并非為AI而生,Golang將統治人工智能的下一個十年?
過去幾年,Python成為人工智能和數據科學領域最受歡迎的編程語言。但是隨著5g時代的來臨,生產環境對AI應用的性能要求越來越高,Python有點「力不從心」。天生支持并發的Golang應運而生,專家稱,Go語言將統治人工智能的下一個十年。
30年前,Python 首次出現。
但是Python花了20年的時間才得到公眾的認可。
根據2019年Stack Overflow的調查,Python成為開發人員第二喜愛的語言。
過去的5年里,Python的成長無疑是巨大的,已經成為機器學習和數據科學開發人員的首選語言。
短時間來看,Python 的主導地位大概率不會變。但是與一些新興的語言相比,它有一些嚴重的缺點,將成為生產環境部署的障礙。
Python 受歡迎的主要原因是它很容易學習。
與其他語言相比,它的語法很簡單,任何人都可以在幾個小時或幾天內學會 Python 的基礎知識。
即使在學習了c++ 或 Java 等其他語言之后,開發人員還是更愿意使用 Python。因為無論你想干啥,總有一個Python 庫能滿足你的需求,這些庫讓開發數據科學和AI類的應用變的簡單高效。
但Python在大規模生產環境下的性能問題,直接影響了AI應用的開發效率。現在很多人工智能初創企業,正處于底層架構的構建階段,檢查 Python 的問題很有必要。
Python是一個解釋性語言,這導致它執行起來比較慢,與其他編譯語言如c++ 和 Go 相比,Python 的執行速度就像烏龜一樣,所以很多AI模型雖然是用Python開發的原型,部署時還得轉成其他語言。
Python 是一種動態類型語言。變量的數據類型在運行時自動判斷,也使得執行速度變慢。
為了克服 Python 的速度,很多Python庫選擇更快的語言來重寫,例如 TensorFlow、 Numpy 和 Pandas 部分是用 c 或c++ 編寫的,它們有助于顯著提高執行速度。
這就有點像拄著拐走路,一直需要外界的幫助。
隨著5G時代的來臨,多任務并行處理和實時性的需求猛增,Python是可以構建小而美的應用,但是大規模、高吞吐的場景下,表現不盡如人意。雖然有很多方法,來提高Python的并行計算的能力,但都是曲線實現的,并沒有實現真正意義的并行。
因為Python中存在一個GIL鎖,每次只允許程序執行一個線程。
GIL的全稱是Global Interpreter Lock(全局解釋器鎖),Python之父為了數據安全而設計的,那個時候計算機的主頻還沒有達到1G,程序全部都是運行在單核計算機上面。
某個線程想要執行,必須先拿到GIL,可以把GIL看作CPU的「通行證」,拿不到通行證就不允許進入CPU執行,Python 的多線程實際上并沒有利用到多核計算的優勢,它不管你有幾個核,100個核也只能跑一個線程。