日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python缺点这么多、为什么还流行_Python这么火,为什么说它不是未来的编程语言?...

發(fā)布時(shí)間:2024/7/23 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python缺点这么多、为什么还流行_Python这么火,为什么说它不是未来的编程语言?... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

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

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

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

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

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

是什么讓Python在當(dāng)下如此流行

Python的成功體現(xiàn)在Stack Overflow趨勢(shì)上,該趨勢(shì)測(cè)量了平臺(tái)上帖子的標(biāo)簽數(shù)量。考慮到Stack Overflow的大小,這確實(shí)是衡量語言受歡迎程度的良好指標(biāo)。

Stack Overflow上各種編程語言的標(biāo)簽快照

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

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

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

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

2. 適合初學(xué)者

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

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

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

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

3. 用途廣泛

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

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

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

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

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

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

Python的缺點(diǎn)——以及它們是否致命

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

1. 速度

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

速度慢有多種原因。其中一個(gè)原因是Python屬于動(dòng)態(tài)類型——請(qǐng)記住,無需像其他語言一樣指定數(shù)據(jù)類型。這意味著需要占用大量內(nèi)存,因?yàn)槌绦蛐枰獮槟切┛稍谌魏吻闆r下運(yùn)行的變量保留足夠的空間。大量的內(nèi)存占用轉(zhuǎn)化為大量的計(jì)算時(shí)間。

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

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

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

2. 范圍

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

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

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

3. Lambdas

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

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

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

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

4. 空格

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

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

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

5. 移動(dòng)開發(fā)

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

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

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

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

6. 運(yùn)行錯(cuò)誤

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

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

什么會(huì)在未來取代Python——具體是什么時(shí)候

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

Rust具備與Python相同的安全性——不會(huì)意外覆蓋任何變量。但它通過所有權(quán)和借用的概念解決了性能問題。Stack OverflowInsights顯示,它還是過去幾年當(dāng)中最受人們喜愛的編程語言。

Go非常適合初學(xué)者,就像Python一樣。它是如此簡單,甚至連維護(hù)代碼都變得更加容易。有趣的一點(diǎn)是:Go開發(fā)人員是市場上收入最高的程序員之一。

Julia是一種非常新的語言,可與Python展開正面競爭。它填補(bǔ)了大規(guī)模技術(shù)計(jì)算的空白:以前,人們通常會(huì)使用Python或Matlab,并使用C++庫對(duì)整個(gè)程序進(jìn)行修補(bǔ),這一過程在大規(guī)模技術(shù)計(jì)算中是必需的。現(xiàn)在,人們可以使用Julia,而不必費(fèi)力使用兩種語言。

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

Stack Overflow上各種編程語言的標(biāo)簽快

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

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

你覺得呢?

【編輯推薦】

【責(zé)任編輯:趙寧寧 TEL:(010)68476606】

點(diǎn)贊 0

總結(jié)

以上是生活随笔為你收集整理的python缺点这么多、为什么还流行_Python这么火,为什么说它不是未来的编程语言?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。