91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Julia真有這么神?你做好學(xué)習(xí)一門新編程語言的準(zhǔn)備了嗎?

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-08-13 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近年來,Julia 語言已然成為編程界的新寵。這門由 MIT CSAIL 實(shí)驗(yàn)室開發(fā)的編程語言結(jié)合了 C 語言的速度、Ruby 的靈活、Python 的通用性,以及其他各種語言的優(yōu)勢于一身,并且具有開源、簡單易掌握的特點(diǎn),大有潛力成為取代 Python 的下一個語言。

8 日,Julia 正式發(fā)布 1.0 版本。Julia 團(tuán)隊(duì)表示:“Julia 1.0 版本是我們?yōu)槿琊囁瓶实?a target="_blank">程序員構(gòu)建一種全新語言數(shù)十年來工作成果的巔峰?!?那么問題來了,Julia 真有這么神?你做好學(xué)習(xí)一門新編程語言的準(zhǔn)備了嗎?

為什么你應(yīng)該學(xué)習(xí) Julia?

從 2012 年到現(xiàn)在,Julia 1.0 在編程界已經(jīng)打出了自己的一片 “小天地”。截至發(fā)稿前,Julia 在 Github 上已經(jīng)獲得了 12293 顆星星,TOIBE8 月份編程語言排行榜上已迅速攀升至第 50 名。

Julia 之所以這么受歡迎,這與它解決了工程師們一個 “坑爹” 問題有關(guān):工程師們?yōu)榱嗽跀?shù)據(jù)分析中獲得速度和易用性,不得不首先用一種語言編碼,然后用另一種語言重寫,即很多人口中的“雙語言問題”。

與其他語言相比,Julia 易于使用,大幅減少了需要寫的代碼行數(shù);并且能夠很容易地部署于云容器,有更多的工具包和庫,并且結(jié)合了多種語言的優(yōu)勢。據(jù) Julia Computing 的宣傳,在七項(xiàng)基礎(chǔ)算法的測試中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。

目前 Julia 的應(yīng)用范圍已經(jīng)非常廣泛了,可以用于天文圖像分析、自動駕駛汽車、機(jī)器人和 3D 打印機(jī)、精準(zhǔn)醫(yī)療、增強(qiáng)現(xiàn)實(shí)、基因組學(xué)和風(fēng)險(xiǎn)管理等領(lǐng)域。

兩年前,諾貝爾經(jīng)濟(jì)學(xué)獎得主 Thomas Sargent 和澳大利亞國立大學(xué)的經(jīng)濟(jì)學(xué)教授 John Stachurski,共同建議紐約聯(lián)邦儲備銀行把其用于市場走勢預(yù)測和政策分析的 “動態(tài)隨機(jī)一般均衡模型(DSGE)” 轉(zhuǎn)到 Julia 語言平臺。在項(xiàng)目第一階段后,他們發(fā)現(xiàn),Julia 把模型運(yùn)行時間縮短至原先 Matlab 代碼的十分之一到四分之三。

除了語言本身的優(yōu)點(diǎn),Julia 還擁有非常強(qiáng)大的生態(tài)系統(tǒng),主要應(yīng)用于數(shù)據(jù)可視化、通用計(jì)算、數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、科學(xué)領(lǐng)域、并行計(jì)算六大領(lǐng)域。

Julia 在規(guī)模化機(jī)器學(xué)習(xí)領(lǐng)域?yàn)?a href="http://m.makelele.cn/v/tag/448/" target="_blank">深度學(xué)習(xí)、機(jī)器學(xué)習(xí)和 AI 提供了強(qiáng)大的工具(Flux 和 Knet)。Julia 的數(shù)學(xué)語法使其成為表達(dá)算法的理想方式,支持構(gòu)建具有自動差異的可訓(xùn)練模型,支持 GPU 加速和處理數(shù) TB 的數(shù)據(jù)。Julia 豐富的機(jī)器學(xué)習(xí)生態(tài)系統(tǒng)還提供監(jiān)督學(xué)習(xí)算法(如回歸、決策樹)、無監(jiān)督學(xué)習(xí)算法(如聚類)、貝葉斯網(wǎng)絡(luò)和馬爾可夫鏈蒙特卡羅包等。

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

所以說,Julia 火起來不是沒有原因的,而最新發(fā)布的 1.0 版本又添加了很多新功能。

按例,先貼上新版本相關(guān)鏈接:

Julia 1.0 試用版鏈接:

https://julialang.org/downloads/

GitHub 地址:https://github.com/JuliaLang/julia

目前支持 Julia 的平臺:

Julia 到底是怎樣一門語言?

Julia 首次公開面世時便體現(xiàn)出該社區(qū)對語言的一些強(qiáng)烈要求:

我們想要一種擁有自由許可的開源語言。我們想要它擁有 C 的速度與 Ruby 的靈活。它要容易理解,像 Lisp 一樣真正地支持宏,但也要有像 Matlab 一樣的明顯、熟悉的數(shù)學(xué)符號。它還要像 Python 一樣可用于通用編程,像 R 一樣易于統(tǒng)計(jì),像 Perl 一樣可自然地用于字符串處理,像 Matlab 一樣擅長線性代數(shù),像 shell 一樣擅長將程序粘合在一起??傊?,它既要簡單易學(xué),但也要讓最嚴(yán)肅的黑客開心。我們既希望它是交互式,也希望它是可編譯的。

現(xiàn)在,一個充滿活力和蓬勃發(fā)展的社區(qū)圍繞著這種語言成長起來,來自世界各地的人們在追求這一目標(biāo)的過程中不斷地精煉并重塑著 Julia。超過 700 人為 Julia 做出了貢獻(xiàn),還有很多人制作了數(shù)以千計(jì)的令人驚嘆的開源 Julia 軟件包。

總而言之,我們建立的語言:

快速:Julia 就是為高性能而設(shè)計(jì)的。Julia 程序通過 LLVM 編譯為多個平臺的高效本機(jī)代碼。

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

動態(tài):Julia 是動態(tài)類型的,就像一種腳本語言,并且很好地支持交互式使用。

技術(shù):它擅長于數(shù)值計(jì)算,其語法非常適合數(shù)學(xué),支持的數(shù)字?jǐn)?shù)據(jù)類型眾多,并具有開箱即用并行性。Julia 的多次調(diào)度非常適合定義數(shù)字和數(shù)組類型的數(shù)據(jù)類型。

(可選)鍵入:Julia 具有豐富的描述性數(shù)據(jù)類型語言,類型聲明可用于闡明和鞏固程序。

可組合:Julia 的軟件包可以很好地協(xié)同工作。單位數(shù)量矩陣,貨幣和顏色數(shù)據(jù)表都可以進(jìn)行,并且性能良好。

如果你要從 Julia 0.6 或更早版本升級代碼,我們建議首先使用過渡版 0.7,其中包括棄用警告幫助指導(dǎo)完成升級。如果你的代碼沒有警告,則可以更改為 1.0 而無需任何功能更改。已注冊的軟件包正在使用該過渡版本發(fā)布 1.0 兼容的更新。

1.0 更新了哪些功能?

當(dāng)然,Julia 1.0 中最重要的一個新功能是對語言 API 穩(wěn)定性的承諾:你為 Julia 1.0 編寫的代碼可以繼續(xù)在 Julia 1.1、1.2 等版本中運(yùn)行。該語言是 “已完善” 的,核心語言開發(fā)人員和社區(qū)都可以放心使用基于此版本的軟件包、工具和新功能。

但 Julia 1.0 更新的不僅是穩(wěn)定性,它還引入了一些強(qiáng)大、創(chuàng)新的語言功能。自 0.6 版以來,新發(fā)布的一些功能包括:

全新的內(nèi)置軟件包管理器性能得以大幅改進(jìn),使安裝包及其 dependencies 項(xiàng)變得前所未有的簡單。它還支持每個項(xiàng)目的包環(huán)境,并記錄工作應(yīng)用程序的確切狀態(tài),以便與他人和你自己進(jìn)行共享。最后,新的設(shè)計(jì)還引入了對私有包和包存儲庫的無縫支持。你可以使用與開源軟件包生態(tài)系統(tǒng)相同的工具來安裝和管理私有軟件包。JuliaCon 上展示了新功能設(shè)計(jì)的詳細(xì)情況:

https://www.youtube.com/watch?v=GBi__3nF-rM

