中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

未來明星語言 Julia 或成 Python 勁敵

2019-08-12    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

去年今日,MIT Julia Lab 推出了 Julia 1.0 版。一年來,它的表現(xiàn)如何?

據(jù) MIT 報道,截至 2018 年底,Julia 的下載量超過 300 萬,并在超過 1500 所大學中用于科學和數(shù)值計算。根據(jù) 2019 年 8 月 TIOBE 編程語言指數(shù),Julia 從 7 月的第 50 名升至第 39 名,在眾多語言中上升幅度顯著。今年 7 月,在將 Python 解釋器移植到 Firefox 之后,Mozilla 出資將 Julia 引入 Firefox 和一般瀏覽器……

最近,Julia 開發(fā)團隊對來自 90 多個國家的 1844 名 Julia 用戶和開發(fā)人員進行了調(diào)查,結(jié)果顯示,93% 的受訪者喜愛 Julia,Python、C 排名第二、三位,分別獲得 61% 和 27% 的投票率。這份完整的調(diào)查報告在今年7 月底的JuliaCon 上發(fā)布。在此次會議上,開發(fā)者還宣布將發(fā)布一個全新的Julia 線程接口—— 受到 Cilk 、 Intel Threading Building Blocks (TBB) 以及 Go 等啟發(fā)的通用任務(wù)并行機制?雌饋,Julia 的進化正在穩(wěn)步有序地進行著。

Julia 會是編程語言中的“黑馬”嗎?你是否已經(jīng)準備好學習這門崛起中的新語言了呢?

Julia 是什么?

Julia 誕生于 MIT 計算機科學與人工智能實驗室 (CSAIL) 和數(shù)學系,由 Jeff Bezanson 博士、前 MIT Julia Lab 研究員 Stefan Karpinski、Viral B. Shah 和數(shù)學系教授 Alan Edelman 于 2009 年創(chuàng)建,并于 2012 年公開發(fā)布。開發(fā)者在 2012 年 2 月的博客中寫道,

“我們想要的是一種自由開源的語言,它同時擁有 C 的速度和 Ruby 的動態(tài)性;我們想要一個具有同像性(可以將語言的腳本本身當作數(shù)據(jù)進行處理)的語言, 它有著真正的和 Lisp 一樣的宏,但卻像 MATLAB 一樣有著顯著的,類似于數(shù)學表達式的標記;我們想要一個可以像 Python 一樣作為通用編程語言的工具, 像 R 那樣適用于統(tǒng)計分析,像 Perl 那樣自然地處理字符串,像 MATLAB 那樣給力地處理矩陣運算,它還要能像 Shell 一樣作為膠水將各種程序粘合在一起;我們想要一個簡單易學的語言,同時還能讓最苛刻的黑客們開心。我們希望它是交互式的,但我們也希望它能被編譯。”

Julia 是一門靈活的動態(tài)語言,適用于科學計算和數(shù)值計算,其性能可與傳統(tǒng)的靜態(tài)類型語言媲美。它具有如下特點:

快速:Julia 一開始就是為高性能而設(shè)計的。Julia 可以通過 LLVM 而跨平臺被編譯成高效的本地代碼。

通用:Julia 使用多重派發(fā)作為編程范式,使其更容易表達面向?qū)ο蠛秃瘮?shù)式編程范式。標準庫提供了異步 I/O、進程控制、日志記錄、性能分析、包管理器等等。

動態(tài):Julia 是動態(tài)類型的,與腳本語言類似,并且對交互式使用具有很好的支持。

數(shù)值計算:Julia 擅長于數(shù)值計算,它的語法適用于數(shù)學計算,支持多種數(shù)值類型,并且支持并行計算。Julia 的多分派自然適合于定義數(shù)值和類數(shù)組的數(shù)據(jù)類型。

可選的類型標注:Julia 擁有豐富的數(shù)據(jù)類型描述,類型聲明可以使得程序更加可讀和健壯。

可組合:Julia 的包可以很自然的組合運行。單位數(shù)量的矩陣或數(shù)據(jù)表一列中的貨幣和顏色可以一起組合使用并且擁有良好的性能。

2018 年 12 月,Julia 的三位聯(lián)合開發(fā)者 Bezanson、Karpinski 和 Shah 獲得 2019 年 James H.Wilkinson 數(shù)字軟件獎。根據(jù)選拔委員會的一份聲明,“Julia 允許研究人員以直觀的語法編寫高級代碼,并以生產(chǎn)編程語言的速度生成代碼。它已被科學計算界廣泛采用,包括天文學、經(jīng)濟學、深度學習、能源優(yōu)化和醫(yī)學等應(yīng)用領(lǐng)域。尤為特別的是,美國聯(lián)邦航空管理局選擇 Julia 作為下一代機載防撞系統(tǒng)的語言。”

