近兩年,憑借 動態(tài)特性和易于擴展性,Python 在 企業(yè)級應(yīng)用程序、機器學(xué)習(xí)/人工智能模型、數(shù)據(jù)科學(xué)等工作中,備受開發(fā)者青睞,其火熱程度早已超越了編程語言界的老牌兵 Java。而 Python 有朝一日會成為今朝的 Java 嗎?對此,本文作者發(fā)文表示,30 歲的 Python 正面臨著來自編程語言世界的新參與者——Julia 的威脅,而這究竟是怎么一回事?
作者 | James Warner
譯者 | 風車云馬,責編 | 屠敏
自上世紀90年代以來,編程語言Python已經(jīng)取得了長足的進步。當Guido Van Rossum開發(fā)Python時,他幾乎不知道Python會成為世界上最流行的語言之一。今天,Python是人類歷史上使用最廣泛的編程語言之一,并且已經(jīng)應(yīng)用于很多應(yīng)用程序中。無論是企業(yè)級應(yīng)用程序,還是機器學(xué)習(xí)/人工智能模型、數(shù)據(jù)科學(xué)工作,Python幾乎在所有蓬勃發(fā)展的行業(yè)和領(lǐng)域中都受人青睞。
Python市場
全世界有超過800萬的開發(fā)人員出于各種目的熱忠于使用Python。由于其動態(tài)特性和易于擴展性,Python已經(jīng)成為開發(fā)人員的首選語言。這也是為什么Python能夠擊敗Java的原因,Java一度以來都是開發(fā)人員最喜歡的語言。也可能是由于一門語言的自然老化過程,Java正在接近尾聲。大多數(shù)新語言都是為解決現(xiàn)代面臨的新挑戰(zhàn)而設(shè)計的。雖然之前開發(fā)的語言在解決當時的問題時效率極高,但要讓它們跟上不斷變化的行業(yè)和市場就變得極其困難。
但是,Python作為一種擁有如此龐大用戶和開發(fā)者支持的開源語言,即使在今天仍然保持著它的巔峰狀態(tài)。它豐富的庫和內(nèi)置的功能使其成為企業(yè)、開發(fā)人員和數(shù)據(jù)科學(xué)家的熱門選擇。盡管Java仍然被用于企業(yè)開發(fā),但它在其他領(lǐng)域的相關(guān)性幾乎為零。如果環(huán)顧四周,你很難發(fā)現(xiàn)一個機器學(xué)習(xí)專家在Java上設(shè)計和訓(xùn)練模型。盡管如此,Java是全球第二大最受開發(fā)人員歡迎的語言。
取代Java
Python已經(jīng)成功地在大多數(shù)領(lǐng)域取代了Java。在企業(yè)開發(fā)方面,Java面臨著來自谷歌的新編程語言Go的威脅。隨著我們進入未來科技時代,對高性能計算的需求也在不斷增長。這也是數(shù)據(jù)科學(xué)和人工智能的時代需求。盡管有人可能認為使用extreme GPU有助于提高速度和效率,但事實遠非如此。它不能滿足特定的數(shù)據(jù)處理需求。相反,前沿應(yīng)用程序需要其他依賴項來優(yōu)化性能,并幫助科學(xué)家和開發(fā)人員實現(xiàn)預(yù)期的目標。最終,這將引導(dǎo)企業(yè)和研究機構(gòu)尋找更健壯的編程語言,為特定的任務(wù)及其交付速度而設(shè)計。
進入Julia的世界
這個人人都喜愛Python的時代,正面臨著來自編程語言世界的新參與者——Julia的威脅。Viral Shah是Julia Computing的首席執(zhí)行官,他指出,在21世紀初,開發(fā)人員更喜歡用C語言進行系統(tǒng)編程,用JAVA開發(fā)企業(yè)應(yīng)用程序,用SaaS進行分析,用MATLAB進行科學(xué)計算。然而,今天的開發(fā)人員使用Rust進行系統(tǒng)編程,Go進行企業(yè)開發(fā),使用Python/R進行分析,并使用Julia進行科學(xué)計算。
這幾年來我們能夠感受到從MATLAB到Python的過渡。我們知道機器學(xué)習(xí)幾乎在所有應(yīng)用程序中使用,而且Python庫使ML模型的實現(xiàn)更加容易,所以人們轉(zhuǎn)向了Python。在此之前,MATLAB是這項任務(wù)的最佳選擇,可以幫助人們進行分析和科學(xué)計算。但是很明顯,人們會把目光轉(zhuǎn)向更容易實現(xiàn)、容易理解、更快速、更高性能和可擴展的解決方案。因此,Python完美地填補了JAVA和MATLAB的空白。
Julia立足之地
Julia和Python之間的一個關(guān)鍵區(qū)別是處理特定問題的方式。Julia的構(gòu)建是為了減輕高性能計算的挑戰(zhàn)。盡管Python現(xiàn)在已經(jīng)發(fā)展為一種快速的計算語言,但是我們必須承認它不是為這項工作而設(shè)計的。然而,Julia是專門為高速處理和計算工作設(shè)計的。雖然它只有幾個月的歷史,卻已經(jīng)在研究人員和數(shù)據(jù)科學(xué)家中引起轟動。
兩個月前,Julia發(fā)布了一個穩(wěn)定的版本,稱為1.2,它已經(jīng)得到了進一步的改進,可以有效地處理大量占用資源的數(shù)據(jù)科學(xué)項目。目前有超過800名Julia開發(fā)人員,他們正在為GitHub做貢獻,幫助其成為首選語言。
結(jié)論
憑借資源和速度這兩把“利劍”,兩個月大的Julia已經(jīng)和30歲的Python打了一場硬仗。盡管現(xiàn)在很難說它能否完全接管Python,但它設(shè)計用于處理復(fù)雜的計算特性肯定會對世界產(chǎn)生影響。此外,隨著問題的處理需要更多的資源和更高性能的計算,Julia可能會成為每個人的最愛。除非Python想要和Java一樣的命運,否則它將不得不提高其速度和效率,并不斷優(yōu)化它的庫。它可能不只是啟動新的更新,而是完全轉(zhuǎn)換引擎,使其成為更友好的CPU語言。Python相對于Julia的一個優(yōu)勢是其豐富的庫。由于Julia還處于起步階段,所以它需要很長時間才能構(gòu)建像Python這樣高效、動態(tài)的庫和函數(shù)。這兩種語言之間的斗爭才剛剛開始,但對于需要快速高效工具來實現(xiàn)目標的研究人員和科學(xué)家來說,Julia已經(jīng)變成了一種優(yōu)勢。
責任編輯:ct
評論
查看更多