日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python這么火,為什么說它不是未來的編程語言?

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)

為樂山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及樂山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、樂山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

Python這兩年非?;?,隨處可見的廣告讓它逐漸變成了一種老少皆知的存在。

雖然問世幾十年后,Python才得到編程社區(qū)的重視。

但是,其發(fā)展的勢頭似乎無人能及。

自2010年年初以來,Python一直在蓬勃發(fā)展——在流行趨勢方面,它最終超過了C、C#、Java和Javascript,成為計算機語言中的“大熱門”。

它為人們提供了優(yōu)質(zhì)的服務(wù)——但這樣的趨勢會持續(xù)到什么時候呢?Python何時會被其他語言取代?為什么會這樣?

關(guān)于Python的確切有效期眾說紛紜,這些猜測可能會像科幻小說一樣荒誕不經(jīng)。與其猜測,不如評估一下當前促進Python流行的優(yōu)勢,以及未來會阻礙其流行的劣勢。

是什么讓Python在當下如此流行

Python的成功體現(xiàn)在Stack Overflow趨勢上,該趨勢測量了平臺上帖子的標簽數(shù)量??紤]到Stack Overflow的大小,這確實是衡量語言受歡迎程度的良好指標。

Stack Overflow上各種編程語言的標簽快照

盡管R語言在過去幾年一直處于平穩(wěn)狀態(tài),而且很多其他語言也處于穩(wěn)步下降趨勢,但Python的增長卻似乎勢不可擋。在所有的Stack Overflow問題中,幾乎有14%被標記上了“python”,而且這種趨勢越來越明顯。以下是出現(xiàn)這種情況的幾個原因:

1. 出現(xiàn)時間早

Python大約誕生于90年代。這不僅意味著它有足夠的時間成長,還獲得了一個龐大的粉絲群體。

所以如果人們在用Python編碼時遇到了問題,那么很可能只需用谷歌搜索一下便能解決。這不過是有些人已經(jīng)遇到了相同的問題,寫了一些有助于解決問題的內(nèi)容而已。

2. 適合初學(xué)者

Python已經(jīng)存在了數(shù)十年,程序員們可利用這段時間寫出優(yōu)質(zhì)的教程。除此之外,Python的語法也很容易理解。

首先,無需指定數(shù)據(jù)類型。指定變量即可;Python會根據(jù)語境判斷它是整數(shù)、浮點值、布爾值還是其他值。對于初學(xué)者來說,這是一個很大的優(yōu)勢。如果是C++語言,那么用浮點值替換整數(shù)時,程序?qū)⒉粫M行編譯,曾經(jīng)使用該語言編程的初學(xué)者應(yīng)該對這種情況帶來的挫敗感深有體會。

如果初學(xué)者曾經(jīng)并行閱讀過Python和C++代碼,那么會明白Python是多么容易理解。

即使C++語言在設(shè)計時考慮到了英語,但是和Python代碼相比,它還是難以看懂。

3. 用途廣泛

Python已經(jīng)存在了相當長的時間,開發(fā)人員們根據(jù)不同目的制作出了不同的程序包。現(xiàn)在,幾乎所有的東西都能打包。

想處理數(shù)字、向量和矩陣?Numpy是個好幫手。

想對技術(shù)和工程進行計算?用Scipy。

想在數(shù)據(jù)處理和分析領(lǐng)域大展身手?試試Pandas。

想從人工智能入手?為什么不用Scikit-Learn。

無論人們要管理什么樣的計算任務(wù),都有可能用到Python程序包。從機器學(xué)習(xí)在過去幾年間的迅猛發(fā)展便可看出,自身用途的廣泛讓Python處于近期發(fā)展的前列。

Python的缺點——以及它們是否致命

根據(jù)先前的論述,可以想象Python會在很長一段時間之內(nèi)保持發(fā)展的迅猛勢頭。但和其他技術(shù)一樣,Python也有自己的弱點。筆者將一一介紹其最值得關(guān)注的缺點,并分析這些缺點是否致命。

1. 速度

Python的速度很慢。真的很慢。和其他語言相比,Python需要花2-10倍的時間來完成任務(wù)。

速度慢有多種原因。其中一個原因是Python屬于動態(tài)類型——請記住,無需像其他語言一樣指定數(shù)據(jù)類型。這意味著需要占用大量內(nèi)存,因為程序需要為那些可在任何情況下運行的變量保留足夠的空間。大量的內(nèi)存占用轉(zhuǎn)化為大量的計算時間。

另一個原因是Python一次只能執(zhí)行一個任務(wù)。靈活的數(shù)據(jù)集會出現(xiàn)這樣的結(jié)果——Python需要確保每個變量只有一個數(shù)據(jù)類型,平行進程可能會造成混亂。

相比之下,普通的網(wǎng)絡(luò)瀏覽器一次可以運行十二個不同的線程。還有一些其他的理論。

