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

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