欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3 正在毀滅 Python的原因分析

 更新時間:2014年11月28日 15:28:06   投稿:mdxy-dxy  
Python 2強大的一個地方是它身后巨大的第三方庫,恩,可以做任何事。Python 3沒有這個。是的,很多庫已經(jīng)移植了,但是仍然有數(shù)以十倍的庫沒有移植過去,而且也不太容易

Python 3毫不費力地成為發(fā)生在Python社區(qū)里最糟糕的事。我還記得第一次使用Python的時候,我還在花大量時間在C++這塊上,而Python就像是我的一次開光。我可以打開文本編輯器用幾秒鐘或者幾分鐘寫出一個可以工作的程序,而不是用幾小時或幾天。我記得Python 2.5出來的時候,帶來了一大堆嶄新的簡潔的語言特性。我愛Python,但是我承認(rèn)它有弱點,但是沒關(guān)系,所有編程語言都有。它強大的地方使其變得有趣。Python 3相比Python 2擁有一些小小的增量的改進(jìn),但同時卻失去了很多Python 2強大的東西。

Python 2強大的一個地方是它身后巨大的第三方庫,恩,可以做任何事。Python 3沒有這個。是的,很多庫已經(jīng)移植了,但是仍然有數(shù)以十倍的庫沒有移植過去,而且也不太容易。舉個例子,你需要解析X格式,而X解析起來并不簡單,它不是常見的像YAML或JSON的格式。很有可能這個為X的解析器在Python 2里已經(jīng)寫好了,但是還沒有移植到Python 3。另外,考慮到Python 2的字節(jié)字符串(str)和Python 3的字節(jié)字符串(bytes)之間的根本不同,移植起來將不會那么容易。事實上會很難移植,并且需要一點移植技巧,像維護(hù)Python 2和Python 3的兼容性那樣。因此,你有一些選擇,可以用Python 2(一個被棄用的語言)快速寫你的app,導(dǎo)入一些庫(還有它們所有的依賴),可能會有十倍之長;或者可以用另外的編程語言,它也有很多第三方庫,但是不會面臨Python 2/3的問題。第二個選擇顯然不是很流行,因為不然,我們就有大量Python 3寫的app產(chǎn)品,然后Python 2的一大批庫會被移植過來。(譯者注:這個邏輯貌似有點問題?)這兩種都沒有發(fā)生。人們要么繼續(xù)用Python 2寫軟件,要么選擇另一個不自己打臉的語言。

另外一個Python 2的強大之處是用它寫的程序幾乎總是能夠不用大量修改而運行在Python的下一個版本上。如果你的公司運營在用Python 2寫的軟件上(就像很多公司那樣),移植到Python 3將會消耗大量資金,因為你的requirements文件可能十分大,并且充斥著各種還沒有移植到Python 3的庫。沒有哪個理智的商業(yè)理由會花成百上千甚至百萬美元價值的開發(fā)時間來移植到Python 3。如果相比更便宜的話,你都可能會要求某某把他們整個代碼庫移植到Ruby?,F(xiàn)在如果你必須要重寫你的軟件的話,你會選擇Python 3嗎?不。

那些支持Python 2和3的比較流行的庫幾乎都只用該語言的子集,這樣在兩個平臺上就都能運行。SQLAlchemy,我喜愛的Python庫之一,它這樣做的很好。Django也如此,但是做得不那么好。這個語言子集,我會稱之為Python X,使用起來很沒意思,需要一些奇淫技巧,并且通常沒有Python 2或者Python 3強大。把Python 2的庫移植到Python X有意思嗎?很可悲的是一點意思都沒有,因為令Python偉大的就是這些樂趣。

Python 2,很可悲,已經(jīng)被棄用了。Python 3頹廢得沒人用。Python 3的改動不大。沒有帶來多少好處,但缺失去了很多。在過去的幾個月,我用Python 3構(gòu)建了一些項目和服務(wù)。我沒有被它打敗。這很像用Python 2寫軟件,除了只能獲得很少的一些庫。這里沒有什么令人驚嘆的事情。Python社區(qū)在過去的幾年本應(yīng)該轉(zhuǎn)移到Python 3了,但是結(jié)果就是越來越明顯看到人們轉(zhuǎn)移到新的語言(或者重新發(fā)現(xiàn)的舊語言)上。這些語言有些也有很好的特性,像強大的輸入系統(tǒng),模式匹配,更出色的性能,更好的多線程和并發(fā),更簡單的外部函數(shù)接口(FFI),更漂亮的lambda語句等等。

