自從去年年底以來,關於Julia這門語言的風聲都甚囂塵上,讓人有一種不學習就要掉隊的衝動。但是對於媒體鼓吹的Julia可以打敗python,甚至是取代C++的無腦言論通常事嗤之以鼻的,一群從事鍵盤編輯的文字工作者懂個毛線編程?
TL;DR
Julia目前來講還無法打敗任何一門編程語言,但是它可以讓你從龐大的matlab中解放出來,並且你自學量子力學或者量子計算可能用得到它!, 於此同時,這篇文章就是你的第一個Julia入門教程!
image.png
關於Julia這們語言,有五件事情你需要知道即可,或許讀完它就可以打消你心中的所有疑問:
在進行Julia的hello world教程之前,我想先把牛×吹完。Julia到底有著什麼樣的優點呢?為了讓大家有一個全方位的了解,讓我們來和現有的一些語言來對比對比。
越來越多科研工作者開始使用動態語言進行科學研究,科學研究往往需要速度,但是現在的動態語言都太慢了。我們如果設計一個速度快到超越光速的語言,那豈不是皆大歡喜?好吧,那就叫做Julia吧,於是這門語言就誕生了。
簡單來說,Julia的優點在於:
f(x)=2x+4
但是Julia是不是萬能的呢?這麼優秀,是不是可以轉學Julia從次走向人生巔峰呢?當然不能,就目前看來,Julia局限於這些應用:
但是如果你是一位不是那麼追求名利的虛心學習者,你已經看破了紅塵,看通了宇宙奧義,想終身學習一些虛無的東西,那麼你可以使用它。比如它就可以幫助你打開量子力學領域的大門,各種開箱即用的數學函數、各種複數支持、各種自動求導絕對可以幫助你在成為波爾的道路上更進一步。
Julia的安裝非常簡單,從這裡下載對應的文件:https://julialang.org/。 將解壓之後的bin目錄添加到你的PATH中。就可以在命令行中看到:
bin
~/julia/bin julia [19:42:22] _ _ _ _(_)_ | Documentation: https://docs.julialang.org (_) | (_) (_) | _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 1.1.0 (2019-01-21) _/ |\___|_|_|\___| | Official https://julialang.org/ release |__/ |
julia>
當前最新版本為1.1,這也是一個較為穩定的版本,標誌著Julia其實已經趨於成熟。
正常情況下,入門一門語言只需要一個好的教程,而一個好的教程往往需要多一些廢話,比如說我們這個教程。我們不打算吧所有類型,函數,循環語句像譚浩強一樣挨個念一遍C語言文檔,而是挑選幾個可能讓大家覺得比較喜歡的特性,激發一下大家的興趣。
首先,你在命令行輸入julia , 就能跟我們一起來互動了。Julia有一個很牛逼的功能,叫做內置參數,比如輸入:
julia
julia> pi π = 3.1415926535897...
你就能看到圓周率,很吊有木有!!很多人會說:切,這尼瑪不就是一個內置的宏定義嗎?如果這沒什麼那麼看一下這個操作:
julia> a=3 3 julia> 2a 6 julia>
execuse me??? 2a這樣的操作也可以?這在Python裡面直接給你SyntaxError: invalid syntax!理解了我剛才說的面向數學了嗎?我們以前有時候也會犯這個錯誤,但是Julia裡面天生支持。
2a
SyntaxError: invalid syntax
定義一個函數我們能做到的最簡單的語句是啥?很多人會說python有lamda表達式,C++也有,但是你看一下這個操作:
f(x)=2x+4 b=f(3)
你會認為它事一門語言嗎????而是Julia就能看懂,並且能告訴你結果是10!這個已經很智能了好嗎?如果說未來最適合教給小學生的編程語言,我一定不會推薦Python,而應該事Julia!
開局便是一個幺。這是個什麼?四川麻將?當然不是,這是一個你可能聽都沒有聽過的量子計算Julia庫!
是的你沒有聽錯,我打算從這裡帶你進入由Julia這門語言建立起來的量子計算生態圈!
yao.jl這個庫用官方的描述語言來說就是:
yao.jl
* quantum algorithm design; * quantum [software 2.0](https://medium.com/@karpathy/software-2-0-a64152b37c35); * quantum computation education.
面向於量子計算的演算法庫,用於量子計算演算法教育。這個庫的github地址為:https://github.com/QuantumBFS/Yao.jl/
當然對於這個庫以及關於由本文引出的一個尚處於萌芽狀態的全新領域:量子機器學習,我們a將會在本專欄下一個文章中進行一些細緻的講解。
關注最先進黑科技,歡迎大家訪問奇異AI網站 http://codes.strangeai.pro 進一步了解