Python與PHP、Java等4大流行語(yǔ)言過(guò)招,誰(shuí)更勝一籌?
Python因簡(jiǎn)單易學(xué)、強(qiáng)大的兼容性等優(yōu)勢(shì)頗受歡迎;
同樣受歡迎的還有PHP、Java、c#、Ruby等流行的WEB技術(shù)。
那么與這幾大流行語(yǔ)言相比,Python都有哪些優(yōu)勢(shì)呢?
狹路相逢,誰(shuí)會(huì)更勝一籌?
Round1
Python PK PHP
從開發(fā)的角度來(lái)看,PHP是面向WEB的語(yǔ)言。PHP應(yīng)用程序更像是一組單獨(dú)的腳本,甚至只是一個(gè)單獨(dú)入口。
而Python是多用途語(yǔ)言,也可以用于WEB開發(fā),基于Python的WEB應(yīng)用是加載到內(nèi)存的完整應(yīng)用,有自己的內(nèi)容聲明,保存所有的查詢和請(qǐng)求。
選擇Python還是PHP進(jìn)行 web應(yīng)用開發(fā)需要注意以下幾點(diǎn):
通用性
當(dāng)今時(shí)代,趨勢(shì)和流行非常重要,一些客戶和產(chǎn)品負(fù)責(zé)人只想使用***最熱門的技術(shù)來(lái)開發(fā)他們的項(xiàng)目,造成了技術(shù)精湛的開發(fā)人員卻完全沒有客戶和工作的情況出現(xiàn)。所以在開始學(xué)習(xí)任何東西前,要確保你要學(xué)的技術(shù)在未來(lái)1、5或10年內(nèi)仍保持流行,不會(huì)被遺忘。
不過(guò),你大可不必?fù)?dān)心,因?yàn)镻HP和Python都屬于世界上***的編程語(yǔ)言。
PHP用于構(gòu)建Wikipedia, Yahoo, WordPress, Friendster, MailChimp, Flickr 等許多“巨頭”,但不要以為Python沒什么用,它也用來(lái)構(gòu)建了YouTube, Instagram,桌面版的Dropbox, Reddit, Bitbucket, Quora, Spotify, Pinterest, Facebook的內(nèi)部服務(wù),以及 PayPal系統(tǒng)的一部分。
框架
當(dāng)你選擇一項(xiàng)技術(shù)的時(shí)候,工具的多樣性也是極其重要的,它會(huì)使你的工作簡(jiǎn)單、方便。如果一個(gè)技術(shù)為不同的任務(wù)提供了多種工具,程序員就不必每件事都要從頭開始了。
PHP***的框架是Laravel, Symfony, CodeIgniter, Yii 1 and 2,Phalcon 和其他一些,這些工具能幫你創(chuàng)建功能強(qiáng)大而整潔的應(yīng)用程序,而Python卻沒有這么多引以為豪的框架,***用的是Django 和 Flask,但是,我們可以向你保證,隨著Python社區(qū)的成長(zhǎng),這種情況會(huì)很快改變。
學(xué)習(xí)
這通常是學(xué)生***個(gè)想要知道的問(wèn)題,學(xué)習(xí)教育的過(guò)程越容易,意味著開始工作和賺錢越快。
Python當(dāng)然是這類的贏家,它的語(yǔ)法容易,簡(jiǎn)單易學(xué);而PHP卻不是這樣,掌握PHP需要花費(fèi)很多的時(shí)間和努力。
Python允許你犯些小錯(cuò)但不會(huì)破壞代碼,給新手一些信心繼續(xù)學(xué)習(xí)。從新手的角度來(lái)看,想學(xué)一些更容易、更靈活的技術(shù),Python無(wú)疑是***。你可以用Python創(chuàng)建安全的應(yīng)用程序,但使用用PHP卻需要額外的工具。
Round2
Python PK Java
Java是一種嚴(yán)格的類型語(yǔ)言,這意味著必須顯式聲明變量名。相比之下,動(dòng)態(tài)類型的Python則不需要聲明變量。在編程語(yǔ)言上有許多關(guān)于動(dòng)態(tài)和靜態(tài)類型的爭(zhēng)論,但有一點(diǎn)應(yīng)該注意:Python是一種語(yǔ)法簡(jiǎn)單的功能強(qiáng)大的語(yǔ)言,能夠通過(guò)編寫腳本就提供優(yōu)秀的解決方案,并能夠快捷地部署在各個(gè)領(lǐng)域。
Java可以創(chuàng)建跨平臺(tái)的應(yīng)用程序,而Python幾乎兼容當(dāng)前所有操作系統(tǒng)。對(duì)新手來(lái)講, Python比Javaf更容易上手,而且代碼易讀性強(qiáng),但如果你想你的代碼可以在任何地方都能執(zhí)行的話,那么還是選擇Java吧。不過(guò)Java的可移植性也是有代價(jià)的,使用Java你需要購(gòu)買更大的機(jī)器,消耗更多的內(nèi)存,并且程序更加難以開發(fā)。
Java比Python更復(fù)雜,沒有技術(shù)背景的人學(xué)起來(lái)并非易事。
Round3
Python PK c#
簡(jiǎn)而言之,Python原本就被設(shè)計(jì)的類似用英語(yǔ)表達(dá)一樣,只要你使用合適的變量名稱,許多表達(dá)式就很容易讀懂。另外,由于Python語(yǔ)法簡(jiǎn)單,沒有像句法括號(hào)和大量的修飾詞,各種類C的構(gòu)造和不同的初始化變量,所以Python寫的代碼易讀易學(xué)。
同時(shí),C#從C++和Java遺傳了很多原始表達(dá)的類C語(yǔ)法,更重要的是,C#語(yǔ)法使我們必須遵循一定的規(guī)則來(lái)編寫自已的方法或是繼承類,伴隨而來(lái)的是另一大串修飾詞,還有一點(diǎn)不能忘記的是要把代碼段放在括號(hào)內(nèi)。而Python只用SHIFTS鍵就可以讓代碼看上去很整潔。
至于編寫腳本方面,值得一提的是Python的腳本是真正的腳本,能夠被解釋器執(zhí)行。你可以用任何編輯器打開它,修改后就可以立即運(yùn)行。這在手邊沒有IDE或編譯器的時(shí)候優(yōu)勢(shì)十分明顯。而且使用Python更容易編寫跨平臺(tái)的腳本,甚至都不需要重新編譯。
但是,我們要指出Python的一個(gè)不足,就是需要在機(jī)器上安裝腳本解釋器,至少要在一個(gè)包或可執(zhí)行文件里打包上一個(gè)解釋器,從而使腳本的大小從幾KB增加到十幾M,不過(guò)對(duì)于現(xiàn)代計(jì)算機(jī)來(lái)說(shuō),十幾兆的空間需求基本可以忽略不計(jì),所以這也不是什么大問(wèn)題。
而C#需要IDE來(lái)編寫程序,C#的一個(gè)好處是,當(dāng)你編寫基于WINDOWS平臺(tái)的腳本時(shí),它有強(qiáng)大的各類WINDOWS系統(tǒng)組件支持。例如,注冊(cè)表、WMI、網(wǎng)絡(luò)等內(nèi)置工具。C#可以使用WINFORMS,你需要的時(shí)候可以很容易地創(chuàng)建圖形化接口。
沒法說(shuō)Python和C#哪個(gè)更好,Python比C#更容易學(xué),開源庫(kù)更多,但C#的標(biāo)準(zhǔn)庫(kù)比Python的更好,其性能更高。
Round4
Python PK Ruby
就***語(yǔ)言而言,Ruby和Python是***的。Ruby是非常流行的構(gòu)建網(wǎng)站技術(shù),其中***的是Twitter(早期版本),Basecamp,Github,Airbnb,Slideshare,Groupon。
Ruby和Python都是面向?qū)ο蟮恼Z(yǔ)言,都是動(dòng)態(tài)和靈活的。這些技術(shù)的主要區(qū)別在于他們解決問(wèn)題的方式。Ruby提供了不同的方法而Python通常只有一個(gè)。這個(gè)事實(shí)既是優(yōu)勢(shì)也劣勢(shì)。
***的Ruby框架是Ruby on rails。它和Django非常類似,因?yàn)檫@兩個(gè)框架都是為了解決相同的任務(wù)。如果我們比較這些技術(shù)的社區(qū),我們會(huì)發(fā)現(xiàn)他們幾乎是一樣的。
然而,形成這些團(tuán)體的人是不同的。Python在數(shù)據(jù)科學(xué)和數(shù)學(xué)方面很受歡迎,所以在這里你可以找到很多的學(xué)者和教授。
記住,當(dāng)你開發(fā)web應(yīng)用程序時(shí),可以用RoR實(shí)現(xiàn),也可以用Django,兩者都是快速高效的。如果開發(fā)偏重于大量計(jì)算和數(shù)據(jù)處理的應(yīng)用,應(yīng)該選擇Python。
任何技術(shù)成功的秘密在于圍繞它所構(gòu)建的社區(qū),不同人群協(xié)同工作來(lái)確定其未來(lái)的發(fā)展演變,Python的支持者是世界上規(guī)模***和構(gòu)成最多樣化的一個(gè)團(tuán)隊(duì),不僅有數(shù)以千計(jì)的個(gè)人開發(fā)者,而且還有諸如谷歌,Yandex,Dropbox,Mozilla,微軟(在Visual Studio中使用),英特爾等許多巨頭公司,他們和其他許多公司一起,已經(jīng)用Python創(chuàng)建了世界上***的和***的項(xiàng)目。
金屬質(zhì)感分割線
綜上所述,Python與PHP、Java、c#、Ruby等語(yǔ)言相比,都有其獨(dú)特的優(yōu)勢(shì),且隨著開發(fā)人員社區(qū)的不斷狀大,支持庫(kù)的持續(xù)增多,Python已成為世界上功能最豐富的編程語(yǔ)言之一,可適用于任何項(xiàng)目開發(fā)。