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

IT正式發(fā)布編程語言Julia 1.0:Python、R、C++三合一

2018-08-10    來源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
MIT 開發(fā)的 Julia 語言是全球熱度上升最快的編程語言之一,下載量超過 200 萬次,下載者包括谷歌、Facebook、FAA 和美國能源部等各個(gè)部門的開發(fā)者。近日,MIT CSAIL 實(shí)驗(yàn)室正式發(fā)布了 Julia 1.0,該語言期望結(jié)合 C 的速度、Matlab 的數(shù)學(xué)表征、Python 的通用編程與 Shell 的膠水命令行,并構(gòu)建開源、自由與便捷的編程語言。

Julia 語言的官網(wǎng):https://julialang.org/

Julia 語言項(xiàng)目地址:https://github.com/JuliaLang

在過去一年中,研究者利用 Julia 在一臺(tái)超級(jí)計(jì)算機(jī)上分析天文圖像,速度提升了 1000 倍,在 15 分鐘內(nèi)將接近 2 億個(gè)天體進(jìn)行分類。從技術(shù)上來看,這種語言還會(huì)長期發(fā)展下去。然而,現(xiàn)在是一個(gè)里程碑的時(shí)刻:在本周于倫敦舉辦的 Julia 語言年會(huì)上,Julia 1.0 正式發(fā)布!一起發(fā)布的還有 JuliaCon。

Julia 的開發(fā)者之一、就職于 MIT 計(jì)算機(jī)科學(xué)與人工智能實(shí)驗(yàn)室(CSAIL)的教授 Alan Edelman 表示:「Julia 1.0 的發(fā)布證明,該語言已經(jīng)做好準(zhǔn)備,將 Python 和 R 的高效性和易用性與 C++的閃電速度結(jié)合在一起,改變技術(shù)世界!

從實(shí)際應(yīng)用來說,Julia 已經(jīng)用于自動(dòng)駕駛汽車、機(jī)器人和 3D 打印機(jī),此外還廣泛應(yīng)用于精準(zhǔn)醫(yī)療、增強(qiáng)現(xiàn)實(shí)、基因組學(xué)及風(fēng)險(xiǎn)管理。從 Julia 的生態(tài)系統(tǒng)來說,目前它主要的特征或應(yīng)用領(lǐng)域?yàn)閿?shù)據(jù)可視化、一般性的 UI 與網(wǎng)站、數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、科學(xué)計(jì)算與平行計(jì)算等。

 

 

Julia 目前下載量已經(jīng)達(dá)到了 200 萬次,且 Julia 社區(qū)開發(fā)了超過 1900 多個(gè)擴(kuò)展包。這些擴(kuò)展包包含各種各樣的數(shù)學(xué)庫、數(shù)學(xué)運(yùn)算工具和用于通用計(jì)算的庫。除此之外,Julia 語言還可以輕松使用 Python、R、C/C++ 和 Java 中的庫,這極大地?cái)U(kuò)展了 Julia 語言的使用范圍。

Julia 1.0

備受期待的 Julia1.0 累積了開發(fā)者近十年的努力。JuliaCon2018 舉行了發(fā)布會(huì),該社區(qū)正式將該版本設(shè)置為 1.0.0.。

Julia 開發(fā)者對(duì)該語言提出了很多需求:

我們想要一種十分自由的開源語言,同時(shí)兼具 C 語言的速度和 Ruby 語言的靈活度。我們想要一種同像性語言,具有像 Lisp 一樣真正的宏,也有像 Maltlab 一樣淺顯易懂的數(shù)學(xué)符號(hào)。它是像 Python 一樣有用的通用編程語言,像 R 語言一樣便于統(tǒng)計(jì)的語言,像 Perl 一樣自然的字符串處理語言,像 Matlab 一樣強(qiáng)大的線性代數(shù)語言,也是像 shell 一樣的「膠水語言」。它簡單易學(xué),卻能讓嚴(yán)苛的黑客們?yōu)橹畠A心。我們希望它兼具交互性和可編譯性。

圍繞這一語言,一個(gè)欣欣向榮的社區(qū)已經(jīng)蓬勃發(fā)展起來,為了同一目標(biāo),世界各地的人們不斷地重塑并改進(jìn)著 Julia。超過 700 人對(duì) Julia 做出了實(shí)質(zhì)性貢獻(xiàn),更有不計(jì)其數(shù)的人制造了數(shù)千個(gè)驚人的 Julia 開源包?傊覀儤(gòu)建了一種這樣的語言:

快速:Julia 為高性能而生。Julia 程序通過 LLVM 為多個(gè)平臺(tái)編譯高效的本地代碼。

通用:它使用多分派作為范例,使得表達(dá)許多面向?qū)ο蠛秃瘮?shù)式的編程模式變得容易。標(biāo)準(zhǔn)庫提供異步 I/O、進(jìn)程控制、日志記錄、性能分析、包管理器等。

動(dòng)態(tài):Julia 是動(dòng)態(tài)型語言,與腳本語言類似,并且支持交互式使用。

專業(yè):它擅長數(shù)值計(jì)算,其語法適用于數(shù)學(xué),支持多種數(shù)值數(shù)據(jù)類型,并具有良好并行性。Julia 的多分派天生適合定義數(shù)字和類數(shù)組的數(shù)據(jù)類型。

多樣:Julia 擁有豐富的描述性數(shù)據(jù)類型,類型聲明使程序條理清晰且穩(wěn)定。

可組合:Julia 的包可以很好地組合在一起。單位數(shù)量的矩陣,或者貨幣和顏色的數(shù)據(jù)列表,都可以組合——而且性能很好。

現(xiàn)在 Julia 1.0 版本已經(jīng)可以下載了。如果你從 Julia 0.6 或更早的版本升級(jí)代碼,我們建議你首先使用過渡版本 0.7,它包含了棄用警告,可以幫助引導(dǎo)升級(jí)過程。如果你的代碼沒有警告,那么你就可以直接變更到 1.0 版本而不會(huì)產(chǎn)生任何功能性的改變。已注冊(cè)軟件包正利用 0.7 這個(gè)過渡版本,并發(fā)布了 1.0 的兼容更新。

當(dāng)然,Julia 1.0 中最重要的一個(gè)新特征是對(duì)語言 API 穩(wěn)定性的承諾:為 Julia 1.0 編寫的代碼可以繼續(xù)在 Julia 1.1、1.2 等版本上使用。該語言是「完全成熟的」,核心語言開發(fā)者和社區(qū)都可以基于這個(gè)堅(jiān)實(shí)的基礎(chǔ)構(gòu)建新的包、工具和特征。

Julia 1.0 不僅涉及穩(wěn)定性,還引入了多種新的強(qiáng)大、創(chuàng)新性語言功能。自 0.6 版本以來的新功能如下,更多詳細(xì)與準(zhǔn)確的內(nèi)容請(qǐng)查看更新文檔原文:

一種全新的內(nèi)置程序包管理器給 Julia 1.0 帶來巨大的性能提升,并令其相比以往更容易進(jìn)行程序包和依賴庫安裝。它還支持每項(xiàng)目(per-project)的包環(huán)境,并記錄工作應(yīng)用的明確狀態(tài)來和其他人(以及你的未來項(xiàng)目)共享。最后,該新設(shè)計(jì)還完全支持私人包和軟件包存儲(chǔ)庫。你可以使用相同的工具安裝和管理你用于開源包生態(tài)系統(tǒng)的私人包。JuliaCon 的展示視頻對(duì)新設(shè)計(jì)和行為提供了很好的概述。

Julia 擁有對(duì)缺失值的新的標(biāo)準(zhǔn)表示。允許表示和處理缺失數(shù)據(jù)對(duì)于統(tǒng)計(jì)和數(shù)據(jù)科學(xué)來說是很基礎(chǔ)的。在典型的 Julia 編程形式中,新的解決方案是通用的、可組合的和高性能的。任何泛用群集類型可以高效地支持缺失值,僅需要允許元素包含預(yù)定義值 missing。這種「統(tǒng)一類型化」的群集的性能在過去版本中可能會(huì)非常慢,但如今的編譯器改進(jìn)已經(jīng)允許 Julia 在其它系統(tǒng)中匹配自定義 C 或 C++的缺失值表示的速度,同時(shí)在通用性和靈活性上也遠(yuǎn)遠(yuǎn)超越過去的版本。

內(nèi)置的 String 類型現(xiàn)在可以安全地支持任意數(shù)據(jù)。你的程序不會(huì)在一項(xiàng)工作中因?yàn)闊o效 Unicode 的單個(gè)丟失字節(jié)就浪費(fèi)數(shù)小時(shí)或數(shù)天的時(shí)間。所有的字符串?dāng)?shù)據(jù)在指示哪些字符是有效或無效的同時(shí)就已經(jīng)被保存,允許你的應(yīng)用安全、方便地處理包含所有不可避免瑕疵的真實(shí)世界數(shù)據(jù)。

廣播(broadcasting)由于方便的語法特性已經(jīng)成為了一種核心的語言功能,并且已經(jīng)比過去更加強(qiáng)大。在 Julia 1.0 中,可以很簡單地將廣播擴(kuò)展到自定義類型,并在 GPU 和其它向量化硬件上實(shí)現(xiàn)高效的優(yōu)化計(jì)算,為未來更高的性能效益奠定了基礎(chǔ)。

