讓Python3來拯救Python

jopen 11年前發布 | 34K 次閱讀 Python3

讓Python3來拯救Python

        我從 Stephen A. Goss 那讀到關于了《Python 3 正在毀滅 Python》。這篇文章有不少精彩的論點,但我卻并不認為 Python 3 是在毀滅 Python,也不認為整個局面對 Python 一點也不利。

        但是正如那些比較俗氣的格言所說,也許每一次危機也意味著一次機遇。

        也許 Python 3 能拯救 Python。

        顯然,麻煩的不僅僅是 Python 2 到 Python 3 的移植。時間不再是 2005 年了,年輕的程序員不再對 Python 的哪一個版本如此的激動了。不錯,現在市場上有很多 Python 的職位,但與此同時有更多的 Java 的職位。并且話說在從前市場上還有很多 Perl 的職位呢——據說現在不怎么樣了。我的重點不是說職位的個數或者 GitHub 上面的倉庫的個數,我的重點是思想和熱情。我知道這有一點主觀,但我感覺 Python 最近在這兩方面有所缺失。

        舉個例子來說我們看到人們正在從 Python 轉向 Go。

        盡管并不多,但是這個現象卻很值得注意(包括整個新建的開發小組發博客聲稱要移植他們的代碼庫),也足以產生一些輿論了(也能讓 Rob Pike 大吃一驚了,他最初希望人們從C/C++轉向 Go)。

        Python 所面臨的挑戰來自西面八方。有的挑戰在某一領域蠶食 Python 的份額(例如新的不同步的項目會更加喜歡 Node 或者 Go 而不是 Twisted,Rails 仍然在 web 框架中占有主導地位),某一專業的直接競爭(例如科學計算的 Julia),以及普遍的競爭(Clojure,Groovy,Javascript,Dart 等)。

        所以這兒是我對于 Python 3 的想法,很簡單的想法:

        讓 Python 變得誘人

        Python 3 已經和 Python 2 不兼容了,并且人們也并沒有成群結隊的向 Python 3 移植,因此增加一些不兼容的改變不僅沒有壞處,反而對這門語言更有好處了。

        老實講,如果 Python 3 有足夠多的誘人的新特色,更多的人會愿意移植到到 Python 3 的(至少他們新的項目會),并且越來越多的人會去移植他們 Python 2 的庫和項目。更甚,在下愚見,這會吸引更多的現在沒有在用 Python 的人們。

        大家已經看到,Python 3 是一個乏味的更新。

        誠然,Python 3 讓 Python 更加的清晰明了,并且也修正了一些長久的問題和令人頭疼的地方。但是它卻沒有帶來那么大的改變。話說回來,在 Python 3 在構思的時候它的思路被設定得很寬松。Javascript 那個時候也沒有那么流行。油Tube 還沒有誕生。那可是很久以前的事了。

        現如今像合適的包絡,不可變性,好的異步性等等可是犀利的黑客們考慮的重點。

        話不多說,下面列舉了一些可能讓 Python 3 變得有趣的建議。至少對于我來說這會引起我的興趣:

  1. 移除全局解釋器鎖(GIL,Global Interpreter Lock)。或者提供一個好的異步處理機制。Guido 的 PEP 3156說不準可以解決這個問題。能擁有類似諸如 Go 的通道(channels)的原語也是挺好的。
  2. 讓 Python 更快。如果 Javascript 能變快,CPython 也能變得很快。或者 PyPy 可以足夠成熟以替代 CPython(應該只能有一個存在才對)。如果需要像 Lars Bak 這樣的大咖來做,去 Kickstarter——我會出錢的。讓大公司也不好意思得也貢獻一點。不是說 Dropbox 也花錢開發他們基于 Python 的 LLVM 么?
  3. 增加類型。嗯,是 opt-in 類型。這樣你能用來加快你的代碼速度(對 CPython 來說),或者確保以有助于類型檢查(對 Dart 來說)。在標準庫中加入類型注解。
  4. 改進標準庫。找一個團隊去過一下這些標準庫,修正那些長期存在的煩人的問題,提高速度并且修正 bug。改進這些庫的 API,并為通用的東西提供更加簡便的接口(對比一下 requests 和 urllib)和現有的標準庫一起提供一個名字域不一樣的新的改進后的標準庫。并且,讓他們的轉換能很方便的進行(也許可以通過某種自動化的工具完成)。
  5. 改進“讀取-求值-輸出循環”(REPL,Read-Eval-Print Loop)。拜托現在已經是 2014 年了。用現代的方法重新做做 REPL 吧。加點顏色什么的。參考下 IPython 好了。把它弄成個 Client/server 的東西,這樣 IDE 和編輯器可以嵌入它。

        所以說 Python 3 的開發人員,慢慢來。嗯,但也不要太慢了。大概3、4 年的樣子吧。我們等 ES6 等了 10 年吧,3、4 年我們還是能等的。

        看起來也不是所有人都在用 Python 3,那么冒一點險好了。打破常規。更早更頻繁的發布吧。多和社區打交道。

        各位,Python 3 其實也沒有真的在殺死 Python。但是它也許能從正在殺死它的東西中拯救它。

        后記:你怎么看?你能想到更多的讓 Python 3 更加誘人的點子么?什么樣的新功能能激發你的興趣呢?

來自: www.techug.com

</div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!