這是20年來第一次,TIOBE開發語言排行榜的第一名,不是C語言,也不是Java。

這個排行榜,從2000年開始,針對全球Top25流量的搜尋引擎,追蹤開發語言相關關鍵字的熱度,計算出每個月,最多人好奇、查詢的熱門開發語言。從排行榜創立之今,一直都是兩大主流語言C和Java輪流坐上龍頭寶座,直到今年10月。Python,這個三十歲的老語言,因為大受資料科學社群和AI模型開發者的熱愛,這幾年來快速竄紅,甚至,現在擠下了兩大語言龍頭,站上第一。

以效能著稱的C語言和主打跨平臺能力的Java,輪流第一,意味著應用程式的主流需求,經常在效能和跨平臺支援之間擺盪。有時效能重要,又有時是跨平臺互通更重要。但不管是哪一種語言,都是應用程式所需的開發技術。但是Python奪下第一,意義截然不同,代表了AI應用的熱度,超越了AP開發的熱度。

AP開發者寫的程式碼,通常就是最終目標想要的AP應用,但是在AI模型開發中,資料科學家撰寫的程式碼,是用來「訓練」資料的演算法程式,最後得到出一組訓練過的AI模型,常見是一組矩陣數據,而不是一支App。

AI模型的開發,和AP程式的開發,是兩種截然不同的開發型態。AI模型開發需要反覆「訓練」資料,嘗試不同演算法、參數,才能找到預測力或辨識力更好的AI模型,這正是Python大受AI社群青睞的關鍵。簡潔好讀的語法,讓Python更能滿足資料科學們反覆嘗試的開發需求。

站上第一名,不只是Python語言本身的特性,還因為背後龐大的社群和各種套件所組成的生態圈,讓Python用途更廣,也更方便落地到各種產業應用。甚至,不只AI圈,Python也紅回Web開發,系統管理應用領域。畢竟一套語言通吃越多領域,就會吸引更多類型的人才投入,也會反過來更擴大這個生態系的領域。

但是,Python有一個最大的缺點,就是效能瓶頸。Python是為了系統管理所打造的直譯式語言,效能上比不上編譯式的C語言。因此,在開發AI應用時,資料科學家大都在模型訓練階段使用Python,等到要將模型部署上線時,會改用效能更好的C語言來重寫。這是典型的雙語言課題,得用兩種語言才能滿足反覆訓練過程的易讀性,和上線後需要的效能。

尤其,現在許多AI應用上,機器學習模型的參數越來越多,要訓練的資料量也越來越大,甚至是要處理到TB級或PB級的海量資料,Python效能不足問題更顯得嚴重。

麻省理工學院有間實驗室,一位老師帶著三個學生,決定重新打造一款專為資料科學而生的程式語言,來取代Python這個借來的語言,在2012年正式開源了這款語言Julia。

「我們很貪婪。」創辦人們這樣強調:「我們要打造一個開源語言,具備C的速度和Ruby的動態性,要像Python一樣用於通用程式任務,像R一般輕鬆處理統計學,像Perl自然地處理字串,要像MatLab般擁有處理線性代數的強大能力,也要像Shell一樣能黏合不同程式。我們要它容易上手,也要它讓最嚴肅的駭客愛用。我們要它可互動,還要能編譯。」

Julia一推出,就大受好評,快速成為資料科學圈的新武器,2015年,四位創辦人更乾脆成立了一家公司來維護和發展Julia。2018年正式釋出了1.0版,開始吸引了不少大企業的目光。

統計至今年7月,Julia下載次數達到2,900萬次,GitHub星星超過20萬顆,相關套件達到6千個,從Google、微軟、IBM,莫德納藥廠、AZ藥廠、NASA等,超過上萬家企業都採用。

舉幾個例子,全球第五大的保險公司英傑華原本上萬行程式碼的風險模擬預測系統,改用Julia重寫後只需用1千行,所需伺服器叢集從100臺減少到5臺。美國紐約聯邦儲蓄銀行用它來打造史上最複雜的總體經濟模型。輝瑞藥廠新藥研發的心臟模擬運算,從1天縮短到只要40分鐘就能算完。速度,正是這些企業看上年輕Julia,換掉成熟Python的主因。

AI浪潮席捲了整個開發圈,讓Python站上浪頭成為第一夯的語言,但後浪來勢洶洶,Julia正是Python最強的競爭者。

專欄作者

熱門新聞

Advertisement