在海量數據的處理上,Julia 的效能比 Python 更優秀

Julia 介面。圖片來源:flickr

對研究人員來說,程式語言、編譯器與函式庫都是決定數據分析效能的因素;在當今的大數據 AI 時代,Python 是相當受歡迎的程式語言。然而,物理學家 Lee Phillips 投稿外媒《Ars Technica》,認為在海量數據的處理上,Julia 更優秀,是科學研究者愛用的程式語言之一。

什麼是 Julia?

Julia 運算速度快,能解決 Python 的雙語言問題

Julia 是一種進階通用的動態程式語言,於 2012 年上市,是相當年輕的程式語言。Julia 起初是為了滿足高效能數據分析而設計的,不需要直譯器,具有運算速度快的優勢。

Phillips 認為,Julia 的運算速度快,能解決 Python 的「雙語言問題」。Python 的缺點是速度慢,為了加快速度,工程師必須使用 C 語言,重寫運算最耗時的程式碼;雖然速度能夠提升,但工程師必須維護兩種語言的程式碼,產生了雙語言問題。

除了運算速度快,Phillips 表示,Julia 能吸引科學家的注意,關鍵在於它解決了電腦科學的難題:表達問題(expression problem)。

Julia 透過多重調度處理表達問題

在電腦中,函數與程式的功能是處理輸入的指令,然後將結果輸出;數據類型是函數操作的數字與其他資訊的集合;函式庫則是函數的集合,以及它們處理的數據類型的描述,集合起來執行一組相關的任務。

Phillips 表示,有的函數庫以函數式語言編寫,圍繞程式組織,有的以物件導向的語言編寫,圍繞成分組織。在一種情況下,工程師不能在不重寫現有程式的情況下添加新的成分,而在另一種情況下,工程師不能在不重寫現有工作的情況下添加新的程式,這就是表達問題。

Julia 透過多重調度(multiple dispatch)處理表達問題。多重調度是 Julia 的核心組織原則,因此它既不是物件導向,也不是函數式。多重調度能讓工程師自由且直接的混合與配對函式庫,來執行編寫函式庫的人從沒想過的任務。

除了多重調度,Julia 也有語法易讀性高的優點

Julia 不是第一個透過多重調度解決表達式問題的程式語言,Common Lisp 已經有此功能 40 年了,Perl 也具備這個能力。不同的是,多重調度是 Julia 的核心,而在其他的程式語言,多重調度是選擇性的,而且會影響性能。但 Julia 之所以受到科學界的歡迎,Phillips 認為,除了多重調度之外,語法易讀性高也是原因。

當然,現在 Python 還是最大宗,最受歡迎的程式語言,或許 Julia 在大量數據處理與科學界有優勢,但 Python 是否會被取代,現在誰也說不準。

參考資料

Ars Technica

(本文提供合作夥伴轉載;首圖來源:flickr CC Licensed

延伸閱讀

有神人同時擔任 Google 與 FB 的工程師!帶你認識科技界的「搖滾明星法則」
【堪稱天下第一大廠】開工半年內每月量產 3 萬片!台積六廠如何創造半導體奇蹟?
要用多少「馬鈴薯」才能在樹莓派玩《毀滅戰士》?超狂工程師實驗得出結果:770 片


科技報橘 LinkedIn 上線!

最新科技產業動態、技術新突破、專業職能技巧提升 ....... 鎖定 TO  LinkedIn 專業品牌,提升職能與產業 Know-how,躋身產業菁英之列 https://www.linkedin.com/showcase/techorange

點關鍵字看更多相關文章: