
集 Python、C、R、Ruby 之所長,動態編程語言 Julia 1.0 正式發布
動態編程語言 Julia 迎來了 1.0 正式版本,下載地址:
https://julialang.org/downloads/
Julia 可以看作是一門集眾家之所長的編程語言,在首次公開時開發團隊就已明確其需求:
我們想要一種擁有自由許可的開源語言,同時擁有 C 的速度和 Ruby 的靈活。我們想要一種同像性語言,有像 Lisp 這樣真正的宏,也有像 Matlab 這樣的淺顯熟悉的數學符號。我們想要一門像 Python 一樣可用于通用編程,像 R 一樣易于統計,像 Perl 一樣自然地用于字符串處理,像 Matlab 一樣強大的線性代數,像 shell 一樣擅長將程序粘合在一起的語言。它簡單易學,卻能讓嚴苛的黑客為之傾心。我們希望它是交互式的,具備可編譯性。
開發團隊表示,圍繞這一語言,一個充滿活力的社區已蓬勃發展起來,為實現同一目標,來自世界各地的開發者們不斷地重塑并精煉 Julia 。超過 700 人對 Julia 做出了實質性貢獻,還有更多的人數以千計的令人驚嘆的 Julia 開源包??傊?,我們構建了這樣一種語言:
快速:Julia 為高性能而生。Julia 程序通過 LLVM 為多個平臺編譯高效本地代碼。
通用:它使用多分派(multiple dispatch)作為范例,使得表達許多面向對象和函數式編程模式變得容易。標準庫提供異步 I / O 、進程控制、日志記錄、性能分析、包管理器等。
動態:Julia 是動態編程語言,與腳本語言相似,并且對交互式使用有很好的支持。
專業:它擅長于數值計算,其語法非常適合數學,支持多種數字數據類型,和開箱即用的并行性。Julia 的多分派非常適合定義數字和數組類型的數據類型。
(可選)多樣:Julia 具有豐富的描述性數據類型,類型聲明可用于闡明和鞏固程序。
可組合:Julia 的包可以很好地協同工作。單位數量的矩陣,或貨幣和顏色的數據表列都可以組合工作 - 并具有良好的性能。
想要嘗試 1.0 的用戶,如果是從 Julia 0.6 或更早版本升級代碼,建議先使用 0.7 過渡版。0.7 版本包括棄用警告,可以幫助指導你完成升級過程。等到你的代碼不再出現警告,就可以直接升級至 1.0 而不會產生任何功能性更改。已注冊的軟件包也正在利用 0.7 的過渡期發布 1.0 兼容的更新。
當然,Julia 1.0 中最重要的一個新特性是對語言 API 穩定性的承諾:你為 Julia 1.0 編寫的代碼將可以繼續在 Julia 1.1、1.2 等版本中運行。語言是“完全成熟的”,核心語言開發者和社區都可以專注于基于這個堅實的基礎去構建軟件包、工具和新特性。
Julia 1.0 不僅僅涉及穩定性,還引入了一些新的、強大的和創新的語言功能。自 0.6 版本以來的一些新特性包括:
全新的內置包管理器帶來了巨大的性能改進,使包及其依賴項安裝變得前所未有的簡單。它還支持 per-project 的包環境,并記錄工作應用的確切狀態,以便與他人共享 - 以及你未來的項目。此外,還引入了對私有包和包存儲庫的無縫支持。你可以使用與開源軟件包生態系統相同的工具來安裝和管理私有軟件包。
Julia 有一個新的缺失值表示規范。能夠表示和處理缺失的數據是統計和數據科學的基礎。采用典型的 Julian 方式,新的解決方案具有通用性、可組合性和高性能。任何泛型集合類型都可以通過允許元素包含預定義值來有效地支持缺失值 missing 。在之前的 Julia 版本中,這種“統一類型化”集合的性能會太慢,但隨著編譯器的改進允許 Julia 匹配其他系統中自定義 C 或 C ++ 缺失數據表示的速度,同時也更加通用和靈活。
內置 String 類型現在可以安全地保存任意數據。你的程序不會因為無效 Unicode 的單個丟失字節就浪費數小時或數天的時間。保留所有字符串數據,同時指示哪些字符有效或無效,使你的應用程序可以安全方便地處理具有所有不可避免的瑕疵的真實數據。
廣播(broadcasting)已經成為一種具有方便語法特性的核心語言功能 - 它現在比以往更強大。在 Julia 1.0 中,將廣播擴展到自定義類型并在 GPU 和其他矢量化硬件上實現高效優化計算很簡單,為將來更高的性能提升鋪平了道路。
命名元數組是一種新的語言特性,它使得通過名稱有效和方便地表示和訪問數據。例如,你可以將一行數據表示為 row = (name="Julia", version=v"1.0.0", releases=8) 并使用 row.version 訪問該 version 列,其性能與不那么方便的 row[2] 相同。
點運算符現在可以重載,允許類型使用 obj.property 語法來獲取除 getting 和 setting 結構字段之外的含義。這對于使用 Python 和 Java 等面向對象的語言進行更順暢的互操作時特別有用。屬性訪問器重載還允許獲取一列數據以匹配命名元組語法的語法:你可以編寫 table.version 訪問 version 列,就像使用 row.version 訪問 version 行的字段一樣。
Julia 的優化器在很多方面遠比下面列出來的還要更聰明,但這些亮點仍值得一提。優化器現在可以通過函數調用傳播常量,從而允許比以前更好地消除無用代碼和靜態評估。編譯器在避免在長期對象周圍分配短期包裝器方面也要好得多,這使得開發者可以使用方便的高級抽象而無需降低性能成本。
現在始終使用與聲明相同的語法調用參數類型構造函數,這消除了語言語法中比較模糊且令人困惑的角落。
迭代協議已經完全重新設計,以便更容易實現多種迭代。
作用域規則(scope rule)已經簡化。無論命名的全局綁定是否已存在,局部作用域的結構現在都是一致的。這消除了先前存在的 “soft/hard scope” 差異,并且意味著 Julia 現在可以始終靜態地確定變量是本地的還是全局的。
語言本身非常精簡,許多組件被拆分為“標準庫”軟件包,而不再屬于“基礎”語言的一部分。如果需要,可以導入它們(不需要安裝),但它們不再被強加給你。在未來,這也將允許標準庫獨立于 Julia 本身進行版本控制和升級,從而允許它們以更快的速度發展和改進。
對 Julia 的所有 API 進行徹底的評估,以提高一致性和可用性。許多模糊的遺留命名和低效的編程模式已被重命名或重構,以更優雅地匹配 Julia 的功能。這使得處理集合更加一致和連貫,以確保參數排序遵循整個語言的一致標準,并在適當的時候(更快的)將關鍵字參數整合到 API 中。
此外,圍繞 Julia 1.0 的新特性,還正在構建許多新的外部軟件包。像是:改進數據處理和操作生態系統,以利用新的缺失支持。
Cassette.jl 提供了一種強大的機制,可以將代碼轉換傳遞注入 Julia 的編譯器,從而實現事后分析和現有代碼的擴展。除了用于分析和調試等開發工具之外,這甚至可以實現機器學習任務的自動區分。
異構體系結構支持得到了極大的改進,并且與 Julia 編譯器的內部結構進一步分離。
有關更改的完整列表,可參閱:
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
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25