一個方案是fork Python 2.7,然后繼續(xù)發(fā)展這門語言,加入一些盡量向后兼容的特性,這樣那些不能移植(由于一些財政方面的約束)的Python 2應(yīng)用程序可以繼續(xù)演進(jìn)和改善,進(jìn)而給那些投入如此多時間開發(fā)他們的公司或個人帶來價值。這才是需要去做的正確的事(事實上,如果Guido和Python社區(qū)里其他主導(dǎo)人能夠官方地做這件事,而不是強迫大家fork,那會是最好的)。Python 3里的特性可以向后移植到Python 2,然后發(fā)布Python 2.8。那些已經(jīng)花時間用純Python 3寫新的軟件的人可以使用例如3to2的工具變成與Python 2.8兼容。Python 3然后就可以為了Python庫維護(hù)者們能夠用Python 2代替Python X而安靜地離去。

還有一些其他的方案,但是拯救Python 2顯然是要做的正確的事,所以也不值一提了。Python 2的拯救不會來自官方,因為負(fù)責(zé)這類事的人表現(xiàn)出了對Python 2使用者極大的鄙視。如果社區(qū)的人不團(tuán)結(jié)起來拯救Python 2,Python 3數(shù)年之后會成為Python的標(biāo)準(zhǔn),然后很多庫將要被移植(盡管很多肯定不會),然后很多的投入也將會白費。社區(qū)那時候會大量的萎縮,并失去往日的光芒。參考Perl。人們將把它遺忘。

相關(guān)文章

  • 在服務(wù)器上運行python文件詳細(xì)步驟

    在服務(wù)器上運行python文件詳細(xì)步驟

    很多小伙伴想知道如何在服務(wù)器上跑python程序的方法,那么這篇文章主要給大家介紹了關(guān)于在服務(wù)器上運行python文件的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • python微信公眾號之關(guān)鍵詞自動回復(fù)

    python微信公眾號之關(guān)鍵詞自動回復(fù)

    這篇文章主要為大家詳細(xì)介紹了python微信公眾號之關(guān)鍵詞自動回復(fù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python筆記之觀察者模式

    Python筆記之觀察者模式

    這篇文章主要為大家詳細(xì)介紹了Python筆記之觀察者模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • python讀取eml文件并用正則表達(dá)式匹配郵箱的代碼

    python讀取eml文件并用正則表達(dá)式匹配郵箱的代碼

    今天接到一個需求有一個同事離職了,但是留下了非常多的郵件,我需要將他的郵件進(jìn)行分類,只要郵件中以@xxx.com結(jié)尾的存放在文件夾中,否則放在另一個文件夾中,這篇文章主要介紹了python讀取eml文件并用正則匹配郵箱,需要的朋友可以參考下
    2022-11-11
  • python腳本實現(xiàn)數(shù)據(jù)導(dǎo)出excel格式的簡單方法(推薦)

    python腳本實現(xiàn)數(shù)據(jù)導(dǎo)出excel格式的簡單方法(推薦)

    下面小編就為大家?guī)硪黄猵ython腳本實現(xiàn)數(shù)據(jù)導(dǎo)出Excel格式的簡單方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Python裝飾器實現(xiàn)方法及應(yīng)用場景詳解

    Python裝飾器實現(xiàn)方法及應(yīng)用場景詳解

    這篇文章主要介紹了Python裝飾器實現(xiàn)方法及應(yīng)用場景詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示

    Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示

    這篇文章主要介紹了Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示,文章介紹了簡單的python爬蟲,并使用numpy進(jìn)行了簡單的數(shù)據(jù)處理,最終使用?matplotlib?進(jìn)行圖形繪制,實現(xiàn)了直觀的方式展示制造業(yè)和非制造業(yè)指數(shù)圖形,需要的朋友可以參考一下
    2022-05-05
  • python文件寫入實例分析

    python文件寫入實例分析

    這篇文章主要介紹了python文件寫入的用法,實例分析了Python文件寫入的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python中range()與np.arange()的具體使用

    Python中range()與np.arange()的具體使用

    本文主要介紹了Python中range()與np.arange()的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 詳解超星腳本出現(xiàn)亂碼問題的解決方法(Python)

    詳解超星腳本出現(xiàn)亂碼問題的解決方法(Python)

    超星助手是一款為孩子們提供學(xué)習(xí)的軟件,支持用戶們后臺運行多開等,還可以簽到,查題等多功能,下面這篇文章主要給大家介紹了關(guān)于超星腳本出現(xiàn)亂碼問題的解決方法,需要的朋友可以參考下
    2022-05-05

最新評論