在 GitHub 上有 Julia 應(yīng)用于計算生物學、統(tǒng)計學、機器學習、圖像處理、微分方程和物理學等領(lǐng)域的小組。根據(jù)最新調(diào)查報告,目前,Julia 的主要應(yīng)用領(lǐng)域包括統(tǒng)計學與數(shù)據(jù)科學、工程學、機器學習、計算機科學、物理學、數(shù)學、人工智能、信號與圖像處理等。73% 的用戶使用 Julia 從事科研工作,54% 的用戶將其用于個人工作,16% 的用戶將其用于教學。

 

 

與 Python 的區(qū)別

Julia 需要用 end 來結(jié)束代碼塊。與 Python 不同,Julia 沒有 pass 關(guān)鍵字。

在 Julia 中,數(shù)組、字符串等的索引從 1 開始,而不是從 0 開始。

Julia 的切片索引包含最后一個元素,這與 Python 不同。Julia 中的 a[2:3] 就是 Python 中的 a[1:3]。

Julia 不支持負數(shù)索引。特別地,列表或數(shù)組的最后一個元素在 Julia 中使用 end 索引,而不像在 Python 中使用 -1。

Julia 的 for、if、while 等代碼塊由 end 關(guān)鍵字終止?s進級別并不像在 Python 中那么重要。

Julia 沒有用來續(xù)行的語法:如果在行的末尾,到目前為止的輸入是一個完整的表達式,則認為已經(jīng)結(jié)束;否則,認為輸入繼續(xù)。強制表達式繼續(xù)的一種方式是將其包含在括號中。

默認情況下,Julia 數(shù)組是列優(yōu)先的(Fortran 順序),而 NumPy 數(shù)組是行優(yōu)先(C 順序)。為了在循環(huán)數(shù)組時獲得最佳性能,循環(huán)順序應(yīng)該在 Julia 中相對于 NumPy 反轉(zhuǎn)(請參閱 Performance Tips 中的對應(yīng)章節(jié))。

Julia 的更新運算符(例如 +=,-=,···)是 not in-place,而 Numpy 的是。這意味著 A = [1, 1]; B = A; B += [3, 3] 不會改變 A 中的值,而將名稱 B 重新綁定到右側(cè)表達式 B = B + 3 的結(jié)果,這是一個新的數(shù)組。對于 in-place 操作,使用 B .+= 3(另請參閱 dot operators )、顯式的循環(huán)或者 InplaceOps.jl。

每次調(diào)用方法時,Julia 都會計算函數(shù)參數(shù)的默認值,不像在 Python 中,默認值只會在函數(shù)定義時被計算一次。例如,每次無輸入?yún)?shù)調(diào)用時,函數(shù) f(x=rand()) = x 都返回一個新的隨機數(shù)在另一方面,函數(shù) g(x=[1,2]) = push!(x,3) 在每次以 g() 調(diào)用時返回 [1,2,3]。

在 Julia 中,% 是余數(shù)運算符,而在 Python 中是模運算符。

與 MATLAB、R、C/C++ 的區(qū)別詳見文檔。

為什么用 Julia?

Julia 最受歡迎的技術(shù)特征包括快速和高性能、易于使用、開源、多重派發(fā)以及解決了兩種語言問題;最受歡迎的非技術(shù)特征包括自由、社區(qū)開發(fā)者富有才華且活躍、易于創(chuàng)建包以及采用 MIT 許可證。

 

 

 

 

Julia 最大的技術(shù)問題在于包并不像所需的那樣成熟或維護良好、生成第一個圖需要很長時間;最大的非技術(shù)問題在于同事、公司或合作者使用其他語言,在用戶所在的領(lǐng)域 / 行業(yè)中,沒有足夠的 Julia 用戶。

 

 

 

 

據(jù)外媒 ZDNet 此前發(fā)布的數(shù)據(jù),Julia 的 GitHub Star 數(shù)在過去一年翻了一番,該語言還被 1000 多種學術(shù)出版物引用。

 

 

 

 

關(guān)于”為什么你會使用 Julia“的問題,52% 的受訪者表示,Julia 似乎是未來的語言,43% 的人認為,它能使工作速度更快。

 

 

你是否已經(jīng)準備好學習這門新語言了嗎?

相關(guān)文章:

Julia: The programming language of the future?

Julia programming language: Users reveal what they love and hate the most about it

視頻:JuliaCon 2019 | Julia User and Developer Survey (2019)

標簽: Julia Python 編程語言

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:使用 TiDB 進行實時數(shù)據(jù)分析

下一篇:前端必看的數(shù)據(jù)可視化入門指南