Julia 有了一個新的規(guī)范表示缺失值(https://julialang.org/blog/2018/06/missing)。能夠表示和處理缺失的數(shù)據(jù)是統(tǒng)計(jì)和數(shù)據(jù)科學(xué)的基礎(chǔ)。與 Julian 的一貫風(fēng)格相符,這個新的解決方案具有通用性、可組合性和高性能。任何泛型集合類型都可以通過讓元素包含 missing 的預(yù)定義值來有效地支持缺失值。在以前的 Julia 版本中,這種 “聯(lián)合類型” 集合的性能會太慢,但編譯器的改進(jìn)現(xiàn)在使得 Julia 可以跟上其他系統(tǒng)中自定義 C 或 C ++ 缺失數(shù)據(jù)表示的速度,同時也更加通用和靈活。

內(nèi)置的 String 類型現(xiàn)在可以安全地保存任意數(shù)據(jù)。你的程序數(shù)小時甚至數(shù)天的工作不再會因?yàn)橐恍o效 Unicode 雜亂字節(jié)而失敗。保留所有字符串?dāng)?shù)據(jù),同時標(biāo)記哪些字符有效或無效,可以使你的應(yīng)用程序安全方便地處理不可避免具有缺陷的真實(shí)數(shù)據(jù)。

語法簡單的廣播(Broadcasting)已經(jīng)成為核心語言功能,現(xiàn)在它比以往任何時候功能都更強(qiáng)大。在 Julia 1.0 中,將廣播擴(kuò)展到自定義類型并在 GPU 和其他矢量化硬件上實(shí)現(xiàn)高效優(yōu)化計(jì)算變得更簡單,為將來提高性能提升鋪平了道路。

命名元組是一種新的語言特性,它使得通過名稱表示和訪問數(shù)據(jù)變得高效快捷。例如,你可以將一行數(shù)據(jù)表示為 row =(name =“Julia”,version = v“1.0.0”,releases = 8),并將版本列作為 row.version 訪問,其性能與不甚快捷的 row [2] 相同。

點(diǎn)運(yùn)算符現(xiàn)在可以重載,讓類型使用 obj.property 語法來獲取和設(shè)置結(jié)構(gòu)字段之外的含義。這對于使用 Python 和 Java 等基于類的語言更順暢地進(jìn)行互操作是個福音。屬性訪問器重載還允許獲取一列數(shù)據(jù)以匹配命名元組語法的語法:你可以編寫 table.version 來訪問表的 version 列,就像 row.version 訪問單行的 version 字段一樣。

Julia 的優(yōu)化器在很多方面變得比我們在這里提到的更聰明,但有一些亮點(diǎn)值得一提。優(yōu)化器現(xiàn)在可以通過函數(shù)調(diào)用傳播常量,可以更好地做到死碼消除和靜態(tài)評估。另外,編譯器在避免在長生命周期對象周圍分配短期包裝器方面也要好得多,這使得程序員可以使用便利的高級抽象而無需降低性能成本。

現(xiàn)在使用聲明相同的語法調(diào)用參數(shù)類型構(gòu)造函數(shù)。這消除了語言語法的模糊和令人困惑的地方。

迭代協(xié)議已經(jīng)完全重新設(shè)計(jì),以便更容易實(shí)現(xiàn)多種迭代。現(xiàn)在是一對一定義一個或兩個參數(shù)方法,而不是定義三個不同泛型函數(shù)的方法——start,next,和 done。這通常使得使用具有開始狀態(tài)的默認(rèn)值的單個定義可以更方便地定義迭代。更重要的是,一旦發(fā)現(xiàn)無法生成值就可以部署迭代器。這些迭代器在 I / O、網(wǎng)絡(luò)和生產(chǎn)者 / 消費(fèi)者模式中無處不在;Julia 現(xiàn)在可以用簡單直接的方式表達(dá)這些迭代器。

范圍規(guī)則簡化。無論名稱的全局綁定是否已存在,引入本地范圍的構(gòu)造現(xiàn)在都是一致的。這消除了先前存在的 “軟 / 硬范圍” 區(qū)別,并且意味著現(xiàn)在 Julia 可以始終靜態(tài)地確定變量是本地的還是全局的。

語言本身非常精簡,許多組件被拆分為 “標(biāo)準(zhǔn)庫” 軟件包,這些軟件包隨 Julia 一起提供但不屬于 “基礎(chǔ)” 語言。如果你需要它們,它可以給你方便(不需要安裝),但不會被強(qiáng)加給你。在未來,這也將允許標(biāo)準(zhǔn)庫獨(dú)立于 Julia 本身進(jìn)行版本控制和升級,從而允許它們以更快的速度發(fā)展和改進(jìn)。

