
集 Python、C、R、Ruby 之所長,動態(tài)編程語言 Julia 1.0 正式發(fā)布
動態(tài)編程語言 Julia 迎來了 1.0 正式版本,下載地址:
https://julialang.org/downloads/
Julia 可以看作是一門集眾家之所長的編程語言,在首次公開時開發(fā)團(tuán)隊就已明確其需求:
我們想要一種擁有自由許可的開源語言,同時擁有 C 的速度和 Ruby 的靈活。我們想要一種同像性語言,有像 Lisp 這樣真正的宏,也有像 Matlab 這樣的淺顯熟悉的數(shù)學(xué)符號。我們想要一門像 Python 一樣可用于通用編程,像 R 一樣易于統(tǒng)計,像 Perl 一樣自然地用于字符串處理,像 Matlab 一樣強(qiáng)大的線性代數(shù),像 shell 一樣擅長將程序粘合在一起的語言。它簡單易學(xué),卻能讓嚴(yán)苛的黑客為之傾心。我們希望它是交互式的,具備可編譯性。
開發(fā)團(tuán)隊表示,圍繞這一語言,一個充滿活力的社區(qū)已蓬勃發(fā)展起來,為實現(xiàn)同一目標(biāo),來自世界各地的開發(fā)者們不斷地重塑并精煉 Julia 。超過 700 人對 Julia 做出了實質(zhì)性貢獻(xiàn),還有更多的人數(shù)以千計的令人驚嘆的 Julia 開源包??傊覀儤?gòu)建了這樣一種語言:
快速:Julia 為高性能而生。Julia 程序通過 LLVM 為多個平臺編譯高效本地代碼。
通用:它使用多分派(multiple dispatch)作為范例,使得表達(dá)許多面向?qū)ο蠛秃瘮?shù)式編程模式變得容易。標(biāo)準(zhǔn)庫提供異步 I / O 、進(jìn)程控制、日志記錄、性能分析、包管理器等。
動態(tài):Julia 是動態(tài)編程語言,與腳本語言相似,并且對交互式使用有很好的支持。
專業(yè):它擅長于數(shù)值計算,其語法非常適合數(shù)學(xué),支持多種數(shù)字?jǐn)?shù)據(jù)類型,和開箱即用的并行性。Julia 的多分派非常適合定義數(shù)字和數(shù)組類型的數(shù)據(jù)類型。
(可選)多樣:Julia 具有豐富的描述性數(shù)據(jù)類型,類型聲明可用于闡明和鞏固程序。
可組合:Julia 的包可以很好地協(xié)同工作。單位數(shù)量的矩陣,或貨幣和顏色的數(shù)據(jù)表列都可以組合工作 - 并具有良好的性能。
想要嘗試 1.0 的用戶,如果是從 Julia 0.6 或更早版本升級代碼,建議先使用 0.7 過渡版。0.7 版本包括棄用警告,可以幫助指導(dǎo)你完成升級過程。等到你的代碼不再出現(xiàn)警告,就可以直接升級至 1.0 而不會產(chǎn)生任何功能性更改。已注冊的軟件包也正在利用 0.7 的過渡期發(fā)布 1.0 兼容的更新。
當(dāng)然,Julia 1.0 中最重要的一個新特性是對語言 API 穩(wěn)定性的承諾:你為 Julia 1.0 編寫的代碼將可以繼續(xù)在 Julia 1.1、1.2 等版本中運行。語言是“完全成熟的”,核心語言開發(fā)者和社區(qū)都可以專注于基于這個堅實的基礎(chǔ)去構(gòu)建軟件包、工具和新特性。
Julia 1.0 不僅僅涉及穩(wěn)定性,還引入了一些新的、強(qiáng)大的和創(chuàng)新的語言功能。自 0.6 版本以來的一些新特性包括:
全新的內(nèi)置包管理器帶來了巨大的性能改進(jìn),使包及其依賴項安裝變得前所未有的簡單。它還支持 per-project 的包環(huán)境,并記錄工作應(yīng)用的確切狀態(tài),以便與他人共享 - 以及你未來的項目。此外,還引入了對私有包和包存儲庫的無縫支持。你可以使用與開源軟件包生態(tài)系統(tǒng)相同的工具來安裝和管理私有軟件包。
Julia 有一個新的缺失值表示規(guī)范。能夠表示和處理缺失的數(shù)據(jù)是統(tǒng)計和數(shù)據(jù)科學(xué)的基礎(chǔ)。采用典型的 Julian 方式,新的解決方案具有通用性、可組合性和高性能。任何泛型集合類型都可以通過允許元素包含預(yù)定義值來有效地支持缺失值 missing 。在之前的 Julia 版本中,這種“統(tǒng)一類型化”集合的性能會太慢,但隨著編譯器的改進(jìn)允許 Julia 匹配其他系統(tǒng)中自定義 C 或 C ++ 缺失數(shù)據(jù)表示的速度,同時也更加通用和靈活。
內(nèi)置 String 類型現(xiàn)在可以安全地保存任意數(shù)據(jù)。你的程序不會因為無效 Unicode 的單個丟失字節(jié)就浪費數(shù)小時或數(shù)天的時間。保留所有字符串?dāng)?shù)據(jù),同時指示哪些字符有效或無效,使你的應(yīng)用程序可以安全方便地處理具有所有不可避免的瑕疵的真實數(shù)據(jù)。
廣播(broadcasting)已經(jīng)成為一種具有方便語法特性的核心語言功能 - 它現(xiàn)在比以往更強(qiáng)大。在 Julia 1.0 中,將廣播擴(kuò)展到自定義類型并在 GPU 和其他矢量化硬件上實現(xiàn)高效優(yōu)化計算很簡單,為將來更高的性能提升鋪平了道路。
命名元數(shù)組是一種新的語言特性,它使得通過名稱有效和方便地表示和訪問數(shù)據(jù)。例如,你可以將一行數(shù)據(jù)表示為 row = (name="Julia", version=v"1.0.0", releases=8) 并使用 row.version 訪問該 version 列,其性能與不那么方便的 row[2] 相同。
點運算符現(xiàn)在可以重載,允許類型使用 obj.property 語法來獲取除 getting 和 setting 結(jié)構(gòu)字段之外的含義。這對于使用 Python 和 Java 等面向?qū)ο蟮恼Z言進(jìn)行更順暢的互操作時特別有用。屬性訪問器重載還允許獲取一列數(shù)據(jù)以匹配命名元組語法的語法:你可以編寫 table.version 訪問 version 列,就像使用 row.version 訪問 version 行的字段一樣。
Julia 的優(yōu)化器在很多方面遠(yuǎn)比下面列出來的還要更聰明,但這些亮點仍值得一提。優(yōu)化器現(xiàn)在可以通過函數(shù)調(diào)用傳播常量,從而允許比以前更好地消除無用代碼和靜態(tài)評估。編譯器在避免在長期對象周圍分配短期包裝器方面也要好得多,這使得開發(fā)者可以使用方便的高級抽象而無需降低性能成本。
現(xiàn)在始終使用與聲明相同的語法調(diào)用參數(shù)類型構(gòu)造函數(shù),這消除了語言語法中比較模糊且令人困惑的角落。
迭代協(xié)議已經(jīng)完全重新設(shè)計,以便更容易實現(xiàn)多種迭代。
作用域規(guī)則(scope rule)已經(jīng)簡化。無論命名的全局綁定是否已存在,局部作用域的結(jié)構(gòu)現(xiàn)在都是一致的。這消除了先前存在的 “soft/hard scope” 差異,并且意味著 Julia 現(xiàn)在可以始終靜態(tài)地確定變量是本地的還是全局的。
語言本身非常精簡,許多組件被拆分為“標(biāo)準(zhǔn)庫”軟件包,而不再屬于“基礎(chǔ)”語言的一部分。如果需要,可以導(dǎo)入它們(不需要安裝),但它們不再被強(qiáng)加給你。在未來,這也將允許標(biāo)準(zhǔn)庫獨立于 Julia 本身進(jìn)行版本控制和升級,從而允許它們以更快的速度發(fā)展和改進(jìn)。
對 Julia 的所有 API 進(jìn)行徹底的評估,以提高一致性和可用性。許多模糊的遺留命名和低效的編程模式已被重命名或重構(gòu),以更優(yōu)雅地匹配 Julia 的功能。這使得處理集合更加一致和連貫,以確保參數(shù)排序遵循整個語言的一致標(biāo)準(zhǔn),并在適當(dāng)?shù)臅r候(更快的)將關(guān)鍵字參數(shù)整合到 API 中。
此外,圍繞 Julia 1.0 的新特性,還正在構(gòu)建許多新的外部軟件包。像是:改進(jìn)數(shù)據(jù)處理和操作生態(tài)系統(tǒng),以利用新的缺失支持。
Cassette.jl 提供了一種強(qiáng)大的機(jī)制,可以將代碼轉(zhuǎn)換傳遞注入 Julia 的編譯器,從而實現(xiàn)事后分析和現(xiàn)有代碼的擴(kuò)展。除了用于分析和調(diào)試等開發(fā)工具之外,這甚至可以實現(xiàn)機(jī)器學(xué)習(xí)任務(wù)的自動區(qū)分。
異構(gòu)體系結(jié)構(gòu)支持得到了極大的改進(jìn),并且與 Julia 編譯器的內(nèi)部結(jié)構(gòu)進(jìn)一步分離。
有關(guān)更改的完整列表,可參閱:
0.7 NEWS file:
https://docs.julialang.org/en/release-0.7/NEWS/
Julia 1.0:
https://julialang.org/blog/2018/08/one-point-zero
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03