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