我們對 Julia 的所有 API 進(jìn)行了徹底的審查,以提高一致性和可用性。許多模糊的遺留名稱和低效的編程模式已被重命名或重構(gòu),以更優(yōu)雅地匹配 Julia 的功能。這促使使用集合更加一致和連貫,以確保參數(shù)排序遵循整個語言的一致標(biāo)準(zhǔn),并在適當(dāng)?shù)臅r候?qū)ⅲìF(xiàn)在更快)關(guān)鍵字參數(shù)合并到 API 中。

圍繞 Julia 1.0 新功能的新外部包正在構(gòu)建中。例如:

正在改進(jìn)數(shù)據(jù)處理和操縱生態(tài)系統(tǒng),以利用新的缺失支持

Cassette.jl(https://github.com/jrevels/Cassette.jl)提供了一種強(qiáng)大的機(jī)制,可以將代碼轉(zhuǎn)換傳遞注入 Julia 的編譯器,從而實(shí)現(xiàn)事后分析和現(xiàn)有代碼的擴(kuò)展。除了用于分析和調(diào)試等程序員的工具之外,甚至可以實(shí)現(xiàn)機(jī)器學(xué)習(xí)任務(wù)的自動區(qū)分。

異構(gòu)體系結(jié)構(gòu)支持得到了極大的改進(jìn),并且與 Julia 編譯器的內(nèi)部結(jié)構(gòu)進(jìn)一步分離。英特爾 KNL 只能用 Julia 工作。Nvidia GPU 使用 CUDANative.jl(https://github.com/JuliaGPU/CUDAnative.jl)軟件包進(jìn)行編程,Google TPU 的端口正在開發(fā)中。

另外,Julia 1.0 還有無數(shù)其他大大小小的改進(jìn)。有關(guān)更改的完整列表,請參閱文件:https://docs.julialang.org/en/release-0.7/NEWS/。

在 2012 年的文章《為什么我們創(chuàng)造 Julia》這篇博客文章中(https://julialang.org/blog/2012/02/why-we-created-julia),我們寫道:

它不完整,但現(xiàn)在是 1.0 發(fā)布的時候——我們創(chuàng)建的語言叫做 Julia。

現(xiàn)在,我們提前叩響了 1.0 版本發(fā)布的扳機(jī),但它發(fā)布的時刻已然到來。真誠地為這些年來為這門現(xiàn)代化編程語言做出貢獻(xiàn)的人們感到驕傲。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7645

    瀏覽量

    145784
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1965

    瀏覽量

    39641
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8558

    瀏覽量

    137055

原文標(biāo)題:Python、C++、R 三位一體!Julia 1.0 重磅發(fā)布

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式單片機(jī)開發(fā)學(xué)習(xí)路徑

    嵌入式系統(tǒng)是現(xiàn)代科技的重要組成部分,廣泛應(yīng)用于智能家居、汽車電子、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。學(xué)習(xí)嵌入式單片機(jī)開發(fā)不僅能提升個人技能,還能開拓職業(yè)發(fā)展路徑。本文將為提供條詳細(xì)的嵌入式單片機(jī)開發(fā)
    發(fā)表于 02-09 15:42

    學(xué)單片機(jī)編程對數(shù)學(xué)英語有要求嗎

    單詞a-z就行,很多外行人看到代碼里堆英文就頭嗡嗡響,其實(shí)不然,只有少數(shù)語法是固定的,大多數(shù)英文都是工程師自己定義的,比如大神也可以定義成DaShen(中文縮寫)。 那很多人此時就開始質(zhì)疑,當(dāng)初這么
    發(fā)表于 02-02 06:24

    學(xué)習(xí)單片機(jī)快速方法

    學(xué)習(xí)單片機(jī)的快速方法 先介紹下單片機(jī)。把單片機(jī)說成是電子信息類專業(yè)最重要的一門課程點(diǎn)也不為過,在街上看到的廣告彩燈、煙花表演、紅綠燈、自動開關(guān)門這些都可以用單片機(jī)實(shí)現(xiàn)。有了單片機(jī),
    發(fā)表于 01-14 07:42

    單片機(jī)的入門準(zhǔn)備

    1、學(xué)習(xí)硬件是件非常燒錢的事情,這不同于純軟件編程和網(wǎng)頁設(shè)計(jì)只需要臺電腦和編程環(huán)境就
    發(fā)表于 12-22 07:39

    【乾芯QXS320F開發(fā)板試用】之julia分形測試

    是計(jì)算個簡單的數(shù)學(xué)分形:Julia集。 這種數(shù)學(xué)對象的生成算法非常簡單:對于復(fù)平面的每個點(diǎn),我們對個定義序列的發(fā)散速度進(jìn)行估計(jì)。該序列的Julia集方程為: zn+1 = zn2
    發(fā)表于 12-15 02:48

    為什么單片機(jī)還在用C語言編程

    最適合單片機(jī)開發(fā)的編程語言實(shí)在太過晦澀難懂,學(xué)習(xí)起來非常的不方便,并且每種單片機(jī)的匯編指令有很大區(qū)別,所以想把個程序從這種單片機(jī)移植到另
    發(fā)表于 11-28 07:37

    C語言和單片機(jī)C語言有什么差異

    有些擴(kuò)展,及些特殊寫法如C51擴(kuò)展的 data xdata bit sbit類的,還有些中斷程序?qū)懛?void int() interrput 1類的。 2、C是
    發(fā)表于 11-14 07:55

    文了解Mojo編程語言

    Mojo 是種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結(jié)合,特別適合人工智能(AI)、高性能計(jì)算(HPC)和系統(tǒng)級
    發(fā)表于 11-07 05:59

    工業(yè)上面為什么有這么多通訊協(xié)議?

    編程語言還多。 那問題來了——為什么工業(yè)上會有這么多通訊協(xié)議?難道不能像電腦樣,統(tǒng)一一個以太網(wǎng)協(xié)議就行了嗎?今天, 深圳市鋇錸技術(shù)有限公司
    的頭像 發(fā)表于 10-21 17:55 ?674次閱讀
    工業(yè)上面為什么<b class='flag-5'>有這么</b>多通訊協(xié)議?

    入行嵌入式應(yīng)該怎么準(zhǔn)備?

    知識: 、C/C++編程C/C++是嵌入式系統(tǒng)開發(fā)中最常用的編程語言。熟練掌握C/C++語言將使
    發(fā)表于 08-06 10:34

    ARM入門學(xué)習(xí)方法分享

    )架構(gòu)。學(xué)習(xí)ARM的開始可以從學(xué)習(xí)RISC和CISC架構(gòu)的基礎(chǔ)知識開始。 二、學(xué)習(xí)匯編語言:ARM架構(gòu)的核心是匯編語言。
    發(fā)表于 07-23 10:21

    做好PCBA貼片加工?這些前期準(zhǔn)備工作要做好!

    站式PCBA加工廠家今天為大家講講PCBA貼片加工前的準(zhǔn)備工作有哪些?PCBA貼片加工前的準(zhǔn)備工作。在PCBA代工過程中,貼片加工前的準(zhǔn)備工作是確保電路板性能穩(wěn)定和生產(chǎn)效率高的基礎(chǔ)。
    的頭像 發(fā)表于 06-25 09:23 ?736次閱讀
    想<b class='flag-5'>做好</b>PCBA貼片加工?這些前期<b class='flag-5'>準(zhǔn)備</b>工作要<b class='flag-5'>做好</b>!

    所以做出來了嗎

    所以做出來了嗎,求
    發(fā)表于 06-16 01:43

    跟老齊學(xué)Python:從入門到精通

    礎(chǔ)的學(xué)習(xí)者介紹一門時下比較流行、并且用途比較廣泛的編程語言,所以,本書讀起來不晦澀,并且在其中穿插了很多貌似與Python 編程無關(guān),但與
    發(fā)表于 06-03 16:10

    這么多內(nèi)網(wǎng)穿透工具怎么選?篇讓不再糾結(jié)的終極指南!

    穿透工具就是的救星! 但問題來了—— 市面上這么多工具,Ngrok、FRP、ZeroNews……到底該選哪個? 別急,這篇文章將帶你全面了解各種內(nèi)網(wǎng)穿透方案的優(yōu)缺點(diǎn),幫你找到最適合自己的那款!
    的頭像 發(fā)表于 05-13 16:06 ?1287次閱讀
    <b class='flag-5'>這么</b>多內(nèi)網(wǎng)穿透工具怎么選?<b class='flag-5'>一</b>篇讓<b class='flag-5'>你</b>不再糾結(jié)的終極指南!