Python會在什么時候被其他語言取代

Python經(jīng)過了幾十年的努力才得到了編程社區(qū)的賞識。自2010年以來,Python得到了蓬勃發(fā)展,并最終超越了C、C#、Java和JavaScript。

10年積累的成都網(wǎng)站建設、網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站設計后付款的網(wǎng)站建設流程,更有大新免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

但是,這種趨勢將持續(xù)到什么時候?何時Python會被其他語言取代?被取代的原因又是什么呢?

對于Python被淘汰出局的確切日期有很多猜測,它可能會像科幻小說一樣成為過去。在本文中,我將討論促成Python大面積普及的優(yōu)勢,以及將來導致它隕落的弱點。

促成Python流行的因素

通過Stack Overflow發(fā)展趨勢就可以洞悉Python的成功??紤]到StackOverflow的規(guī)模,我們可以認為這是衡量編程語言流行度的一個很好的指標。

盡管在過去幾年中,R語言的發(fā)展一直處于平穩(wěn)狀態(tài),很多其他編程語言已開始穩(wěn)步下降,但Python的增長似乎勢不可擋。在所有StackOverflow的問題中,帶有“python”標簽的占到了14%,而且這種趨勢還在上升。其中的原因有很多。

Python是一種古老的語言

Python于90年代問世。這不僅意味著Python有足夠的時間成長,而且還擁有了一個龐大的支持社區(qū)。

因此,如果你在使用Python進行編程時遇到任何問題,只需上網(wǎng)搜索就可以得到答案。因為總是會有人在這之前就遇到了這個問題,并為此撰寫了一些有用的資料。

對初學者很友好

Python對初學者友好的原因不僅僅是因為它已經(jīng)存在了數(shù)十年,予以程序員足夠的時間編寫出色的教程,而且還因為Python的語法非常易于理解。

首先,無需指定數(shù)據(jù)類型。你只需聲明一個變量即可,Python會根據(jù)上下文判斷這個變量是整數(shù)、浮點數(shù)、布爾值還是其他類型。對于初學者來說,這是一個巨大的優(yōu)勢。如果你有過使用C++編程的經(jīng)歷,那么就會懂得只因為你錯把浮點數(shù)定義成了整數(shù),就導致程序無法通過編譯有多么難受了。

此外,比較Python和C++代碼,不難發(fā)現(xiàn)Python有多么易于理解。盡管C++在設計時考慮到了英語,但與Python代碼相比,閱讀C++的代碼還是相當坎坷。

用途廣泛

由于Python已經(jīng)存在了很長時間,因此開發(fā)人員為之開發(fā)出了各色的軟件包。如今,無論遇到什么問題,你都可以找到相關(guān)的軟件包。

  • 想處理數(shù)字、向量和矩陣?那么就來試試 NumPy 吧。
  • 想進行技術(shù)和工程的計算?那么就來試試 SciPy 吧。
  • 想操作和分析大數(shù)據(jù)?那么就來試試 Pandas 吧。
  • 想學習人工智能?為什么不試試 Scikit-Learn 呢。

無論你需要進行哪方面的計算任務,都可以找到相關(guān)的Python軟件包。由于過去幾年中機器學習的迅猛發(fā)展,Python已經(jīng)站在了時代發(fā)展的最前沿。

Python會在什么時候被其他語言取代

Python的缺點,這些缺點是否致命?

通過上述討論,你可以想象在很長一段時間內(nèi)Python的發(fā)展都勢不可擋。然而,Python也逃不開一切技術(shù)的命運,它也有自己的弱點。接下來,我將逐個介紹Python的重大缺陷,并評估這些缺陷是否致命。

速度

Python很慢,非常非常慢。平均而言,使用Python完成某個任務所需的時間是使用任何其他語言的2–10倍。

其中的原因有很多。其中之一是因為Python是動態(tài)類型的,別忘了你不需要像其他語言一樣指定數(shù)據(jù)類型。這意味著內(nèi)存的耗費非常大,因為在任何情況下程序都需要為每個變量保留足夠的空間。而巨大的內(nèi)存使用量必然需要耗費大量的計算時間。

另一個原因是Python一次只能執(zhí)行一個任務。這是靈活的數(shù)據(jù)類型帶來的結(jié)果,Python需要確保每個變量只有一個數(shù)據(jù)類型,而并行進程可能會在這一點上出問題。

相比之下,普通的Web瀏覽器一次可以運行十幾個不同的線程。當然其中還涉及別的因素。

但最終所有的速度問題都不打緊。因為電腦和服務器的價格越來越低,我們談論的也只不過是幾分之一秒的問題。最終用戶并不真正在乎他們的應用加載需要0.001還是0.01秒。

范圍

最初,Python是動態(tài)作用域。這基本上意味著,為了評估表達式,編譯器首先需要搜索當前塊,然后依次搜索所有調(diào)用函數(shù)。

動態(tài)作用域的問題在于,每個表達式都需要在所有上下文中進行測試,這很繁瑣。這就是為什么大多數(shù)現(xiàn)代編程語言都使用靜態(tài)作用域。

Python曾嘗試過渡到靜態(tài)作用域,但搞砸了。通常,內(nèi)部作用域(例如函數(shù)中的函數(shù))能夠查看和更改外部作用域。在Python中,內(nèi)部作用域只能看到外部作用域,但不能更改。因此引發(fā)了很多混亂。

Lambdas

盡管Python非常靈活,但Lambdas的使用還是有一定的局限性。Lambda只能是Python中的表達式,而不能是語句。

另一方面,變量聲明和語句始終是語句,這意味著它們不能使用Lambda。

在Python中,表達式和語句之間的區(qū)別相當隨意,這是其他編程語言都沒有的問題。

空白

在Python中,你需要使用空白和縮進來表示不同級別的代碼。這種格式具有視覺吸引力,而且易于理解。

其他編程語言(例如C++)都需要依賴大括號和分號。盡管這可能在視覺上沒有那么強的吸引力,而且對初學者不夠友好,但可以提高代碼的可維護性。在大型項目中,這種方式更為妥當。

Haskell等新興的編程語言解決了這個問題:它們依賴空白,但同時也為那些希望不用空白的人提供了另一種語法。

移動開發(fā)

我們目睹了從臺式機向智能手機的轉(zhuǎn)變,很明顯,我們需要強大的語言來構(gòu)建移動軟件。

然而,使用Python開發(fā)的移動應用并不多。這并不意味著Python無法開發(fā)移動應用,你可以試試看一個名為 Kivy 的 Python 包。

但是,Python的設計被沒有考慮到移動設備。因此,即使Python可以應付基本的任務,但我們最好還是選擇專門為移動應用程序開發(fā)而創(chuàng)建的語言。廣泛用于移動編程的語言包括:React Native、Flutter、Iconic和Cordova。

我們需要明確的是,筆記本電腦和臺式計算機已經(jīng)存在很多年了。然而,由于移動設備的使用已然超越了桌面設備,因此我們肯定地說,學習Python不足以成為經(jīng)驗豐富的全方面開發(fā)人員。

運行時錯誤

Python不需要首先編譯,然后再執(zhí)行。相反,它會在每次執(zhí)行時編譯,因此所有編程上的錯誤都會在運行時顯示出來。這會導致性能下降、浪費時間,而且還需要進行大量測試。

對于初學者來說,這未必是壞事,因為測試可以教會他們很多知識。然而,對于經(jīng)驗豐富的開發(fā)人員而言,必須使用Python調(diào)試復雜的程序很令人頭疼。性能欠缺是Python最大的問題。

Python什么時候會被取代?

如今,編程語言市場上涌現(xiàn)了新的競爭力量:

  • Rust提供了與Python相同的安全性——不會意外覆蓋任何變量。但是,它通過所有權(quán)和借用的概念解決了效率的問題。根據(jù)StackOverflow Insights,Rust是近幾年最受歡迎的編程語言。
  • Go 與 Python 一樣非常適合初學者。語言本身非常簡單,維護代碼更加簡單。此外,有趣的是,Go開發(fā)人員是市場上收入最高的程序員之一。
  • Julia是一種非常新的語言,可與Python正面競爭。Julia填補了大規(guī)模技術(shù)計算的空白:以前,人們通常都需要使用Python或Matlab編寫代碼,然后再使用C++庫修補整個程序,因為C++庫是大規(guī)模必不可少的。如今,人們可以使用Julia,而不必在兩種語言之間掙扎。

盡管市場上還有其他語言,但Rust、Go和Julia 可以彌補Python的弱點。所有這些語言在即將到來的技術(shù)中都有出色的表現(xiàn),最典型的就是人工智能。盡管它們的市場份額仍較小,但根據(jù)StackOverflow的數(shù)據(jù)顯示,這些語言的發(fā)展呈現(xiàn)出明顯的上升趨勢。

新聞標題:Python會在什么時候被其他語言取代
轉(zhuǎn)載源于:http://bm7419.com/article26/psdscg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、云服務器品牌網(wǎng)站設計、App開發(fā)、響應式網(wǎng)站、網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計