六星源課堂:Python的地位能不能穩(wěn)????
Python 是一門了不起的編程語言,它改變了游戲規(guī)則,將編程的格局提升到了一個(gè)完全不同的層次。Python 的迅速崛起對整個(gè)行業(yè)來說都是極其有利的,但是當(dāng)它越來越受歡迎時(shí),卻總是受到批評。
最近,我看過一些文章和視頻,它們似乎都在表明,Python 的輝煌時(shí)代行將終結(jié)。由 Python 引發(fā)的批評經(jīng)常有:“它是一種緩慢的語言”、“全局解釋器鎖”、“動態(tài)類型”,“移動應(yīng)用程序缺乏支持”等。
所有的批評都正確嗎?它們真的重要嗎?在這個(gè)十年的剩余時(shí)間里,Python 還能如此重要以及保持完整性嗎?今天,我們將對事實(shí)進(jìn)行分析,破除一些誤解。
Python 三大主要槽點(diǎn),但所有的批評都正確嗎?

不可否認(rèn)的是,與 C、C++、Java 等編程語言相比,Python 的速度的確非常緩慢。那些編程語言之所以速度更快,主要原因之一是,它們是靜態(tài)類型的,而 Python 是一種動態(tài)類型的編程語言。
這些語言是在運(yùn)行之前就進(jìn)行編譯的,而 Python 是在運(yùn)行時(shí)編譯。
Python 還從其他編程語言(而不是本機(jī)代碼)導(dǎo)入外部庫。
簡單地說,這些因素是導(dǎo)致 Python 速度緩慢的主要原因,但是這確實(shí)是個(gè)問題!
很重要嗎?
對于最終用戶來說,這幾乎沒有什么區(qū)別。不管程序是以 0.0001 秒還是 0.001 秒的時(shí)間運(yùn)行,都不重要。
此外,如果你的計(jì)算速度是一個(gè)重要的因素,那么值得注意的是,匯編級語言將比 C、C++ 甚至 Java 都要快得多,但幾乎并沒有什么人使用它們。
然而,Python 更快的開發(fā)速度和整體簡單性彌補(bǔ)了它在速度上的不足。
也就是說,可以對 Python 代碼進(jìn)行優(yōu)化,使其執(zhí)行速度稍微快一些。即使改善并不顯著,但對于大多數(shù)情況而言,應(yīng)該也不會有太大的問題。
2、全局解釋器鎖
Python 全局解釋器鎖(Global Interpreter Lock,GIL)是 Python 處理進(jìn)程時(shí)使用的一種進(jìn)程鎖。通常,Python 只使用一個(gè)線程來執(zhí)行一組編寫的語句。全局解釋器鎖限制了 Python 開箱即用的并行編程。
這意味著在 Python 中,每次只能有一個(gè)線程。對于 Python,單線程進(jìn)程和多線程進(jìn)程的性能是相同的。造成這個(gè)問題的原因就是全局解釋器鎖。
很重要嗎?
全局解釋器鎖是 Python 的一個(gè)有爭議的特性。它的引入是為了避免內(nèi)存泄漏和死鎖問題。
它對整個(gè)計(jì)算過程的負(fù)面影響大于正面影響。不過,這在一定程度上可以通過 Python 中的多處理來解決這一問題。
多處理可以使你同時(shí)運(yùn)行多個(gè)不相關(guān)的進(jìn)程。多處理比多線程更適用于 CPU 密集型任務(wù),也更值得推薦。
3、對移動應(yīng)用開發(fā)貢獻(xiàn)不足
在移動開發(fā)行業(yè)中,Java 和其他編程語言占據(jù)了主導(dǎo)地位。像 Android Studio 之類的應(yīng)用程序使用 Java 和 XML 這樣的編程語言。
Python 為計(jì)算機(jī)和服務(wù)器端系統(tǒng)提供了各種各樣的開發(fā)。但遺憾的是,Python 并不適合開發(fā)移動應(yīng)用程序。實(shí)際上,Python 甚至被認(rèn)為對于基于移動設(shè)備的應(yīng)用程序來說是一種較弱的編程語言。
很重要嗎?
智能手機(jī)、平板電腦和其他小型設(shè)備的普及程度正在上升。Python 在這方面的不足,可能會妨礙它作為一門優(yōu)秀的編程語言在未來的存在和發(fā)展。
不過,事情可能并不會像預(yù)期的那樣“黯淡”,因?yàn)殡S著 Python 的發(fā)展以及對語言和框架的不斷更新,它甚至可能會為移動應(yīng)用程序開發(fā)開辟出一個(gè)市場。
重要的是要認(rèn)識到 Python 缺乏亮點(diǎn)。但是,了解這些因素對普通程序員的影響程度也很重要。
現(xiàn)在讓我們來看看讓 Python 變得強(qiáng)大的因素,以及為什么它未來幾年將會如此重要。
為什么 Python 在下一個(gè)十年依然如此重要?
1、最適合初學(xué)者學(xué)習(xí)的編程語言
對于沒有編程經(jīng)驗(yàn)的初學(xué)者來說,Python 是一種很棒的入門編程語言。Python 簡單易學(xué)。它還有助于對面向?qū)ο缶幊痰幕靖拍畹睦斫狻?/p>
對于任何人來說,即使是沒有編程或編碼經(jīng)驗(yàn)的人,尤其是那些打算在數(shù)據(jù)科學(xué)、人工智能、機(jī)器學(xué)習(xí)等領(lǐng)域進(jìn)一步發(fā)展的人來說,Python 都是最佳的入門方式。
它為所有人提供了一種簡單的途徑來接觸到這門語言。Python 的通用性極強(qiáng),具有平臺獨(dú)立性。這意味著 Python 也可以導(dǎo)入在其他編程語言中構(gòu)建的基本模塊。
總而言之,Python 是一種很棒的入門編程語言,完全值得學(xué)習(xí)。它還可以在需要的時(shí)候幫助轉(zhuǎn)換到其他語言。
2、人氣和社區(qū)支持
Python 是世界上第二流行的語言,在撰寫本文時(shí),僅次于 JavaScript。這種人氣似乎不會很快下降。
Python 還有一個(gè)很棒的社區(qū),提供了持續(xù)性更新和新版本。一般來說,Python 社區(qū)有很多大咖,為了改進(jìn) Python,他們不斷地進(jìn)行更新。
為了跟上編程世界的發(fā)展,社區(qū)成員積極參與新模塊的開發(fā),他們不斷開發(fā)與各種庫和框架相關(guān)的大量資源。
3、在人工智能 / 數(shù)據(jù)科學(xué)領(lǐng)域占主導(dǎo)地位
Python 的專長在于執(zhí)行可視化任務(wù)、探索性數(shù)據(jù)分析,當(dāng)然,在機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等方面的人工智能領(lǐng)域也是如此。
可以通過 Python 模塊和庫訪問的各種框架,有助于解決機(jī)器學(xué)習(xí)和深度學(xué)習(xí)復(fù)雜的問題。
“Python 在人工智能和數(shù)據(jù)科學(xué)領(lǐng)域的能力非常出色,幾乎無后來者能及”,此時(shí)此刻,如果給出這樣的評價(jià)相信也無可非議。
不過,有一些新興的編程語言正在崛起,它們也有可能會構(gòu)成威脅,成為 Python 的強(qiáng)大競爭對手。我將在以后的文章詳細(xì)討論這三門潛在的編程語言。
迄今為止,Python 是一門很棒的編程語言,它可以幫助你開始解決復(fù)雜的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)項(xiàng)目的數(shù)據(jù)科學(xué)之旅。
總結(jié)
假如你是一個(gè)初學(xué)者,在網(wǎng)上聽到了這些批評,要是你因此認(rèn)為 Python 可能不是當(dāng)今最好的學(xué)習(xí)語言,那你就錯了。
但愿我這篇文章能夠傳達(dá)出這樣的一個(gè)信息:盡管有些人加入到批評 Python 某些缺點(diǎn)的潮流中來,以求追趕“時(shí)髦”,但這并不意味著這種非凡的編程語言的人氣或性能將在未來幾年內(nèi)逐漸消失。
Python 仍然很重要,客觀上來說,它被視為是初學(xué)者學(xué)習(xí)入門語言的不錯選擇。
它在人工智能領(lǐng)域的貢獻(xiàn)是巨大的,在機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化和深度學(xué)習(xí)方面的重要性將在未來數(shù)年中持續(xù)存在。
以上就是本次分享的全部內(nèi)容,想要學(xué)習(xí)編程的小伙伴們,歡迎前往六星源課堂,獲取更多技能與教程~