Python時(shí)下正在“最熱門的編程語言榜”上春風(fēng)得意,看起來將會(huì)成為一門不朽的語言。但是現(xiàn)在,很多其他語言也逐漸顯現(xiàn)出Python的一些優(yōu)點(diǎn):編程方便,對(duì)數(shù)學(xué)和科學(xué)計(jì)算擁有強(qiáng)大的處理能力,龐大的第三方庫。
下面是Python的一些潛在的挑戰(zhàn)者,并討論了Python是如何保住它第一的席位的。
它是什么:蘋果公司的一種編程語言,主要用于原生的iOS開發(fā),但是現(xiàn)在已經(jīng)開源,并有向服務(wù)器端發(fā)展的傾向。
它的優(yōu)點(diǎn):使用Swift編程是一種毫無障礙的體驗(yàn)!用起來相比于編譯型語言(比如,它間接的前任Objective-C)更像是一種腳本語言(比如Python)。Swift的決定性的優(yōu)點(diǎn)是它的速度——它是由LLVM編譯框架編譯成機(jī)器碼的,所以它具備真正的多線程。Python還在這方面掙扎。
如果說開發(fā)速度要比執(zhí)行速度重要的話,Python在方面更有優(yōu)勢(shì)。但是Swift有XCode IDE的“Playground”模式。
Python的優(yōu)點(diǎn):一方面,相比于Python來說,Swift是一門新型的編程語言,Python有所有成熟的語言所具備的有點(diǎn)——大量的用戶基礎(chǔ),大量的庫,成熟的多平臺(tái)支持。Swift現(xiàn)在甚至還不能支持Windows(如果不算上第三方庫的話),雖然這是將來必定會(huì)實(shí)現(xiàn)的特性。Swift還會(huì)產(chǎn)生對(duì)蘋果工具鏈的依賴(比如Xcode),而Python的依賴就少的很。
**它是什么:**Google的“表現(xiàn)力強(qiáng)、簡潔、干凈、高效”的語言,從Docker及其相關(guān)項(xiàng)目到InfluxDB數(shù)據(jù)庫,Ethereum壞鏈系統(tǒng)和Canonical的Snappy包管理工具都是用Go寫成的。
它的優(yōu)勢(shì):和Swift一樣,Go語言也會(huì)編譯成平臺(tái)相關(guān)的機(jī)器碼,所以它不僅可以在多任務(wù)方面比Python快很多,還還可以在運(yùn)行時(shí)不像Python那樣生成額外的目標(biāo)。Go代碼編譯速度非???,開發(fā)速度也很快,所以它更像一門解釋性的語言。
Python的優(yōu)勢(shì):雖然Go不像Swift那么新——它在2009年發(fā)布——Python在用戶和庫的數(shù)量方面還是占有優(yōu)勢(shì)。此外,Go的語法和錯(cuò)誤處理方式和Python相去甚遠(yuǎn)。所以,現(xiàn)在Python用戶很難轉(zhuǎn)移到Go,但是不會(huì)阻止新用戶選擇這樣一門語言?,F(xiàn)階段,Python的安裝器讓使用和構(gòu)建Python應(yīng)用非常簡單——更不必說像Linux這樣的系統(tǒng),Python已經(jīng)成為了標(biāo)準(zhǔn)。
它是什么:在2012年發(fā)布,是面向技術(shù)應(yīng)用的一門編程語言,例如數(shù)據(jù)分析和線性代數(shù)。
它的優(yōu)點(diǎn): Python一個(gè)很大的用處是數(shù)學(xué)和科學(xué)應(yīng)用——多虧了Numpy這樣的庫和交互式的IPython編輯程序。Julia的目標(biāo)用戶也是同樣的群體,和Go、Swift一樣,它也比Python快。它還有一個(gè)正在不斷擴(kuò)展的包,不僅僅包括科學(xué)和數(shù)學(xué)計(jì)算的應(yīng)用,還有很多Python的功能,比如從云端提供商那里取得數(shù)據(jù)。
Python的優(yōu)點(diǎn): Julia有和Python類似的庫,但是Python并不滿足現(xiàn)狀,還在馬不停蹄地優(yōu)化語言的核心和開發(fā)環(huán)境。Python的速度并非一定不及Julia(或者其他Python的競爭者),只要針對(duì)不同的工作選擇恰當(dāng)?shù)膸焱瓿?,速度還是客觀的。
Julia語言本身還存在一些爭議。比如,Julia的數(shù)組下標(biāo)是從1開始的,而不是0——這不僅和Python比是一個(gè)缺點(diǎn),很其他語言比起來也是。(很多第三方的包索引也是從1開始,但是仍讓人很不習(xí)慣。)
它是什么:無論是就開發(fā)環(huán)境還是語言本身來說,這都是一個(gè)很老的語言了。它專為統(tǒng)計(jì)學(xué)設(shè)計(jì)。
它的優(yōu)點(diǎn): R有很多Python的優(yōu)點(diǎn),比如有豐富的第三方庫等。但是R是專門為統(tǒng)計(jì)學(xué)而生的,并且在后面的發(fā)展中依然專注于此。Python也可以做數(shù)學(xué)和統(tǒng)計(jì)學(xué)方面的計(jì)算,但是在這方面被R語言完全碾壓?!?/p>
R語言還引起了很多大公司的注意,微軟收購了一個(gè)R語言標(biāo)準(zhǔn)實(shí)現(xiàn)的開發(fā)商開服務(wù)它的云端數(shù)據(jù)。Hewlett-Packard開發(fā)了一種分布式的R語言計(jì)算產(chǎn)品,可以同時(shí)跨多個(gè)節(jié)點(diǎn)運(yùn)行。這個(gè)產(chǎn)品在將來可以把Python完全擠出這個(gè)領(lǐng)域。
Python的優(yōu)點(diǎn):有時(shí)候,作為一個(gè)多用途的語言也有它的好處。R語言的功能局限在統(tǒng)計(jì)學(xué)計(jì)算方面。由于開發(fā)環(huán)境的限制,構(gòu)建R語言應(yīng)用也很麻煩,使用Python創(chuàng)建應(yīng)用就很簡單。而且通過像RPy2這樣的包可以輕松地將R語言和Python聯(lián)合起來。
微軟對(duì)R語言的投入很多,但是同時(shí)微軟也對(duì)Python提供了很多支持,所以這兩種語言都能在Azure上工作的很好。
原文:4 languages poised to out-Python Python
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com