下個十年,Python的“王者”地位還能保住嗎?_IT技術周刊第650期
甭管唱反調(diào)的人怎么唱衰,Python 在下一個十年仍然很重要,并且會與時俱進。
Python 是一門了不起的編程語言,它改變了游戲規(guī)則,將編程的格局提升到了一個完全不同的層次。Python 的迅速崛起對整個行業(yè)來說都是極其有利的,但是當它越來越受歡迎時,卻總是受到批評。
最近,我看過一些文章和視頻,它們似乎都在表明,Python 的輝煌時代行將終結。由 Python 引發(fā)的批評經(jīng)常有:“它是一種緩慢的語言”、“全局解釋器鎖”、“動態(tài)類型”,“移動應用程序缺乏支持”等。
所有的批評都正確嗎?它們真的重要嗎?在這個十年的剩余時間里,Python 還能如此重要以及保持完整性嗎?今天,我們將對事實進行分析,破除一些誤解。
1. Python 三大主要槽點,但所有的批評都正確嗎?
Python “非常緩慢”
不可否認的是,與 C、C++、Java 等編程語言相比,Python 的速度的確非常緩慢。那些編程語言之所以速度更快,主要原因之一是,它們是靜態(tài)類型的,而 Python 是一種動態(tài)類型的編程語言。
這些語言是在運行之前就進行編譯的,而 Python 是在運行時編譯。
Python 還從其他編程語言(而不是本機代碼)導入外部庫。
簡單地說,這些因素是導致 Python 速度緩慢的主要原因,但是這確實是個問題!
很重要嗎?
對于最終用戶來說,這幾乎沒有什么區(qū)別。不管程序是以 0.0001 秒還是 0.001 秒的時間運行,都不重要。
此外,如果你的計算速度是一個重要的因素,那么值得注意的是,匯編級語言將比 C、C++ 甚至 Java 都要快得多,但幾乎并沒有什么人使用它們。
然而,Python 更快的開發(fā)速度和整體簡單性彌補了它在速度上的不足。
也就是說,可以對 Python 代碼進行優(yōu)化,使其執(zhí)行速度稍微快一些。即使改善并不顯著,但對于大多數(shù)情況而言,應該也不會有太大的問題。
全局解釋器鎖
Python 全局解釋器鎖(Global Interpreter Lock,GIL)是 Python 處理進程時使用的一種進程鎖。通常,Python 只使用一個線程來執(zhí)行一組編寫的語句。全局解釋器鎖限制了 Python 開箱即用的并行編程。
這意味著在 Python 中,每次只能有一個線程。對于 Python,單線程進程和多線程進程的性能是相同的。造成這個問題的原因就是全局解釋器鎖。
很重要嗎?
全局解釋器鎖是 Python 的一個有爭議的特性。它的引入是為了避免內(nèi)存泄漏和死鎖問題。
它對整個計算過程的負面影響大于正面影響。不過,這在一定程度上可以通過 Python 中的多處理來解決這一問題。
多處理可以使你同時運行多個不相關的進程。多處理比多線程更適用于 CPU 密集型任務,也更值得推薦。
對移動應用開發(fā)貢獻不足
在移動開發(fā)行業(yè)中,Java 和其他編程語言占據(jù)了主導地位。像 Android Studio 之類的應用程序使用 Java 和 XML 這樣的編程語言。
Python 為計算機和服務器端系統(tǒng)提供了各種各樣的開發(fā)。但遺憾的是,Python 并不適合開發(fā)移動應用程序。實際上,Python 甚至被認為對于基于移動設備的應用程序來說是一種較弱的編程語言。
很重要嗎?
智能手機、平板電腦和其他小型設備的普及程度正在上升。Python 在這方面的不足,可能會妨礙它作為一門優(yōu)秀的編程語言在未來的存在和發(fā)展。
不過,事情可能并不會像預期的那樣“黯淡”,因為隨著 Python 的發(fā)展以及對語言和框架的不斷更新,它甚至可能會為移動應用程序開發(fā)開辟出一個市場。
重要的是要認識到 Python 缺乏亮點。但是,了解這些因素對普通程序員的影響程度也很重要。
現(xiàn)在讓我們來看看讓 Python 變得強大的因素,以及為什么它未來幾年將會如此重要。
2. 為什么 Python 在下一個十年依然如此重要?
最適合初學者學習的編程語言
對于沒有編程經(jīng)驗的初學者來說,Python 是一種很棒的入門編程語言。Python 簡單易學。它還有助于對面向對象編程的基本概念的理解。
對于任何人來說,即使是沒有編程或編碼經(jīng)驗的人,尤其是那些打算在數(shù)據(jù)科學、人工智能、機器學習等領域進一步發(fā)展的人來說,Python 都是最佳的入門方式。
它為所有人提供了一種簡單的途徑來接觸到這門語言。Python 的通用性極強,具有平臺獨立性。這意味著 Python 也可以導入在其他編程語言中構建的基本模塊。
總而言之,Python 是一種很棒的入門編程語言,完全值得學習。它還可以在需要的時候幫助轉換到其他語言。
人氣和社區(qū)支持
Python 是世界上第二流行的語言,在撰寫本文時,僅次于 JavaScript。這種人氣似乎不會很快下降。
要深入了解 2020 年及以后 Python 和其他編程語言的流行情況,我強烈推薦閱讀我之前寫過的一篇文章《 2020 年及以后最流行的十種編程語言》(10 Most Popular Programming Languages For 2020 and Beyond)。
https://towardsdatascience.com/10-most-popular-programming-languages-for-2020-and-beyond-67c512eeea73
Python 還有一個很棒的社區(qū),提供了持續(xù)性更新和新版本。一般來說,Python 社區(qū)有很多大咖,為了改進 Python,他們不斷地進行更新。
為了跟上編程世界的發(fā)展,社區(qū)成員積極參與新模塊的開發(fā),他們不斷開發(fā)與各種庫和框架相關的大量資源。
在人工智能 / 數(shù)據(jù)科學領域占主導地位
Python 的專長在于執(zhí)行可視化任務、探索性數(shù)據(jù)分析,當然,在機器學習、深度學習、神經(jīng)網(wǎng)絡等方面的人工智能領域也是如此。
可以通過 Python 模塊和庫訪問的各種框架,有助于解決機器學習和深度學習復雜的問題。
“Python 在人工智能和數(shù)據(jù)科學領域的能力非常出色,幾乎無后來者能及”,此時此刻,如果給出這樣的評價相信也無可非議。
不過,有一些新興的編程語言正在崛起,它們也有可能會構成威脅,成為 Python 的強大競爭對手。我將在以后的文章詳細討論這三門潛在的編程語言。
迄今為止,Python 是一門很棒的編程語言,它可以幫助你開始解決復雜的機器學習和深度學習項目的數(shù)據(jù)科學之旅。
假如你是一個初學者,在網(wǎng)上聽到了這些批評,要是你因此認為 Python 可能不是當今最好的學習語言,那你就錯了。
但愿我這篇文章能夠傳達出這樣的一個信息:盡管有些人加入到批評 Python 某些缺點的潮流中來,以求追趕“時髦”,但這并不意味著這種非凡的編程語言的人氣或性能將在未來幾年內(nèi)逐漸消失。
Python 仍然很重要,客觀上來說,它被視為是初學者學習入門語言的不錯選擇。
它在人工智能領域的貢獻是巨大的,在機器學習、數(shù)據(jù)可視化和深度學習方面的重要性將在未來數(shù)年中持續(xù)存在。