2012年, Julia語言橫空出世,從此科學計算領域又多了一個強大的工具。
如今,Julia已經走過了十個年頭,擁有數十萬用戶,在數百所大學和公司內開始建立Julia軟件技術棧,從個性化藥物、氣候建模、新材料研發,甚至太空任務規劃都有Julia的身影。
最近,Julia的開發者們又發布了一篇博客,收集了過去十年的一些Julia故事,希望共同反思和進步,讓Julia在十年后變得更好。
Julia的十年征途
Julia的開發始于2009年,Viral Shah給他的兩個朋友Jeff Bezanson和Stefan Karpinski發了一封郵件,發起了一場科學計算語言的新革命。
2012年Julia正式發布,在《我們為什么要創建Julia》博客中,開發人員說:因為我們很貪婪,想讓Julia擁有得更多。
Julia結合了流行語言中所有最理想的特性,他們希望創造出的Julia要像C語言一般快速而又擁有如同Ruby的動態性;要具有Lisp般真正的同像性而又有Matlab般熟悉的數學記號;要像Python般通用、像R般在統計分析上得心應手、像Perl般自然地處理字符串、像Matlab般具有強大的線性代數運算能力、像shell般膠水語言的能力,易于學習而又不讓真正的黑客感到無聊;并且它應該是交互式的,同時又是編譯型的。
初始版本的Julia具有可選類型、多重派發,以及通過類型推理和即時編譯(JIT)實現的良好性能,使用LLVM。
2014年,第一屆Julia年度會議在芝加哥舉行。此后,JuliaCon有近3萬名與會者,演講者包括Soumith Chintala、Katherine A. Yelick和Linda Petzold。
2015年,Julia計算公司由開發團隊和Keno Fischer和Deepak Vinchhi成立,旨在開發一些基于Julia的客戶產品。他們的旗艦產品JuliaHub是一個開發Julia程序的SaaS平臺,并部署到上千個節點上。
2017年6月,團隊從General Catalyst和Founder Collective籌集了460萬美元的種子資金。
2018年,Julia 1.0版本正式發布,團隊表示Julia已經「完全出爐」了。該版本引入了API的穩定性、內置的包管理器、缺失值的規范表示和內置的String類型,能夠安全地創建任意數據。這個版本的意義重大,也意味著Julia不再處于「開發者階段」。
2019年,Julia從美國政府籌集了110萬美元的資金。
在2019-2020年間,又陸續發布了v1.1、v1.2、v1.3和v1.4版本,對bug進行了修復,并增加了異常堆棧、對網絡瀏覽器的內置支持、可組合的多線程并行和Julia包的二進制工件系統。
2020年的Julia v1.5是一個大版本,博文宣稱這個版本帶來了一個主要的優化,能夠顯著減少一些工作負載中的堆分配。此外,這些功能還包括對Mozilla的RR工具的記錄和重放調試支持,結構布局和分配優化,多線程API的穩定和改進,延遲改進,以及對一些流行情況的算法改進,如生成正常分布的雙精度浮點數。
2021年,接受了由Dorilton Ventures領導的2400萬美元的A輪融資。
同年發布的Julia 1.6通過并行預編譯和更快的軟件包加載改善了性能,v1.7引入了更快的隨機數生成器,并使用Xoshiro256系列RNG中更小的狀態,在每個任務中都放一個狀態,并在每個任務創建時分叉它。這使得隨機數只依賴于任務的生成結構,而不依賴于并行執行計劃。
2022年2月,Julia走過十年,版本號也將發布1.8版本。
Julia背后的用戶故事
截至2020年,Julia的下載量累計3500萬次,擁有6800個Julia包,超過1180萬行代碼,有超過一萬家公司,1500家大學都在使用。
Julia以它的開放、熱情,成功在社會公益方面創建了無數應用:紐約聯邦儲備銀行利用Julia對美國經濟進行建模,主要原因就是Julia比Matlab速度快10倍;研究人員還用Julia來估計2021年的COVID-19誘發的經濟沖擊。
2019年,Julia是氣候建模聯盟創建的價值數百萬美元的下一代全球氣候模型的唯一實施語言。聯邦航空管理局使用Julia來開發下一代機載防撞系統。它還被用于Celeste項目,在Cori II超級計算機上達到了1.54 petaflops的峰值性能。Aviva和BlackRock使用Julia來計算風險和執行時間序列分析。Julia也是美國宇航局用于模擬航天器分離動力學的標準語言。巴西的INPE也用Julia來計劃太空任務。
使用Julia的大公司包括英偉達、阿斯利康、谷歌、英特爾、微軟、亞馬遜、蘋果、迪士尼、Facebook、福特、Grindr、IBM、微軟、Oracle和Uber、Moderna和輝瑞。
十年歷程,也有很多用戶分享他們使用Julia的故事。
網友@keno 分享:十年前,我剛剛高中畢業,作為交換生在馬里蘭州東海岸的一所小學校學習。當時手握大學錄取通知書,并沒有什么其他事情可做,我對計算科學中需要更好的工具產生了強烈的共鳴,并在那一天開始著手開發Julia。在過去的十年里,我幾乎每天都在使用Julia。在這段時間里,我從事過各種工作,從天文學,到同態加密,再到模擬半導體,以及中間的許多工作。一路走來,有許多令人難忘的事件。5年前,我們在世界最大的一臺計算機上同時運行了超過一百萬個Julia線程,這對動態語言來說是一個創舉,同時把Julia推到了Petaflop的大關,雖然現在已經很容易實現了。每年,我都期待著參加JuliaCon,與我一路走來結識的朋友們聚在一起,欣賞我們從當初在麻省理工學院的一個會議室里的一小撮人走到現在。這是一個瘋狂的10年,而且事情只會變得更加令人興奮。
網友@aviks 分享:十年前,我在Hacker News上看到這篇博客時的第一反應是「我們真的需要另一種編程語言嗎」。那天工作很忙,所以我下載了源代碼,并驚訝地看到它第一次就成功構建了。兩周后,我提交了第一個PR。在增加了一個新的數值類型后,Julia向我證明了簡單和高性能的數值計算是肯定可行的。在此后的幾年里,我很榮幸地成為了這個神奇社區的一部分,并且能夠在工作中每天編寫 Julia。毫無疑問,Julia 已經改變了我的生活,而且我認為它已經以一種小小的方式改變了世界。
網友@collinwarner分享:我在2019年春季第一次接觸到Julia,當時是在Alan Edelman擔任教授的線性代數課。課程結束后,我主動聯系導師,他把我介紹給了Chris Rackauckus,在接下來的一年里,我致力于創建一個神經微分方程?,F在我已經大四了,我又回到了實驗室。并在秋季選修了軟件性能工程,想讓代碼更快,并對編譯器有更多了解。我認為Julia實驗室是一個完美的地方,和他們一起工作時的體驗特別棒。我計劃明年繼續與他們實驗室合作。
網友@emmettgb 分享:我第一次接觸Julia語言是在2014年的秋天。當時我還很年輕,但對計算科學很著迷,我主要使用Python和R來完成這兩項任務。我曾在幾個項目中與同行合作,我們會遇到「兩種語言問題」,這讓我非常沮喪。我是團隊中唯一會寫C語言的成員,而Cython對我們的問題并沒有想象中的那么大幫助。那時,像Numba和遠程Python解釋這樣的工具甚至還沒有達到現在的水平,我正在尋找更多關于讓Python運行得更快的信息,偶然發現了Julia論壇的帖子。我被它的語法所吸引,自從那天開始學習 Julia 后,它就成了我最喜歡的編程語言。我能夠用Julia而非C語言來解決我們的問題,而且我能夠在需要時通過PyCall.jl來調用Python代碼。Julia最終完美地完成了工作,所以每次遇到這類問題的項目,我都會用它來解決。Julia語言一直做得很好,然后所有不斷出現在這門語言上的變化都是如此之大。現在Julia語言有一個更棒的生態系統,所以一切只會變得更好。
原文地址:https://www.toutiao.com/a7067418248442282526/