為什么 Python 不是未來的編程語言_第1頁
為什么 Python 不是未來的編程語言_第2頁
為什么 Python 不是未來的編程語言_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PythonInfoQ中文站曾編譯過相關(guān)文章,今天,我們翻譯并分享了RheaMoutafis對Python的看法,權(quán)當(dāng)一家之言吧!編程社區(qū)花了幾十年的時間才領(lǐng)略到Python迷人之處。但自2010年初以來,Python就一直在蓬勃發(fā)展,并最終在受歡迎程度上超越了C、Java和。但這種趨勢還會持續(xù)到什么時候呢?什么時候Python最終會被其他編程語言所取代?為什么會被取代?闡述Python那些受歡迎的優(yōu)點(diǎn),以及將來會打敗它的弱點(diǎn)。1是什么讓Python現(xiàn)在如此流行Python的成功體現(xiàn)在StackOverflow于StackOverflow的規(guī)模,因此它是編程語言受歡迎程度的一個很好的指標(biāo)。StackOverflow上各種編程語言的標(biāo)簽快照。盡管R語言在過去幾年里一直處于停滯不前的狀態(tài),而且許多其他編程語言也在穩(wěn)步下降,但Python的增長似乎勢不可擋。幾乎所有StackOverflow上的問題有14%被標(biāo)記為“Python”,而且這一趨勢還在上升。這其中有幾個原因:它是古老的Python早在20世紀(jì)90年代就出現(xiàn)了。這并不僅僅意味著它有充足的時間來成長,它還得到了一個龐大的支持社區(qū)。因此,如果你在用Python編寫代碼遇到了什么問題,你很有可能通過Google搜索一下就能解決。這是因為有人已經(jīng)遇到過和你一樣的問題,并記下了一些有用的東西。它對初學(xué)者很友好的是,Python的語法非常易于理解。C++數(shù)換成了整數(shù)。如果你曾經(jīng)同時閱讀過Python和C+PythonC++在設(shè)計時考慮到了英語,但與Python代碼相比,它的閱讀還是相當(dāng)困難。它的用途廣泛由于Python已經(jīng)存在了如此久的時間,開發(fā)人員已經(jīng)為各種潛在需求制作了軟件包?,F(xiàn)在,你可以找到幾乎所有用途的軟件包。想要計算數(shù)字、向量和矩陣嗎?NumPy就是你要找的東西。想要做技術(shù)和工程方面的計算嗎?請使用SciPy。想在數(shù)據(jù)處理和分析方面做大嗎?那就試試Pandas吧。想從人工智能開始嗎?那為什么不使用Scikit-Learn呢?無論你想做哪種計算任務(wù),都有相應(yīng)的Python軟件包。這使得Python一直處于發(fā)展前沿,從過去幾年機(jī)器學(xué)習(xí)的火熱的浪潮中可以看出來。2Python的缺點(diǎn)以及這些缺點(diǎn)是否會致命基于前面的闡述,你可以想象Python在未來幾年仍將興盛不衰。但是,像所有的技術(shù)一樣,Python也有它的弱點(diǎn)。我將一一介紹最重要的缺陷,并評估這些缺陷是否致命。速度Python很慢。真的,非常非常慢。平均而言,使用Python完成一項任務(wù)所需的時間,是任何其他編程語言的2~10倍。另一個原因是,Python一次只能執(zhí)行一個任務(wù)。這是采用靈活數(shù)據(jù)類型帶來的后果:Python需要確保每個變量只有一種數(shù)據(jù)類型,而并行化的進(jìn)程可能會弄亂這一點(diǎn)。相比之下,一般的Web瀏覽器可以同時運(yùn)行十幾個不同的線程。此外,還有其他一些理論。的只是幾分之一秒的時間。實際上,最終用戶并不在乎他們的應(yīng)用程序是在0.001秒還是0.01秒內(nèi)加載的。作用域最初,Python的作用域是動態(tài)的。這基本上意味著,要計算表達(dá)式,編譯器首先搜索當(dāng)前塊,然后依次搜索所有調(diào)用函數(shù)。這就是大多數(shù)現(xiàn)代編程語言使用靜態(tài)作用域的原因。Python曾試圖過渡到靜態(tài)作用域,但搞砸了。通常情況下,內(nèi)部作用域(例如函數(shù)中的函數(shù))能夠查看和更改外部作用域。但在Python中,內(nèi)部作用域只能看到外部作用域,而不能改變它們,這就導(dǎo)致了很多混亂的情形。Lambda盡管Python具有所有的靈活性,但Lambda的使用還是相當(dāng)受限的。Lambda只能是Python中的表達(dá)式,不能是語句。另一方面,變量聲明和語句始終是語句。這意味著Lambda并不能用于它們。表達(dá)式和語句之間的這種區(qū)別是相當(dāng)隨意的,在其他編程語言中并不會存在??瞻资勾a的可讀性更強(qiáng),但可維護(hù)性卻更低了。在Python中,你可以使用空格和縮進(jìn)來表示不同級別的代碼。這使得它在視覺上具有吸引力,理解起來也更直觀。其他編程語言,如C+對初學(xué)者也不太友好,但是它使代碼更易于維護(hù)。對于較大的項目,這個方法更有用。像Haskell這樣的新語言解決了這個問題:它們依賴于空格,但為那些希望不使用空格的人提供了另一種語法。移動開發(fā)件。但使用Python開發(fā)的移動應(yīng)用并不多。不過,這并不意味著它做不到 —有一個名Kivy的Python軟件包就是專門用于開發(fā)移動應(yīng)用的。但是Python在設(shè)計時并沒有考慮到移動開發(fā)。因此,即使它可能會為基本任務(wù)產(chǎn)生差強(qiáng)動編程框架包括ReactFlutterIconic和。動設(shè)備的流量早已超過臺式計算機(jī),所以可以肯定地說,學(xué)會Python并不足以成為經(jīng)驗豐富的全能開發(fā)人員。運(yùn)行時錯誤Python腳本不是先編譯后執(zhí)行的。相反,它會在每次執(zhí)行時編譯,因此,任何編碼錯誤都測試。必須用PythonPython上設(shè)置時間戳的最大因素。3未來何時,誰將取代Python?在編程語言市場上有幾個新的競爭對手:Rust提供了與Python同樣的安全性,任何變量不會被意外覆蓋。但是,它用所有權(quán)(ownership)和借用(borrowing)解決了性能問題。根據(jù)StackOverflowInsights的統(tǒng)計,Rust也是過去幾年來最受歡迎的編程語言。Go對于Python這樣的初學(xué)者來說很棒。它是如此簡單,以至于維護(hù)代碼更加容易了。有趣的是:Go開發(fā)人員是市場上收入最高的程序員之一。JuliaPythonPython或Matlab,然后用C++庫來修補(bǔ)整個程序,這在大規(guī)模應(yīng)用時是必需的?,F(xiàn)在,人們可以使用Julia,而不是同時使用兩種編程語言。雖、Go和Julia是修補(bǔ)了Python薄弱部分的編程語言StackOverflow標(biāo)簽的數(shù)量可以看出,它們的趨勢都很明顯:上升。StackOverflow上各種編程語言標(biāo)簽快照。鑒于目前Python已無處不在的流行程度,這些新語言

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論