能比Python快20倍?Julia真有這麼神?

2008年,一群擁有各種語言豐富編程經驗的Matlab高級用戶,對現有的科學計算編程工具感到不滿——這些軟件對自己專長的領域表現得非常棒,但在其它領域卻非常糟糕。

能比Python快20倍?Julia真有這麼神?

他們想要的是一個開源的軟件,它要像C語言一般快速而有擁有如同Ruby的動態性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的數學記號。

能比Python快20倍?Julia真有這麼神?

要像Python般通用、像R般在統計分析上得心應手、像Perl般自然地處理字符串、像Matlab般具有強大的線性代數運算能力、像shell般膠水語言的能力,易於學習而又不讓真正的黑客感到無聊。

能比Python快20倍?Julia真有這麼神?

還有,它應該是交互式的,同時又是編譯型的……

現在,一個充滿活力和蓬勃發展的社區圍繞著這種語言成長起來,來自世界各地的人們在追求這一目標的過程中不斷地精煉並重塑著 Julia。超過 700 人為 Julia 做出了貢獻,還有很多人制作了數以千計的令人驚歎的開源 Julia 軟件包。

總而言之,我們建立的語言:

-快速:Julia 就是為高性能而設計的。Julia 程序通過 LLVM 編譯為多個平臺的高效本機代碼。

-通用:它使用多個調度作為範例,使得它很容易表達眾多面向對象和函數編程的模式。它的標準庫提供異步 I / O、進程控制、日誌記錄、概要分析、軟件包管理器等。

-動態:Julia 是動態類型的,就像一種腳本語言,並且很好地支持交互式使用。

-技術:它擅長於數值計算,其語法非常適合數學,支持的數字數據類型眾多,並具有開箱即用並行性。Julia 的多次調度非常適合定義數字和數組類型的數據類型。

-(可選)鍵入:Julia 具有豐富的描述性數據類型語言,類型聲明可用於闡明和鞏固程序。

-可組合:Julia 的軟件包可以很好地協同工作。單位數量矩陣,貨幣和顏色數據表都可以進行,並且性能良好。

能比Python快20倍?Julia真有這麼神?

特點:

1.免費開源

2.核心語言非常小。標準庫用的是 Julia 語言本身寫的

3.調用許多其它成熟的高性能基礎代碼。如線性代數、隨機數生成、快速傅里葉變換、字符串處理。(還在增加中……)

4.豐富的用於建立或描述對象的類型語法

5.高性能,接近於靜態編譯型語言。包括用戶自定義類型等

6.為並行計算和分佈式計算而設計

7.輕量級“綠色”協程

8.優雅的可擴展的類型轉換/提升

9.支持Unicode, 包括但不限於UTF-8

10.可直接調用 C 函數(不需要包裝或是藉助特殊的API)

11.有類似shell的進程管理能力

12.有類似Lisp的宏以及其它元編程工具

與其他語言相比,Julia 易於使用,大幅減少了需要寫的代碼行數;並且能夠很容易地部署於雲容器,有更多的工具包和庫,並且結合了多種語言的優勢。據 Julia Computing 的宣傳,在七項基礎算法的測試中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。

目前 Julia 的應用範圍已經非常廣泛了,可以用於天文圖像分析、自動駕駛汽車、機器人和 3D 打印機、精準醫療、增強現實、基因組學和風險管理等領域。

兩年前,諾貝爾經濟學獎得主 Thomas Sargent 和澳大利亞國立大學的經濟學教授 John Stachurski,共同建議紐約聯邦儲備銀行把其用於市場走勢預測和政策分析的 “動態隨機一般均衡模型(DSGE)” 轉到 Julia 語言平臺。在項目第一階段後,他們發現,Julia 把模型運行時間縮短至原先 Matlab 代碼的十分之一到四分之三。

能比Python快20倍?Julia真有這麼神?

除了語言本身的優點,Julia 還擁有非常強大的生態系統,主要應用於數據可視化、通用計算、數據科學、機器學習、科學領域、並行計算六大領域。

喜歡的可以關注我,點個贊,我會持續為您發佈更多新的內容。


分享到:


相關文章: