溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Julia 1.0 正式發(fā)布,這是新出爐的一份簡(jiǎn)單中文教程

發(fā)布時(shí)間:2020-06-21 04:45:02 來源:網(wǎng)絡(luò) 閱讀:3342 作者:志強(qiáng)1224 欄目:開發(fā)技術(shù)

        兩天前,機(jī)器之心報(bào)道 MIT 正式發(fā)布 Julia 1.0 的文章引發(fā)了極大的關(guān)注(20 多萬的閱讀量),對(duì)此編程語言既有批判者也有推崇者。如機(jī)器之心了解到 Julia 在科學(xué)計(jì)算、數(shù)據(jù)處理行業(yè)很受歡迎。為了方便大家更了解這一新正式發(fā)布的編程語言,我們推薦 Julia 中文社區(qū)(中文社區(qū)介紹見文后)組織者之一羅秀哲

這兩天的媒體報(bào)道可能讓一些人有了恐慌,但是我現(xiàn)在有一個(gè)誠(chéng)懇的建議就是如果你完全沒有編程基礎(chǔ),時(shí)間也不多的話(時(shí)間多了不是想學(xué)啥學(xué)啥),我建議你先學(xué)一下 Python,這并不沖突,因?yàn)?Julia 的語法本身和 Python 很像,1.0 之后也專門增加了一些 feature 幫助你更好地從 Python 轉(zhuǎn)向 Julia。Julia 剛剛有了第一個(gè)長(zhǎng)期支持版本,這還不意味著這個(gè)語言已經(jīng)完全成熟,我想此時(shí)的 Julia 更像是彼時(shí)的 Python 2.0,還有很長(zhǎng)一段路要走,但是已經(jīng)非常的有前景。

Julia 1.0 正式發(fā)布,這是新出爐的一份簡(jiǎn)單中文教程

那么什么人我會(huì)建議學(xué)習(xí) Julia 呢?或者 Julia 在什么場(chǎng)景下也許能夠有優(yōu)勢(shì)呢?我個(gè)人的體驗(yàn)是以下這里一類:

之前使用 Python 但是因?yàn)樾阅軉栴},經(jīng)常需要使用 numba/Cython/C API/ctypes/etc. 等方式進(jìn)行優(yōu)化的人。Julia 或許能夠幫助你解決兩語言問題,并且獲得可讀性更好,更容易維護(hù)的代碼。之前使用 MATLAB,但是被一些付費(fèi)功能困擾的用戶(MATLAB 2018 也是不錯(cuò)的,但是要支持正版哈)之前使用 Fortran 和 R 的用戶,強(qiáng)烈建議使用 Julia(可以結(jié)合著用也,F(xiàn)FI 是很不錯(cuò)的)之前使用 Sage/Octave 的用戶,不妨嘗試一下這個(gè)新玩意兒之前使用 Mathematica 但是想開始做一些數(shù)值的用戶,Mathematica 不是不能做數(shù)值,也可以調(diào)用 C/C++ 但是 Julia 不妨是相比其它工具更平滑的選擇。

如果你之前的工作僅僅使用 Python 就足以勝任,那么不必著急,也不必恐慌,不妨在感興趣的時(shí)候試試這個(gè)新東西,但是也完全可以等到 Julia 被大規(guī)模使用的時(shí)候再跟進(jìn)。實(shí)際上從一開始像 MXNet 這樣的深度學(xué)習(xí)框架就官方支持了 Julia,這些框架的 Python 用戶轉(zhuǎn)移過來也并不是什么難事,但是如果你本來就不擔(dān)心自己程序的性能(很多時(shí)候這并不是一個(gè)大問題),那么其實(shí)不會(huì)體會(huì)到什么明顯的不同和優(yōu)勢(shì)。但是這樣說也并不完全正確,Julia 語言的優(yōu)勢(shì)不僅僅在其性能,也在其語言本身的設(shè)計(jì)。

此外,也要再三聲明,雖然 Julia 可以寫出高性能的代碼,但是寫出高性能的代碼這件事情本身就很困難。雖然寫起來像 Python,運(yùn)行速度像 C 是我們的夢(mèng)想,但是在現(xiàn)在這個(gè)階段,并不是隨便寫一段 Julia 代碼就真的能達(dá)到 C 的。Julia 只是給你提供了充分優(yōu)化的空間,和(達(dá)到高性能代碼的)相對(duì)容易的編程體驗(yàn)。

下載和安裝 Julia

Julia 目前因?yàn)楣倬W(wǎng)的服務(wù)器只有 AWS s3(他們也很窮)。所以國(guó)內(nèi)的一些地區(qū)下載速度很慢:

鏈接:https://julialang.org/downloads/

大家可以試一試,然后也可以去 Julia Computing 公司提供的 Julia 全家桶(你可以把它理解為 Julia 版本的 Anaconda),最左邊的 JuliaPro 是免費(fèi)的:

鏈接:https://juliacomputing.com/

之前浙大的 LUG 搭建了一個(gè)鏡像,但是維護(hù)的同學(xué)最近有一些忙,所以目前還沒有更新到 1.0。但是其實(shí)你如果無法從以上途徑下載,那么從境內(nèi)的源里下載 Julia 0.6 也其實(shí)并不影響你先熟悉一些基本語法(這是這個(gè)教程的主要目的),境內(nèi)的源的下載地址在這里:

鏈接:http://juliacn.com/downloads/

我們也會(huì)盡快更新。

然后還有一個(gè)叫做 Julia Box 的云服務(wù)很方便可以使用,里面有很多教程,都是 jupyter notebook,打開即用,全部都是在線的不用安裝。但是唯一的缺點(diǎn)就是國(guó)內(nèi)可能不一定能夠正常訪問到。

鏈接:http://suo.im/4S7gbT

使用什么編輯器

Julia 語言的社區(qū)不夠大,此外由于不是像 rust 這樣的靜態(tài)編譯語言,也不是像 CPython 這樣的解釋型編譯器,在啟動(dòng)的時(shí)候有比較明顯的 overhead,這個(gè)問題一直在優(yōu)化(REPL 的啟動(dòng)時(shí)間已經(jīng)從曾經(jīng)的 1.0s 到了現(xiàn)在的 0.2s,依然和 IPython 這樣的有明顯差距),有 PL 的朋友私下和我說是 LLVM 的 JIT 不是那么好(像 nodejs 的 V8 這個(gè)問題就不是很明顯)

所以在這個(gè)階段選擇一個(gè)合適的開發(fā)工具是非常必要的。目前支持最好,bug 最少的是 Atom 上的 Juno 插件,如果你下載 Julia Pro 那么會(huì)自帶這個(gè)編輯器。如果你想選擇手動(dòng)安裝,那么可以在這里下載 Atom:

鏈接:https://atom.io/

然后安裝方法在這里有介紹:

鏈接:http://docs.junolab.org/latest/man/installation.html

或者我也推薦你安裝 IJulia 之后,使用 jupyter notebook 和 jupyter lab 進(jìn)行開發(fā)。

其它的平臺(tái)也有支持,例如 Jetbrain 的各個(gè) IDE 都可以使用由 @ 考古學(xué)家千里冰封等開發(fā)的插件。VS code 也有 Julia 插件,以及 Vim 也是有支持的。但是他們都還沒有支持逐行執(zhí)行和單獨(dú)執(zhí)行某一塊代碼的功能,這對(duì)于本身被設(shè)計(jì)得很像 Mathematica 的 Julia 來說沒有執(zhí)行一個(gè) cell 的支持開發(fā)起來會(huì)時(shí)常被 JIT 的預(yù)熱時(shí)間所困擾。

然后為了克服 JIT 的預(yù)熱,避免重復(fù)啟動(dòng)編譯器。如果你不重新定義(re-define)類型的話,可以試試 Revise.jl :

鏈接:https://github.com/timholy/Revise.jl

這是一個(gè)用于熱加載 Julia 代碼的工具,1.0 已經(jīng)支持方法(method)的刪除了。所以也能夠方便你的開發(fā)。

其實(shí)和 Python 一樣,在我日常使用中,作為動(dòng)態(tài)語言,以及因?yàn)檎Z法本身適合分塊執(zhí)行,我其實(shí)很少會(huì)用到斷點(diǎn)和專門的 debugger,此外雖然有相關(guān)的包,在 1.0 的編譯器里也為未來加入 debugger 提供了相關(guān)功能,但是目前還沒有完善,你也許可以試試(但是我暫時(shí)不推薦):

鏈接:https://github.com/Keno/Gallium.jl

鏈接:https://github.com/timholy/Rebugger.jl

我怎么知道我要用什么包

Julia 有一個(gè)由社區(qū)維護(hù)的網(wǎng)站用來幫助你從 1900 多個(gè)包里找出符合你需求的 Julia 包:

鏈接:https://juliaobserver.com/

一般來說用比較新的,star 比較多的包會(huì)好一些。然后如果你覺得某個(gè)包不錯(cuò),也請(qǐng)?jiān)?GitHub 上給一個(gè) star。

基本操作

當(dāng)你下載好了 Julia 之后,不論是 Julia Pro 還是單獨(dú)的 Julia 編譯器,你都可以先打開一個(gè) REPL(交互式編程環(huán)境),類似于 IPython 之于 Python,Julia 的 REPL 支持了基本的代碼高亮,文檔查看等功能。但是 Julia 的 REPL 更強(qiáng)大(這件事稍后再說)。

Windows/Mac 用戶:

雙擊 Julia 的三×××標(biāo),就能打開 REPL。在 Atom 里面的話在左上角有 Julia 一欄,點(diǎn)擊里面的 open terminal 即可。

Linux 用戶:

下載好以后去找到 bin 文件夾,然后把它加入你的 PATH 環(huán)境變量里去,以后就可以在命令行里直接通過 `julia` 命令啟動(dòng) REPL。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI