我從Stephen A. Goss那讀到關(guān)于了《Python 3正在毀滅Python》。這篇文章有不少精彩的論點,但我卻并不認(rèn)為Python 3是在毀滅Python,也不認(rèn)為整個局面對Python一點也不利。
但是正如那些比較俗氣的格言所說,也許每一次危機(jī)也意味著一次機(jī)遇。
也許Python 3能振興Python。
顯然,麻煩的不僅僅是Python 2到Python 3的移植。時間不再是2005年了,年輕的程序員不再對Python的哪一個版本如此的激動了。不錯,現(xiàn)在市場上有很多Python的職位,但與此同時有更多的Java的職位。并且話說在從前市場上還有很多Perl的職位呢――據(jù)說現(xiàn)在不怎么樣了。我的重點不是說職位的個數(shù)或者GitHub上面的倉庫的個數(shù),我的重點是思想和熱情。我知道這有一點主觀,但我感覺Python最近在這兩方面有所缺失。
舉個例子來說我們看到人們正在從Python轉(zhuǎn)向Go。
盡管并不多,但是這個現(xiàn)象卻很值得注意(包括整個新建的開發(fā)小組發(fā)博客聲稱要移植他們的代碼庫),也足以產(chǎn)生一些輿論了(也能讓Rob Pike大吃一驚了,他最初希望人們從C/C++轉(zhuǎn)向Go)。
Python所面臨的挑戰(zhàn)來自西面八方。有的挑戰(zhàn)在某一領(lǐng)域蠶食Python的份額(例如新的不同步的項目會更加喜歡Node或者Go而不是Twisted,Rails仍然在web框架中占有主導(dǎo)地位),某一專業(yè)的直接競爭(例如科學(xué)計算的Julia),以及普遍的競爭(Clojure,Groovy,Javascript,Dart等)。
所以這兒是我對于Python 3的想法,很簡單的想法:
讓 Python 變得誘人
Python 3已經(jīng)和Python 2不兼容了,并且人們也并沒有成群結(jié)隊的向Python 3移植,因此增加一些不兼容的改變不僅沒有壞處,反而對這門語言更有好處了。
老實講,如果Python 3有足夠多的誘人的新特色,更多的人會愿意移植到到Python 3的(至少他們新的項目會),并且越來越多的人會去移植他們Python 2的庫和項目。更甚,在下愚見,這會吸引更多的現(xiàn)在沒有在用Python的人們。
?
大家已經(jīng)看到,Python 3是一個乏味的更新。
誠然,Python 3讓Python更加的清晰明了,并且也修正了一些長久的問題和令人頭疼的地方。但是它卻沒有帶來那么大的改變。話說回來,在Python 3在構(gòu)思的時候它的思路被設(shè)定得很寬松。Javascript那個時候也沒有那么流行。YouTube還沒有誕生。那可是很久以前的事了。
現(xiàn)如今像合適的包絡(luò),不可變性,好的異步性等等可是犀利的黑客們考慮的重點。
?
話不多說,下面列舉了一些可能讓Python 3變得有趣的建議。至少對于我來說這會引起我的興趣:
- 移除全局解釋器鎖(GIL,Global Interpreter Lock)。或者提供一個好的異步處理機(jī)制。Guido的PEP 3156說不準(zhǔn)可以解決這個問題。能擁有類似諸如Go的通道(channels)的原語也是挺好的。
- 讓Python更快。如果Javascript能變快,CPython也能變得很快。或者PyPy可以足夠成熟以替代CPython(應(yīng)該只能有一個存在才對)。如果需要像Lars Bak這樣的大咖來做,去Kickstarter――我會出錢的。讓大公司也不好意思得也貢獻(xiàn)一點。不是說Dropbox也花錢開發(fā)他們基于Python的LLVM么?
- 增加類型。嗯,是opt-in類型。這樣你能用來加快你的代碼速度(對CPython來說),或者確保以有助于類型檢查(對Dart來說)。在標(biāo)準(zhǔn)庫中加入類型注解。
- 改進(jìn)標(biāo)準(zhǔn)庫。找一個團(tuán)隊去過一下這些標(biāo)準(zhǔn)庫,修正那些長期存在的煩人的問題,提高速度并且修正bug。改進(jìn)這些庫的API,并為通用的東西提供更加簡便的接口(對比一下requests和urllib)和現(xiàn)有的標(biāo)準(zhǔn)庫一起提供一個名字域不一樣的新的改進(jìn)后的標(biāo)準(zhǔn)庫。并且,讓他們的轉(zhuǎn)換能很方便的進(jìn)行(也許可以通過某種自動化的工具完成)。
- 改進(jìn)“讀取-求值-輸出循環(huán)”(REPL,Read-Eval-Print Loop)。拜托現(xiàn)在已經(jīng)是2014年了。用現(xiàn)代的方法重新做做REPL吧。加點顏色什么的。參考下IPython好了。把它弄成個Client/server的東西,這樣IDE和編輯器可以嵌入它。
?
所以說Python 3的開發(fā)人員,慢慢來。嗯,但也不要太慢了。大概3、4年的樣子吧。我們等ES6等了10年吧,3、4年我們還是能等的。
看起來也不是所有人都在用Python 3,那么冒一點險好了。打破常規(guī)。更早更頻繁的發(fā)布吧。多和社區(qū)打交道。
各位,Python 3其實也沒有真的在殺死Python。但是它也許能從正在殺死它的東西中拯救它。
?
后記:你怎么看?你能想到更多的讓Python 3更加誘人的點子么?什么樣的新功能能激發(fā)你的興趣呢?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
