<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          再見(jiàn) Python,Hello Julia!

          共 4097字,需瀏覽 9分鐘

           ·

          2020-06-30 23:23

          8cfade71d5805df36a22a661d7862b3d.webp

          導(dǎo)讀:隨著Python的停滯不前,一個(gè)新的熱門競(jìng)爭(zhēng)對(duì)手崛起了


          作者:Rhea Moutafis譯者:蘇本如,責(zé)編:夕顏本文經(jīng)授權(quán)轉(zhuǎn)自公眾號(hào)CSDN(ID:CSDNnews)

          2ac5009f48cbb2080a113a59c2ec349c.webp



          如果Julia對(duì)你來(lái)說(shuō)仍是個(gè)謎,別擔(dān)心。
          不要誤會(huì)我的意思。Python的流行仍然受到計(jì)算機(jī)科學(xué)家、數(shù)據(jù)科學(xué)家、人工智能專家,以及他們組成的穩(wěn)固社區(qū)的堅(jiān)定支持。

          但是,如果你曾經(jīng)和這些人一起共進(jìn)過(guò)晚餐,那么你就應(yīng)該知道他們對(duì)于Python的弱點(diǎn)有多少抱怨。從速度緩慢到需要過(guò)多的測(cè)試,再到盡管進(jìn)行了先前的測(cè)試仍然會(huì)產(chǎn)生很多運(yùn)行時(shí)錯(cuò)誤 - 這些已經(jīng)足夠讓人惱火了。
          這就是為什么越來(lái)越多的程序員開(kāi)始采用其他語(yǔ)言的原因,這些語(yǔ)言中最受歡迎的是Julia、Go和Rust。Julia非常適合數(shù)學(xué)和技術(shù)任務(wù),Go非常適合模塊化程序,而Rust是系統(tǒng)編程的首選。
          由于數(shù)據(jù)科學(xué)家和人工智能專家需要處理許多數(shù)學(xué)問(wèn)題,因此Julia成為他們的贏家。即使經(jīng)過(guò)嚴(yán)格的審視,Julia仍然具有Python無(wú)法戰(zhàn)勝的優(yōu)勢(shì)。

          01 Python的禪與Julia的貪婪


          當(dāng)人們創(chuàng)建一種新的編程語(yǔ)言時(shí),他們這樣做的目的是希望保留舊語(yǔ)言中的好特性,并修復(fù)其壞特性。
          從這個(gè)意義上講,Guido van Rossum在20世紀(jì)80年代后期創(chuàng)建Python的目的是為了改進(jìn)ABC(Abstract Base Class - 抽象基類)。后者對(duì)于編程語(yǔ)言來(lái)說(shuō)簡(jiǎn)直太完美了 - 盡管其剛性使其易于學(xué)習(xí),但在現(xiàn)實(shí)生活中卻很難使用。

          4d0c72a12eb752006ab139ff8b3fa9e1.webp


          而Python則相反,它非常實(shí)用。你可以在下列Python的禪中看到這一點(diǎn),它反映了創(chuàng)造者的意圖:
          1. 優(yōu)美勝于丑陋(Python 以編寫優(yōu)美的代碼為目標(biāo))。
          2. 明了勝于晦澀(優(yōu)美的代碼應(yīng)當(dāng)是明了的,命名規(guī)范,風(fēng)格相似)。
          3. 簡(jiǎn)潔勝于復(fù)雜(優(yōu)美的代碼應(yīng)當(dāng)是簡(jiǎn)潔的,不要有復(fù)雜的內(nèi)部實(shí)現(xiàn))。
          4. 復(fù)雜勝于凌亂(如果復(fù)雜不可避免,那代碼間也不能有難懂的關(guān)系,要保持接口簡(jiǎn)潔)。
          5. 扁平勝于嵌套(優(yōu)美的代碼應(yīng)當(dāng)是扁平的,不能有太多的嵌套)。
          6. 間隔勝于緊湊(優(yōu)美的代碼有適當(dāng)?shù)拈g隔,不要奢望一行代碼解決問(wèn)題)。
          7. 可讀性很重要(優(yōu)美的代碼是可讀的)。
          8. 即便假借特例的實(shí)用性之名,也不可違背這些規(guī)則(這些規(guī)則至高無(wú)上)……

          Python仍然保留了ABC的良好特性:例如可讀性、簡(jiǎn)單性和對(duì)初學(xué)者的友好性。但是Python比ABC更加健壯,更加適應(yīng)現(xiàn)實(shí)生活。?
          ABC為Python鋪平了道路,而Python也為Julia鋪平了道路。
          從同樣的意義上說(shuō),Julia的創(chuàng)造者們希望保留其他語(yǔ)言的優(yōu)點(diǎn),而摒棄其缺點(diǎn)。但是Julia的野心要大得多:它不是想取代一種語(yǔ)言,而是想打敗所有語(yǔ)言。
          Julia的創(chuàng)造者是這樣說(shuō)的:
          我們很貪婪:我們想要更多。我們想要一種擁有自由許可的開(kāi)源語(yǔ)言。
          我們想要C的速度和Ruby的活力。我們想要的語(yǔ)言是同調(diào)的(homoiconic),具有像Lisp這樣的真實(shí)宏,但又具有類似Matlab這樣的顯而易見(jiàn)的熟悉的數(shù)學(xué)符號(hào)。我們想要的語(yǔ)言像Python一樣適用于通用編程,像R一樣適用于統(tǒng)計(jì),像Perl一樣自然地處理字符串,像Matlab一樣具有強(qiáng)大的線性代數(shù)處理能力,像Shell一樣易于將程序粘合在一起。
          我們想要一些簡(jiǎn)單易學(xué)的,但卻能讓最嚴(yán)肅的黑客開(kāi)心的東西。我們希望它是交互式的,我們希望它也是可編譯的。

          Julia希望融合目前存在的語(yǔ)言的所有優(yōu)勢(shì),而不是用其他語(yǔ)言的劣勢(shì)來(lái)平衡。盡管Julia是一門年輕的語(yǔ)言,但它已經(jīng)實(shí)現(xiàn)了它的創(chuàng)造者設(shè)定的許多目標(biāo)。

          84988cdcb03241096490db0a8ef6bc1d.webp



          02 Julia擁有哪些開(kāi)發(fā)人員喜歡的特性?


          1. 多功能性
          Julia可以用于從簡(jiǎn)單的機(jī)器學(xué)習(xí)應(yīng)用程序到巨大的超級(jí)計(jì)算機(jī)模擬的所有方面。在某種程度上,Python也可以做到這一點(diǎn),但是Python不知何故發(fā)展成了這樣。
          相比之下,Julia正是為這個(gè)目的而生的。自下而上。
          2. 速度
          Julia的創(chuàng)造者希望創(chuàng)造一種和C語(yǔ)言一樣快速的語(yǔ)言 - 但是他們創(chuàng)造出來(lái)的語(yǔ)言速度更快。盡管近年來(lái)Python變得更容易加速,但是它的性能和Julia相比仍然相去甚遠(yuǎn)。
          2017年,Julia甚至加入了Petaflop俱樂(lè)部,這是一個(gè)小型的編程語(yǔ)言俱樂(lè)部,Julia的峰值性能可以超過(guò)每秒1 petaflop的速度。除了Julia,目前只有C,C ++和Fortran進(jìn)入了這個(gè)俱樂(lè)部。
          3. 社區(qū)
          憑借其 30 多年的歷史,Python 擁有一個(gè)非常龐大的支持社區(qū)。幾乎任何與 Python 相關(guān)的問(wèn)題在一次谷歌搜索中都能得到答案。
          相比之下,Julia 社區(qū)非常小。雖然這意味著你可能需要進(jìn)一步挖掘才能找到答案,但你可能會(huì)一次又一次地和同樣的人聯(lián)系在一起。這可能會(huì)變成超越價(jià)值的程序員關(guān)系。
          4. 代碼轉(zhuǎn)換
          你甚至無(wú)需知道一條Julia命令,就可以在Julia中進(jìn)行編碼。你不僅可以在Julia中使用Python和C代碼。甚至可以在Python中使用Julia!
          不用說(shuō),這使得修補(bǔ)Python代碼的弱點(diǎn)變得非常容易?;蛘咴谀氵€在學(xué)習(xí)Julia的時(shí)候保持高效。

          4. 庫(kù)
          擁有數(shù)量龐大且維護(hù)良好的庫(kù),仍然是Python的最強(qiáng)項(xiàng)之一。Julia沒(méi)有太多的庫(kù),并且用戶還抱怨說(shuō)它們還沒(méi)有得到令人驚訝的維護(hù)。
          但是,當(dāng)你認(rèn)為Julia是一門非常年輕的語(yǔ)言,并且資源有限時(shí),實(shí)際上他們已經(jīng)擁有的庫(kù)的數(shù)量是相當(dāng)可觀的。除了Julia的庫(kù)數(shù)量正在增加之外,它還可以與C和Fortran中的庫(kù)進(jìn)行交互以處理繪圖。
          5. 動(dòng)態(tài)和靜態(tài)類型
          Python是100%動(dòng)態(tài)類型的。這意味著程序?qū)⒃谶\(yùn)行時(shí)確定變量是浮點(diǎn)型還是整型。
          盡管這對(duì)初學(xué)者非常友好,但它也引入了許多可能的錯(cuò)誤。這意味著你需要在所有可能的情況下測(cè)試Python代碼。這是一項(xiàng)相當(dāng)愚蠢的任務(wù),需要花費(fèi)大量時(shí)間。
          由于Julia的創(chuàng)造者也希望它易于學(xué)習(xí),因此Julia完全支持動(dòng)態(tài)類型。但是與Python相比,你可以根據(jù)需要引入靜態(tài)類型。例如,以C或Fortran中的形式出現(xiàn)。
          這可以為你節(jié)省大量時(shí)間:你可以在有意義的任何地方指定類型,而不是為不測(cè)試你的代碼尋找借口。

          03 數(shù)據(jù):在小的時(shí)候進(jìn)行投資
          b3f520737b320c0cc39addddd96401d7.webp▲StackOverflow的問(wèn)題數(shù)量對(duì)比(左:Julia,右:Python)
          盡管所有這些聽(tīng)起來(lái)很棒,但請(qǐng)務(wù)必注意,與Python相比,Julia仍然很小。
          一個(gè)很好的衡量標(biāo)準(zhǔn)是StackOverflow上的問(wèn)題數(shù)量:目前,Python被標(biāo)記的次數(shù)比Julia多二十倍!
          這并不意味著Julia不受歡迎,相反,只是它在被程序員采用前自然地需要一些時(shí)間。
          想想看,你真的想用另一種語(yǔ)言來(lái)重寫你的整個(gè)代碼?不,你寧愿在未來(lái)的項(xiàng)目中嘗試一種新語(yǔ)言。這就造成了每種編程語(yǔ)言在其發(fā)布和采用之間都有一段不小的間隔。
          但是,如果你現(xiàn)在就采用它(這很容易,因?yàn)镴ulia允許進(jìn)行大量的語(yǔ)言轉(zhuǎn)換),那么你就是對(duì)未來(lái)進(jìn)行投資。隨著越來(lái)越多的人采用Julia,你已經(jīng)獲得了足夠的經(jīng)驗(yàn)來(lái)回答他們的問(wèn)題。另外,隨著越來(lái)越多的Python代碼被Julia取代,你的代碼將更加持久。
          是時(shí)候向Julia示愛(ài)了。

          c5b636a0fc9c5e0030655639cdbd2edc.webp



          04 關(guān)鍵點(diǎn):讓Julia成為你的優(yōu)勢(shì)
          四十年前,人工智能不過(guò)是一種小眾技術(shù)。業(yè)界和投資者對(duì)其并不信任,許多技術(shù)既笨拙又難以使用。但是那些當(dāng)時(shí)學(xué)會(huì)它的人都已成為當(dāng)今的巨人 – 市場(chǎng)需求如此之高,以至于他們的薪水與一個(gè)職業(yè)橄欖球大聯(lián)盟球員的薪水相當(dāng)。
          同樣,Julia現(xiàn)在也很小眾。但是,隨著它的發(fā)展,最大的贏家將是那些早期采用它的人。
          我并不是說(shuō),如果你現(xiàn)在選擇Julia,你一定可以在十年內(nèi)賺到很多錢。但是,你正在增加你賺錢的機(jī)會(huì)。
          想想看:大多數(shù)程序員的簡(jiǎn)歷上都有Python。在接下來(lái)的幾年中,我們會(huì)在就業(yè)市場(chǎng)上看到更多的Python程序員。但是,如果企業(yè)對(duì)Python的需求放緩,那么Python程序員的前景觀點(diǎn)就會(huì)暗淡。這個(gè)過(guò)程開(kāi)始緩慢,但不可避免。
          另一方面,如果你能夠?qū)ulia納入自己的簡(jiǎn)歷,你將擁有真正的優(yōu)勢(shì)。坦白講,是什么讓你有別于其他Python程序員呢?沒(méi)有什么東西。但是,即使三年后,也不會(huì)有那么多的Julia程序員。
          有了Julia的技能,你不僅證明了你自己對(duì)工作要求以外的興趣。你也證明了你渴望學(xué)習(xí),并且對(duì)成為一名程序員的含義有更廣泛的了解。換句話說(shuō),你很適合這份工作。
          你,和其他Julia程序員將是未來(lái)的搖滾明星,你知道的?;蛘撸鏙ulia的創(chuàng)造者在2012年所說(shuō)的那樣:
          盡管我們認(rèn)識(shí)到自己的貪婪是不可原諒的,但我們?nèi)匀幌胍獡碛幸磺?。大約兩年半前,我們開(kāi)始創(chuàng)造我們貪婪的語(yǔ)言。它還沒(méi)有完成,但是現(xiàn)在到了發(fā)布1.0版本的時(shí)候了 - 我們創(chuàng)造的語(yǔ)言叫做Julia。它已經(jīng)滿足了我們90%的苛刻的要求,現(xiàn)在它需要其他人的苛刻的要求來(lái)進(jìn)一步完善它。
          所以,如果你也是一個(gè)貪婪,不講道理,要求苛刻的程序員,我們希望你能嘗試一下。

          Python仍然很受歡迎。但是如果你現(xiàn)在開(kāi)始學(xué)習(xí)Julia,那么你就可能握有了未來(lái)的黃金入場(chǎng)券。從這個(gè)意義上你可以說(shuō):再見(jiàn) Python!你好 Julia!

          原文鏈接:https://towardsdatascience.com/bye-bye-python-hello-julia-9230bff0df62
          本文轉(zhuǎn)自公眾號(hào)“CSDN”,ID:CSDNnews
          b52a8385057285b949bee392a588a032.webp
          劃重點(diǎn)?

          干貨直達(dá)?

          更多精彩?

          在公眾號(hào)對(duì)話框輸入以下關(guān)鍵詞查看更多優(yōu)質(zhì)內(nèi)容!
          PPT?|?讀書?|?書單?|?硬核?|?干貨?|?講明白大數(shù)據(jù)?|?云計(jì)算?|?數(shù)據(jù)庫(kù)?|?Python?|?可視化?|?神操作AI?|?人工智能?|?機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)5G?|?中臺(tái)?|?用戶畫像?|?1024?|?大神?|?數(shù)學(xué)?|?揭秘
          據(jù)統(tǒng)計(jì),99%的大咖都完成了這個(gè)神操作?

          1cbf094e10e795103c70670cf8688311.webp


          瀏覽 103
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国内一级性爱网站 | 青青草视频在线网站 | 99热这里只有精品首页 | 亚洲伦理片 | 日韩在线观看网站 |