但歸根結(jié)底,所有的速度問題都無關(guān)緊要。電腦和服務(wù)器的價格十分便宜,所以人們討論的只是關(guān)于幾分之一秒的運行速度。而且終端用戶并不在意自己是用0.001秒還是0.01秒加載應(yīng)用程序。

2. 范圍

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

動態(tài)作用域方面的問題在于,每個表達式都需要在每個可能的語境中進行測試——這相當繁瑣。這就是大多數(shù)現(xiàn)代編程語言都使用靜態(tài)作用域的原因。

Python曾試圖過渡到靜態(tài)作用域,但卻造成了混亂。通常情況下,內(nèi)部作用域——比如函數(shù)中的函數(shù)——將能夠查看并更改外部作用域。但Python中的內(nèi)部作用域只能查看外部作用域,卻不能對其進行更改。這會導(dǎo)致嚴重的混亂。

3. Lambdas

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

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

表達式和語句之間的區(qū)別相當隨意,而其他語言并沒有這樣的情況。

空格讓代碼更容易看懂,但也讓其更難以

4. 空格

Python使用空格和縮進來表示不同級別的代碼。這使得代碼在視覺上更具有吸引力,能夠直觀理解。

其他語言,比如C++語言,更多使用的是大括號和分號。雖然在視覺上沒有什么吸引力,對初學(xué)者也并不友好,但這樣做讓代碼更易于維護。對于較大的項目來說,這大有幫助。

Haskell這樣較新的語言解決了這個問題:該語言多使用空格,但又為那些不想使用空格的人提供了另一種語法。

5. 移動開發(fā)

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

但正在使用Python進行開發(fā)的移動應(yīng)用軟件并不多。這并不意味著用Python進行移動開發(fā)無法實現(xiàn)——名為Kivy的Python程序包就可以做到移動開發(fā)。

但Python并沒有考慮到移動設(shè)備。所以即使它有可能完成一些基本任務(wù),也最好使用為移動應(yīng)用程序開發(fā)而創(chuàng)建的語言。廣泛使用的移動編程框架包括React Native、Flutter、Iconic和Cordova。

需要明確的是,在未來的很多年,筆記本和臺式機應(yīng)該都會繼續(xù)存在。但是,移動設(shè)備在通信量方面已遠遠超越了桌面設(shè)備,因此可以肯定地說,想要成為經(jīng)驗豐富的全能型開發(fā)人員,只學(xué)習(xí)Python是不夠的。

6. 運行錯誤

Python腳本并不是遵循先編譯后執(zhí)行的流程。相反,它在每次執(zhí)行時進行編譯,所以任何編碼錯誤在運行時都會顯現(xiàn)出來。這會導(dǎo)致性能下降、浪費時間以及需要進行大量測試。真的是大量的測試。

對于初學(xué)者來說,這是一件好事,因為他們可以從測試中學(xué)到很多。但對于經(jīng)驗豐富的開發(fā)人員來說,對Python中的復(fù)雜程序進行調(diào)試會讓他們感到無所適從。性能不佳是在Python上設(shè)置時戳的最大原因。

什么會在未來取代Python——具體是什么時候

編程語言市場上出現(xiàn)了幾個新的競爭者:

  • Rust具備與Python相同的安全性——不會意外覆蓋任何變量。但它通過所有權(quán)和借用的概念解決了性能問題。Stack OverflowInsights顯示,它還是過去幾年當中最受人們喜愛的編程語言。
  • Go非常適合初學(xué)者,就像Python一樣。它是如此簡單,甚至連維護代碼都變得更加容易。有趣的一點是:Go開發(fā)人員是市場上收入最高的程序員之一。
  • Julia是一種非常新的語言,可與Python展開正面競爭。它填補了大規(guī)模技術(shù)計算的空白:以前,人們通常會使用Python或Matlab,并使用C++庫對整個程序進行修補,這一過程在大規(guī)模技術(shù)計算中是必需的?,F(xiàn)在,人們可以使用Julia,而不必費力使用兩種語言。

雖然市面上還有其他的語言,但Rust、Go和Julia卻是彌補了Python弱項的語言。所有這些語言都在尚未投入使用的技術(shù)中表現(xiàn)出色,在人工智能領(lǐng)域的表現(xiàn)尤其亮眼。Stack Overflow標簽的數(shù)量顯示,這些語言的市場份額仍然很小,盡管如此,它們未來的上升趨勢卻顯而易見。

Stack Overflow上各種編程語言的標簽快

目前,Python十分流行,可以說是無處不在,新語言要想取代它,肯定需要五年(甚至可能是十年)的時間。

這個時候,很難說會是哪種語言取代Python(Rust、Go、Julia還是未來的某種新語言)。但考慮到Python體系結(jié)構(gòu)中最基本的性能問題,一定會有某種語言取代它的位置。

你覺得呢?


新聞名稱:Python這么火,為什么說它不是未來的編程語言?
本文鏈接:http://www.dlmjj.cn/article/djoshde.html