新聞中心
對(duì)于 Python 社區(qū)來(lái)說(shuō),Python 3 是最糟糕的的一個(gè)東西了。我依舊記得,當(dāng)我***次使用Python的時(shí)候,我已經(jīng)在C++的領(lǐng)域摸爬滾打了很長(zhǎng)時(shí)間,Python對(duì)我來(lái)說(shuō)就像是一本圣經(jīng)。我可以隨便打開一個(gè)文本編輯器,幾秒鐘或幾分鐘之后,一個(gè)可以正常工作的程序就誕生了,而不用去花費(fèi)幾小時(shí)或幾天的時(shí)間。我仍記得,Python 2.5問世的時(shí)候添加了許多好用的新特性。我愛Python,但同時(shí)我也承認(rèn)她有缺點(diǎn),但是還都說(shuō)得過去,所有的語(yǔ)言都有缺點(diǎn)。她的優(yōu)勢(shì)在于她很有趣。盡管Python 3相比Python 2來(lái)說(shuō)有了一些小的提升,但是她丟掉了很多Python 2的優(yōu)勢(shì)。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出當(dāng)涂免費(fèi)做網(wǎng)站回饋大家。
Python 2最重要的一個(gè)優(yōu)勢(shì)在于擁有眾多的第三方庫(kù),可以用來(lái)做任何事情,但是Python 3沒有這個(gè)優(yōu)勢(shì)。誠(chéng)然,有很多的庫(kù)已經(jīng)移植到Python 3了,但是有更多的庫(kù)沒有移植,也不容易移植。例如,你需要解析 X,但是X不像YAML和JSON那樣容易解析。很可能有一個(gè)第三方的解析器可供選擇,但是只可以用Python 2,而沒有針對(duì)Python 3的移植版本。此外,加之Python 2中的字節(jié)字符串(str)和Python 3 中的字節(jié)字符串(bytes)之間有著功能上的差異,使得這更難移植。而事實(shí)上,移植它非常困難,并且需要很多的小技巧(trick)來(lái)兼容Python 2和Python 3。所以,你有兩種選擇,要么使用Python 2 (已經(jīng)不建議使用的語(yǔ)言)快速的開發(fā)你的程序,但這會(huì)花費(fèi)你十倍以上的時(shí)間去移植相關(guān)的庫(kù)(以及所有的依賴)。要么,使用另一門同樣擁有很多庫(kù)的編程語(yǔ)言,但是不用再困擾于Python 2 / 3之間的問題。第二種選擇顯然不受歡迎,因?yàn)槿绻覀冞@樣做了,在我們的生產(chǎn)環(huán)境中已經(jīng)有很多Python 3的程序了并且大部分Python 2的庫(kù)需要被移植。不管這些情況是否存在,人們要么繼續(xù)使用Python 2開發(fā)程序,要么選擇另一門不會(huì)打自己臉的語(yǔ)言。
Python 2的另外一個(gè)優(yōu)點(diǎn)是,用它寫的程序幾乎不用更改就可以運(yùn)行在下一版本上。如果你的軟件是基于Python 2的,那么就可能花費(fèi)一大筆錢才能將其遷移至Python 3,因?yàn)槟阈枰墓こ炭赡芟喈?dāng)?shù)卮?,并且塞滿了各種類庫(kù)手冊(cè),而他們不能被遷移。這在商業(yè)策略上非常不明智,因?yàn)槟悴坏貌粸榇嘶ㄙM(fèi) 大量的金錢和工程師的時(shí)間才能把工程遷移到Python 3。你不妨問問其他人將整個(gè)代碼遷移到Ruby,或者,那還更劃算。至此,要是你不得不重寫你的軟件,你還會(huì)選擇Python 3嗎?不。
大多數(shù)比較受歡迎并且支持兼容Python 2和Python3的庫(kù)是通過運(yùn)行在各自平臺(tái)上的語(yǔ)言子集(subset)來(lái)寫的。我最喜歡的Python庫(kù)之一的SQLAlchemy做的很好,Django也是這樣做的,但是稍有遜色。語(yǔ)言子集,我稱之為Python X,并不那么好用,需要很怪異的hack,并且通常性能不如Python2 或 Python 3。將現(xiàn)有的Python 2的庫(kù)移植到Python X有趣嗎?沒有什么趣味可言,反而很悲哀,因?yàn)檎怯捎谟腥げ旁炀土私裉斓腜ython。
不幸的是,Python 2 已經(jīng)不推薦使用了,Python 3用的也不多。Python 3 的改變比較小,沒有得到多少,反倒失去了不少。在過去的幾個(gè)月里,我使用Python 3編寫程序和服務(wù)。我個(gè)人感覺(沒有吹噓的意思),和用Python 2 寫程序沒有太多差別,除了第三方的庫(kù)少一些。真沒有其他的令人眼前一亮的了。Python的社區(qū)原本要在過去的幾年中轉(zhuǎn)移到Python 3,但是,他們逐漸發(fā)現(xiàn),人們正在轉(zhuǎn)向新的語(yǔ)言(或重新改進(jìn)過的舊語(yǔ)言)。這些語(yǔ)言大都擁有非常棒的功能,像強(qiáng)大的類型系統(tǒng),模式匹配,更好的性能,更好的支持線程和高并發(fā),更簡(jiǎn)單的FFI,更好的lambda表達(dá)式等等。
一種解決方案是fork Python 2.7,并繼續(xù)開發(fā)它,以向后兼容的方式添加新的功能,以便大多數(shù)不能移植的Python 2的應(yīng)用程序可以繼續(xù)演化和改善,并給人們和花費(fèi)了大量時(shí)間來(lái)開發(fā)它的公司帶來(lái)價(jià)值。這是正確的事(實(shí)際上,如果Guido和其他Python社區(qū)中的***以官方的名義這樣做而不是強(qiáng)制fork就更好了)。Python 3中的功能需要向后移植到Python 2,并且需要發(fā)布Python 2.8。對(duì)于少數(shù)已經(jīng)在使用純Python 3開發(fā)程序的人來(lái)說(shuō),可以使用像3to2這樣的工具來(lái)兼容Python 2.8。之后,Python 3就可以逐漸的退居幕后,這樣以來(lái),那些Python庫(kù)的維護(hù)者就可以使用Python 2而不用使用Python X了。
雖然還有些別的方案,但復(fù)興Python 2明顯是現(xiàn)在應(yīng)該做的,其他的都不值一提。因?yàn)楣俜降呢?fù)責(zé)人對(duì)Python 2的使用者十分不屑,所以別指望他們會(huì)來(lái)復(fù)興Python 2。如果社區(qū)不重振旗鼓并復(fù)興Python 2,那Python 3在幾年后就會(huì)變成Python的標(biāo)準(zhǔn),同時(shí)很多相應(yīng)的類庫(kù)會(huì)被接入(盡管大多數(shù)肯定永遠(yuǎn)都不可能),很多的投資會(huì)失去。到那時(shí),整個(gè)社區(qū)就會(huì)很明顯地萎縮,失去她原有的光輝??纯碢erl的下場(chǎng)吧,人們會(huì)離開去別的地方。
英文原文:Python 3 is killing Python
譯文鏈接:http://www.oschina.net/translate/python-3-is-killing-python
網(wǎng)頁(yè)題目:Python3正在毀滅Python
文章鏈接:http://fisionsoft.com.cn/article/dhdijdp.html


咨詢
建站咨詢
