2019/01/21

Julia

2009 年一些 matlab 工程師,還有 Lisp, Python, Ruby, Perl 的開發者集合起來,他們對現況不滿,目標是要有 C 的速度,Ruby 的動態語言特性,要有 Lisp 的 macros,類似 matlab 的語法,也要有 R 的統計功能,Perl 處理字串的能力,要能處理線性代數,統整起來的程式語言,在 2012 年發表了 Julia,並在今年 2018/8/8 發布正式的 1.0 版。

特性

  • 核心很精簡,標準函式庫是以 Julia 開發
  • 有支援線性代數、快速傅立葉轉換等功能
  • 高效能,接近靜態編譯語言的速度
  • 支援平行運算
  • 支援 unicode
  • 可直接呼叫 C 的 function
  • 有類似 shell 的 process 管理能力
  • 有類似 lisp 的巨集功能
  • 動態資料型別的語言

Why We Created Julia 這篇文章中,明確地宣告 Julia 的遠大目標:

We are greedy: we want more.

因為他們希望集合很多程式語言的優點,簡單來說,就是精簡的語法,強大的功能,快速的結果這幾個重點,如果能夠達到目標,相信會吸引很多使用者進入這個領域,剩下就是時間的問題,讓時間去證明大家的選擇是對的。

Julia 的優缺點

優點

  • 速度快: Julia 的設計目標,就是高速,當然會比 python 快很多

  • 更貼近數學的語法: Julia 目標是科學語言,要吸引 matlab, R, Mathematica 的使用者,所以會採用貼近數學方程式的語法

  • 自動記憶體管理: 跟 python, java 一樣,會自動 allocate, free memory

  • Parallelism: 為達到快速的數學運算,需要儘可能使用所有運算資源

缺點

  • 1-indexed: 為了跟 mathematica 或其他數學軟體的設計一樣,Julia 採用 index 1 作為 array 的第一個 element,一般程式語言是使用 index 0

  • 目前的 3rd party package 數量還不夠,遠遠不及 C 與 Python library 的數量,但這是因為 Julia 的年紀很小,未來他的優點被更多開發者看見,就會發展更好

  • python 已經發展了 27 年,當然在社群的使用度會比 Julia 多

學習資源

官方網頁 Online tutorials 提供了所有學習的資源及連結

另外在 JuliaBox 可用 github 登入,然後在網頁上使用類似 R 語言的互動開發介面,將文件跟 code 整合在一起

References

程式語言Julia歷經6年開發,融合多語言特性終釋出1.0

Julia vs. Python: Julia language rises for data science

Julia (程式語言)

Introducing Julia

JuliaBox

JuliaBox Tutorials

沒有留言:

張貼留言