Julia作為2012年才誕生的一門新興動(dòng)態(tài)編程語(yǔ)言,近年來(lái)得到了迅速普及,它具有哪些獨(dú)特的特點(diǎn)優(yōu)勢(shì)?本文就列舉了程序員學(xué)習(xí)Julia的五大理由。
Julia是一種免費(fèi)的現(xiàn)代高級(jí)編程語(yǔ)言,于2012年正式發(fā)布。作為編程語(yǔ)言大家族中的年輕一員,Julia提供了許多令人眼前一亮的功能和特性。
作為程序員,為什么選擇使用Julia?任何一種編程語(yǔ)言永遠(yuǎn)不會(huì)是完美的,而且永遠(yuǎn)不可能成為一個(gè)最終確定的產(chǎn)品,而是會(huì)隨著時(shí)間的推移不斷變化和發(fā)展。本文在此分享程序員學(xué)習(xí)Julia編程語(yǔ)言的五個(gè)理由。
1、Julia的代碼庫(kù)完全由Julia本身編寫
如果你使用Julia開(kāi)發(fā)應(yīng)用程序,這也意味著你也可以為Julia語(yǔ)言本身添磚加瓦。與其他動(dòng)態(tài)語(yǔ)言相比,這是Julia最重要的優(yōu)勢(shì)之一。
我們以Python為例。如果你使用Python,會(huì)發(fā)現(xiàn)其中存在用C語(yǔ)言編寫的代碼。 Python允許用戶添加基于C語(yǔ)言的擴(kuò)展。不僅如此,你甚至可以用C++編寫代碼,并在Python代碼中調(diào)用,從而帶來(lái)巨大的性能提升。但是,這實(shí)際上可能偏離了使用Python的主要目的。Python應(yīng)該是一種簡(jiǎn)單易用的語(yǔ)言。在編程中混合使用其他語(yǔ)言可能破壞了這種“味道”。
Julia的基準(zhǔn)、標(biāo)準(zhǔn)庫(kù)、算術(shù)等原始操作都是用Julia本身編寫的。所以,在這一點(diǎn)上用戶無(wú)需做出任何妥協(xié)。
2、速度快
其他編程語(yǔ)言,如C ++和Java在垃圾收集方面很注重,由此犧牲了很多性能,而Julia的設(shè)計(jì)理念是將“高性能”放在最高優(yōu)先級(jí)上。Julia附帶LLVM編譯器,可將Julia應(yīng)用程序編譯為適用多個(gè)平臺(tái)的本地代碼。
確實(shí),Julia編譯器不需要知道用戶使用的變量類型,但它知道如何在用戶調(diào)用函數(shù)時(shí)提前做好規(guī)劃。
在Julia中,當(dāng)用戶調(diào)用函數(shù)時(shí),參數(shù)是已知的。編譯器會(huì)仔細(xì)觀察函數(shù),找出特定參數(shù)所需的必要CPU指令。
一旦精確的指令被映射出來(lái),Julia就可以很快執(zhí)行。也就是說(shuō),如果重復(fù)調(diào)用相同的函數(shù),后續(xù)調(diào)用運(yùn)行速度會(huì)更快。
3.在技術(shù)計(jì)算方面獨(dú)具優(yōu)勢(shì)
Julia的語(yǔ)法規(guī)則非常適合數(shù)學(xué)運(yùn)算,支持多種數(shù)字?jǐn)?shù)據(jù)類型,在默認(rèn)情況下即提供并行計(jì)算特性。Julia的多次調(diào)度非常適合定義數(shù)字和數(shù)組類型的數(shù)據(jù)類型。
比如如果鍵入反斜杠,就可以接著鍵入一個(gè)字符串(相當(dāng)于LATEX字符串)來(lái)插入相應(yīng)的字符。對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),這是一個(gè)非常有用的功能,可以導(dǎo)出一些方程并直接輸入。
4.動(dòng)態(tài)化且易于理解
Julia是一種動(dòng)態(tài)編程語(yǔ)言,但也可以將某些值指定為特定類型來(lái)作為靜態(tài)類型系統(tǒng)使用。這有助于生成高效的代碼,并允許對(duì)函數(shù)參數(shù)類型的方法調(diào)度與語(yǔ)言深度集成。
為了使其更具表現(xiàn)力,Julia還在以前的“無(wú)類型”代碼中引入了顯式類型注釋。注釋有三個(gè)主要目的:提高代碼對(duì)人類的可讀性,獲取程序員的錯(cuò)誤并利用Julia強(qiáng)大的多調(diào)度機(jī)制。
5.通用編程語(yǔ)言
Julia最初是作為一種面向技術(shù)語(yǔ)言設(shè)計(jì)的,但現(xiàn)在可以將其用于通用編程。用戶可以使用Julia編寫用戶界面、靜態(tài)編譯代碼甚至在Web服務(wù)器上部署代碼。Julia具有強(qiáng)大的類似“shell”的功能來(lái)管理其他進(jìn)程,并設(shè)有類似Lisp的宏和其他元編程功能。
Julia致力于打造多重調(diào)度模型,可以輕松表達(dá)許多面向?qū)ο蠛秃瘮?shù)式的編程模式。 Julia的標(biāo)準(zhǔn)庫(kù)還提供過(guò)程控制、日志記錄、分析、異步I / O等功能。
-
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1945瀏覽量
34740 -
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29805 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84692
原文標(biāo)題:程序員為什么愛(ài)用Julia語(yǔ)言?這里有五點(diǎn)理由
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論