命名元數(shù)組是一種新的語言功能,可以通過命名使數(shù)據(jù)表示和訪問更加高效和方便。例如,你可以將一行數(shù)據(jù)表示為 row = (name="Julia", version=v"1.0.0", releases=8),并使用 row.version 來訪問 version 列,它與不那么便利的 row [2] 有相同的性能。

點(diǎn)運(yùn)算符現(xiàn)在可以重載,并允許類型使用 obj.property 句法獲取除 getting 和 setting 結(jié)構(gòu)域外的含義。這對(duì)于使用 Python 和 Java 等面向?qū)ο笳Z言之間更加平滑的交互操作非常有用。屬性訪問器重載還允許獲取一列數(shù)據(jù)的語法匹配命名元組的語法:你可以編寫 table.version 以訪問表中的 version 列,這就和使用 row.version 訪問行的 version 字段一樣。

Julia 優(yōu)化器在很多方面比我們列出來的特征還要優(yōu)秀,但這里只會(huì)提一些亮點(diǎn)。優(yōu)化器現(xiàn)在可以通過函數(shù)調(diào)用傳播常數(shù),因此比以前能更好地消除無用代碼和實(shí)現(xiàn)靜態(tài)評(píng)估。編譯器在避免為長期目標(biāo)分配短期包裝器方面也做得更好,這使得開發(fā)者能使用便捷的高級(jí)抽象并且不會(huì)產(chǎn)生性能損失。

現(xiàn)在可以用聲明參數(shù)類型的構(gòu)造函數(shù)的方式調(diào)用它們自己,這消除了語言句法中令人困惑且模糊的地方。

完全重新設(shè)計(jì)迭代協(xié)議,使之更易實(shí)現(xiàn)多種可迭代量。Julia 1.0 沒有設(shè)計(jì)三種不同泛型函數(shù)(start、next、done)的方法,而是設(shè)計(jì) iterate 函數(shù)的一參數(shù)和二參數(shù)方法。這通常允許在開始狀態(tài)使用包含默認(rèn)值的單一定義來便捷地定義迭代。更重要的是,這使得實(shí)現(xiàn)只在嘗試并無法生成值后才知道它們已經(jīng)被實(shí)施過的迭代器成為可能。這些迭代器在輸入/輸出(I/O)、網(wǎng)絡(luò)和生產(chǎn)者/消費(fèi)者模式中是非常普遍的,Julia 可以用一種直接、準(zhǔn)確的方式表達(dá)這些迭代器。

作用域規(guī)則(scope rule)被簡化。局部作用域的結(jié)構(gòu)現(xiàn)在可以一致地進(jìn)行使用,不用管某命名的全局約束是否已經(jīng)存在。

Julia 語言本身是非常好的學(xué)習(xí)器,很多組件被分割封裝進(jìn) Julia 的「標(biāo)準(zhǔn)庫」包,而不是作為「基礎(chǔ)」語言的一部分。如果你需要它們,可以導(dǎo)入它們(無需安裝)。未來,標(biāo)準(zhǔn)庫還將出現(xiàn)多種版本,并獨(dú)立于 Julia 更新,這使得它們可以更快地迭代。

我們已經(jīng)對(duì) Julia 的所有 API 進(jìn)行了完全的評(píng)議,以改善穩(wěn)定性和可用性。對(duì)很多模糊的已有命名和無效的編程模式進(jìn)行了重命名或重構(gòu),使之更匹配 Julia 的能力。這使得處理集合更加穩(wěn)定和一致,以確保參數(shù)順序遵循 Julia 語言中一貫的標(biāo)準(zhǔn),并在恰當(dāng)?shù)那闆r下將(更快的)關(guān)鍵詞參數(shù)整合進(jìn) API。

現(xiàn)在圍繞 Julia 1.0 的新功能專門構(gòu)建了許多新的外部軟件包,如數(shù)據(jù)處理和操作生態(tài)系統(tǒng)的改進(jìn)和異構(gòu)架構(gòu)支持的改進(jìn)等。

Julia 1.0 還包括了無數(shù)其它的改進(jìn),如果想查看完整的列表,請(qǐng)?jiān)L問:https://docs.julialang.org/en/release-0.7/NEWS/

標(biāo)簽: isp 安全 代碼 谷歌 腳本 開發(fā)者 網(wǎng)絡(luò)

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

上一篇:幾種流行的大數(shù)據(jù)分析產(chǎn)品模型預(yù)測(cè)功能介紹

下一篇:2019人工智能學(xué)術(shù)會(huì)議列表,所有Deadline都在這里