為什麼Julia語言這麼棒?

banq發表於2019-02-24

選擇Julia有一個明顯的理由:

它比其他指令碼語言更快,允許您快速開發Python / MATLAB / R,同時生成與C / Fortran一樣快的程式碼!

不瞭解Julia的新人可能對這種說法有點警惕。
  1. 為什麼其他指令碼語言不能更快呢?如果Julia能做到這一點,為什麼其他人不能呢?
  2. 你如何與Julia基準測試人員確認這一點?(這對許多人來說非常困難!)
  3. 這聽起來像違反了免費午餐啟發式。真的沒有遺漏嗎?

很多人認為Julia是快速的,因為它是Just-In-Time(JIT)編譯的(即每個語句都是使用編譯後的函式執行的,這些函式在使用之前編譯,或者之前的快取編譯)。這導致Julia相對JIT的Python / R等實現比較出現了疑問(預設情況下MATLAB使用JIT):這些JIT編譯器的最佳化時間遠遠超過Julia,那麼為什麼我們應該瘋狂並相信Julia會以某種方式快速最佳化所有這些?但是,這是對Julia的完全誤解。我想以一種非常直觀的方式展示Julia因其設計決策而快速展現。核心設計決策,透過多次排程專業化的型別穩定性等讓Julia很容易透過編譯器變成高效的程式碼,但同時讓程式碼非常簡潔並“看起來像一個指令碼語言”。這些都將導致一些非常明顯的效能提升。

核心理念:多重排程+型別穩定性=>速度+可讀性

詳細分析點選標題見原文。

相關文章