這篇文章主要講解了“Python的缺點有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python的缺點有哪些”吧!
創(chuàng)新互聯(lián)專注于白塔網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供白塔營銷型網(wǎng)站建設(shè),白塔網(wǎng)站制作、白塔網(wǎng)頁設(shè)計、白塔網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造白塔網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供白塔網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
Python 是20世紀(jì)90年代發(fā)布的一種通用編程語言。
雖然 Python 語法簡潔,但它在第一個十年中并不為人所知,也沒有真正進入開發(fā)人員的工作中。Perl 是首選的腳本語言,Java 已經(jīng)成為面向?qū)ο缶幊填I(lǐng)域的主流。當(dāng)然,任何語言的成熟都需要時間,只有當(dāng)它比現(xiàn)有的工具更適合開發(fā)任務(wù)時才會被采用。
對于Python來說,這一時間最早出現(xiàn)在21世紀(jì)初,那時人們開始意識到它比 Perl 更容易學(xué)習(xí),并且提供了與其他語言的互操作性。
這個發(fā)現(xiàn)讓非常多開發(fā)人員將 Python 集成到他們的應(yīng)用程序中。Django 的出現(xiàn)最終導(dǎo)致了 Perl 的滅亡,Python 開始獲得了更多的發(fā)展契機。雖然流行程度還比不上比Python更新的 Java 和 JavaScript。
快進到現(xiàn)在,根據(jù)2019年 StackOverflow 開發(fā)者調(diào)查,Python 已經(jīng)超越 Java 成為第二流行的編程語言。
Python 是最近十年發(fā)展最快的編程語言。Python 的流行與20世紀(jì)10年代大數(shù)據(jù)的出現(xiàn)以及機器學(xué)習(xí)和人工智能的發(fā)展密不可分。企業(yè)迫切需要一種能夠幫助管理大規(guī)模數(shù)據(jù)和科學(xué)計算任務(wù)的低門檻快速開發(fā)語言。Python 非常適合這些領(lǐng)域的挑戰(zhàn)任務(wù)。
除了這些有利因素之外,Python 是一種支持動態(tài)類型的解釋語言。更重要的是,它得到了 Google 的支持,Google 投資開發(fā)了Python的深度學(xué)習(xí)框架 Tensorflow,這讓 Python 得以成為數(shù)據(jù)分析、可視化和機器學(xué)習(xí)的首選語言。
然而,雖然機器學(xué)習(xí)和人工智能的需求還在不斷增長,但是 Python 不會一直都站在巔峰,它也會有老去的一天。像每種編程語言一樣,Python 也有自己的弱點。這些弱點讓 Python 很容易被更適合企業(yè)需求的編程語言所取代。雖然已經(jīng)有 R 語言了,但是 Swift、Julia 和 Rust 等較新語言的出現(xiàn)實際上對當(dāng)前的數(shù)據(jù)科學(xué)之王構(gòu)成了更大的威脅。
Rust 還在努力追趕著各大機器學(xué)習(xí)社區(qū)的步伐,因此,我相信 Swift 和 Julia 將是推翻 Python 并最終統(tǒng)治數(shù)據(jù)科學(xué)的語言。
Python缺乏類型安全性,速度非常慢
所有的好東西都是有代價的,Python的動態(tài)類型特性也不例外。動態(tài)類型化可以在不定義類型的情況下,讓快速編寫代碼變得更加容易,但是,這會增加代碼運行時產(chǎn)生 BUG 的風(fēng)險,特別是當(dāng)代碼庫大小增加時,開發(fā)人員在生產(chǎn)環(huán)境中運行代碼時會更加艱難。編譯器很容易發(fā)現(xiàn)的 BUG,在 Python 中反而無法識別,這樣就會產(chǎn)生開發(fā)障礙,最終導(dǎo)致大規(guī)模應(yīng)用程序的開發(fā)過程放慢。
更糟糕的是,與編譯的代碼不同,Python 的解釋器在執(zhí)行時要分析每一行代碼。與其他語言相比,不僅導(dǎo)致開銷變大,還大大降低了程序的性能。
Julia 可以讓你避免這些問題。盡管它是動態(tài)類型的,但它有一個實時編譯器。JIT 編譯器要么在執(zhí)行前生成機器代碼,要么使用先前存儲的緩存編譯,這能讓 Julia 與靜態(tài)類型語言一樣具有優(yōu)秀的性能。更重要的是,它有一個稱為多分派的關(guān)鍵特性,類似于 OOPs 的函數(shù)重載,雖然只能在運行程序的時候有用。多分派的強大之處在于它能夠處理不同的參數(shù)類型,而無需創(chuàng)建單獨的函數(shù)名或嵌套的 if 語句。這個功能不僅可以幫助開發(fā)人員編寫更加緊湊的代碼,也是數(shù)值計算的一大勝利,因為與 Python 有所不同,我們可以輕松地通過擴展解決方案來處理所有類型的參數(shù)。
還有更好,那就是,Swift 作為一種靜態(tài)類型的語言,因其 LLVM(低級虛擬機)編譯器而得到了高度優(yōu)化。LLVM 讓快速編譯成匯編代碼成為可能,這能讓 Swift 超高效運行,達到了幾乎與 C 語言一樣快的速度。此外,Swift 擁有更好的內(nèi)存安全和管理工具,即自動引用計數(shù)。與 garbage 收集器不同,ARC 具有更高的確定性,因為只要引用計數(shù)歸零,它就會回收內(nèi)存。
作為提供類型注釋的編譯語言,Swift 和 Julia 比 Python 更快,功能更強大。僅僅這一點,可能就足以讓開發(fā)人員推薦它們,而不是使用較舊的語言,考慮很多其他因素。
Python在并行性方面有局限性
如果說慢不是 Python 很明顯的缺點,那么這種語言在并行計算方面的局限性絕對是最明顯的缺點了。
簡而言之,Python 使用 GIL(全局解釋器鎖),它會通過阻止多個線程同時執(zhí)行,來提高單個線程的性能。該過程有一個很大的障礙:開發(fā)人員不能使用多個 CPU 核心來進行密集的計算。
在此,我必須要同意一個觀點,即在利用 Python 與 Tensorflow、PyTorch 等 C / C ++ 庫的互操作性時,我們目前已經(jīng)做得很好了。 但是 Python 包裝器并不能解決所有調(diào)試問題。當(dāng)檢查底層代碼時,我們還是要依賴于 C 和 C ++。 從本質(zhì)上講,我們不能在低層次上利用 Python 的優(yōu)勢,這也是 Python 與眾不同之處。
這一因素很快將決定 Python 的衰落、Julia 和 Swift 的崛起。Julia 是一種專門用來解決 Python 缺點的語言。它主要提供三個特性:協(xié)同程序(異步任務(wù))、多線程和分布式計算,所有這些特性都顯示并發(fā)和并行編程有無限可能。這種結(jié)構(gòu)使 Julia 能夠以比 Python 更快的速度執(zhí)行科學(xué)計算和解決大數(shù)據(jù)問題。
另一方面,Swift 擁有開發(fā)移動應(yīng)用所需的所有工具,在并行計算方面沒有問題。
Swift和Julia都擁有Python的互操作性和強大的支持
雖然 Python 在速度、多線程和類型安全方面存在缺點,但它擁有一個巨大的生態(tài)系統(tǒng),擁有大量的庫和包。在Python面前,Swift和Julia在機器學(xué)習(xí)領(lǐng)域仍然是嬰兒,他們擁有的庫數(shù)量非常有限。然而,它們與 Python 的互操作性彌補了 Julia 和 Swift 中缺少庫支持的不足。
Julia 不僅允許程序員使用 Python 代碼(反之亦然),還支持與 C、R、Java 以及幾乎所有主要編程語言的互操作性。這種多功能性肯定會給這種語言一個很好的推動,并增加它在數(shù)據(jù)科學(xué)家中被迅速采用的機會。
另一方面,Swift 通過 PythonKit 庫提供了與 Python 的互操作性。Swift(起源于蘋果)比較大的賣點是它得到了谷歌(Google)的大力支持,谷歌幾十年前就全力支持 Python。
另外,Swift 的創(chuàng)建者 chrislattner 現(xiàn)在正在谷歌的 AI brain 團隊工作,這一事實表明 Swift 正在被培養(yǎng)成機器學(xué)習(xí)領(lǐng)域 Python 的替代者。Tensorflow 團隊通過 S4TF 項目投資了 Swift,這進一步證明了該語言不僅僅是 Python 的包裝器。相反,Swift 憑借其差異化的編程支持和像 C 一樣的低級工作能力,將有可能被用來取代底層的深度學(xué)習(xí)工具。
感謝各位的閱讀,以上就是“Python的缺點有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python的缺點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)站名稱:Python的缺點有哪些
文章源于:http://jinyejixie.com/article8/gpejop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、微信公眾號、Google、、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(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)