人們為什麼不使用Python3?

2021-07-06 03:08:21 字數 1681 閱讀 8323

關於python 3

python 社群的朋友和開發者們,咱們一起聊聊python3吧。python3在2023年12月3日首次發布。當時廣泛的說法是:程式設計師接受python3將是乙個漫長的過程,這個過程被預期為五年。現在,我們剛剛度過了這個標誌性的5年。

在python 3發布起初以及隨後的幾年裡,我感到非常興奮,像個傳教士一樣宣傳它,把自己的專案移植到它上面去。在過去一兩年裡,我啟動的每乙個新專案從一開始就採用python 3開發。

最近半年,我一直在反思python3的地位,興奮逐漸被失落取代。

人們通常的看法是:在python3流行的頭幾年,一些開源專案將會跟隨潮流,隨之而來的python3浪潮,將會像開閘的洪水一樣一發而不可收。在用python語言寫的web開源框架django的世界裡,這種看法意味著我們需要乙個web伺服器閘道器介面(wsgi)規範,使資料庫驅動用python3編寫,接著我們開發人員才可以向python3轉變,最後才能使我們的使用者接受python 3。

從python3.1時代開始,人們經常說的是,python3新的特性和標準庫的新特性將會作為激勵人們公升級python3的動力。不要誤會!python3.3中確實有一些很酷的東西,但事實上,99%的人卻無法用到這些功能。所以,當給別人說:「python3中有很多好功能」,我實際上在心裡說:「去你媽的,騙你的!」,因為對使用者來講,狀況根本沒有改觀,相容性問題依然存在。

除了上面所提到的這些,有一點對python自身的發展也有極其惡劣的影響,那就是「沒有使用者反饋」這一環節。python3僅僅在被較早接受它的人使用,這個事實意味著來自使用者的對於新功能的反饋幾乎沒有,即使有,這一小部分人的意見也不能完全代表整個python社群。當我們對python3.x系列研究越深,它反而會變得越糟糕。如今,我們正在其他特性上開發新的功能,但是可惜的是,這些功能未能受到實際的廣泛使用。

人們為什麼不使用python3?

首先,我認為是缺乏緊迫感。許多年前,在我還不知道如何程式設計的時候,使python 3版本和python 2版本並存的決議已經存在。回想起來,這是乙個錯誤,這導致python社群徹底缺乏進步的緊迫感,這種緊迫感的匱乏逐漸使進步意識蕩然無存。

第二,我覺得python 3從根本上來講很無趣,這使得掌握它的人很少。它也沒有人們想要的「big ticket items」,像移除gil或追求更優良的效能(為了追求效能,多大會選擇pypy)。反而,它有許多新庫和小的調整,很多有經驗的python開發者們總會習慣性避免這些不一致的地方。當然,不管需要付出多麼長的時間去公升級,人們的開發也不會停下來。即使python2看起來要在這裡待一段時間,這也阻止不了他們開發的腳步。

我們現在身處何地?

總之,不是乙個幸福的地方。首先,我認為,我們很多人需要切實認識到python3的現狀。尤其是這樣的事實:在過去的幾年裡,對於普通的python開發人員而言,python語言沒有變得更好。對我們python社群而言,使python 2和python 3走兩條不同道路是錯誤的,我們需要把它們整合在一起。 我有乙個想法:發布一款python 2.8, 修補python 3的每個新特徵。同時棄用所有向後相容方式不能改變的東西,例如,str + unicode將產生一條警告,同樣的,沒有from _ _future_ _import unicode_literals的所有檔案也會產生警告。使用者需要能夠趕上連續的公升級過程,python 3破壞了這個過程,我們來解決它。這只是我的想法,我們需要更多的想法來建起python 2和python 3之間的橋梁,因為隨著每個python3新版本的發布,它們間的鴻溝會越來越大。

直播為什麼不使用WebRTC?

webrtc直播現狀 現在使用webrtc技術的公司越來越多了,如果你密切關注直播領域的話,你會發現乙個很有趣的變化,隨著直播業務的增長,傳統的流 由於延時大不能滿足於各種應用場景的需求,一些可替代性的解決方案紛紛登場,而webrtc是這些技術解決方案中的佼佼者。目前很多數的公司使用webrtc做直...

python3使用 python3使用模組

python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...

為什麼print在Python 3中變成了函式?

在python 2中,print是乙個語句 statement 而在python 3中變成了函式 function 很多python使用者都會問,為什麼python 3將print變成了函式呢?本文就是python核心開發者brett cannon對此的解釋。今年初python決定遷移到github...