Python在移動(dòng)計(jì)算領(lǐng)域的應(yīng)用
Guido:移動(dòng)對(duì)Python來(lái)說(shuō)仍是一個(gè)很難啃下來(lái)的平臺(tái),但是并沒有瀏覽器平臺(tái)的難度大,因?yàn)镻ython實(shí)際上是可以運(yùn)行在所有品牌智能手機(jī)上的。你只需要找到懂得怎樣構(gòu)建移動(dòng)版本Python的人就行了。
標(biāo)準(zhǔn)的CPython源代碼幾乎可以編譯成能在安卓和蘋果手機(jī)上運(yùn)行的二進(jìn)制文件。有很多人在朝這方面努力,不斷貢獻(xiàn)著補(bǔ)丁包。不過(guò)進(jìn)展的速度比我希望的要慢一些。不過(guò)話又說(shuō)回來(lái),我本人并不開發(fā)移動(dòng)應(yīng)用,所以我沒有太多自己參與的動(dòng)力。但是我很樂(lè)于見到這方面的進(jìn)展。
Python替代JavaScript?
Guido:這并不是我們的目標(biāo)。由于瀏覽器平臺(tái)的結(jié)構(gòu)問(wèn)題,我們很難和JavaScript競(jìng)爭(zhēng),最多就是將Python翻譯成JavaScript。不過(guò)通常情況下,翻譯后的程序比Python原生程序運(yùn)行的更慢,相比用JavaScript編寫的同類程序則更慢?,F(xiàn)在有人在嘗試將Python翻譯成JavaScript,在瀏覽器中運(yùn)行Python。
對(duì)WebAssembly的看法
這可能會(huì)讓在瀏覽器中運(yùn)行Python成為可能。如果它替代了asm.js,那就基本上意味著JavaScript不再是Web平臺(tái)上唯一使用的語(yǔ)言了,而是變成了這個(gè)類似匯編語(yǔ)言的東西。這和Python有點(diǎn)像,你編寫的Python代碼,其底層的Python解釋器其實(shí)使用C語(yǔ)言編寫的。在編譯時(shí),會(huì)把Python代碼翻譯成機(jī)器碼,而這中間也涉及了某種匯編語(yǔ)言。
如果我們無(wú)法在瀏覽器中消滅JavaScript,我們或許可以讓JavaScript成為任何希望在瀏覽器中運(yùn)行語(yǔ)言的統(tǒng)一翻譯對(duì)象。這樣的話,或許Python和其他語(yǔ)言,如Ruby和PHP,就能高效地翻譯成底層的JavaScript。
WebAssembly其實(shí)對(duì)Python開發(fā)者來(lái)說(shuō)是個(gè)機(jī)遇。我相信以后會(huì)有一段試驗(yàn)期,那些更喜歡開發(fā)工具的人可以有機(jī)會(huì)探索怎樣才是在WebAssembly之上運(yùn)行Python的最好方法。他們?cè)囼?yàn)成功并開始推廣之后,我們就可以和Python開發(fā)者說(shuō),“你現(xiàn)在也可以用Python編寫瀏覽器客戶端app了”。但現(xiàn)在還不是時(shí)候。
Python的性能提升
Guido:Python3的性能已經(jīng)跟上來(lái)了,比2012年時(shí)要快的多。另外,還有像PyPy這樣的Python實(shí)現(xiàn)。有一些新版本的Python解釋器也在試圖提升速度。
其實(shí),Python的性能并沒有人們說(shuō)的那樣差,而且因?yàn)镻ython大部分是用C語(yǔ)言實(shí)現(xiàn)的,很多事情做起來(lái)可以和C語(yǔ)言一樣快。我還是認(rèn)為,Python對(duì)于大部分事情來(lái)說(shuō)已經(jīng)足夠快了。
盡管沒有在Python3中新增特性以改善速度,但是我們已經(jīng)讓語(yǔ)言的很多方面變快了:比如,引用計(jì)數(shù)比以前快了些。主要還是優(yōu)化現(xiàn)有的代碼,但是作為用戶來(lái)說(shuō),很難注意到區(qū)別。
而且如果你急需提升某個(gè)Python程序的速度,可以嘗試使用PyPy。它已經(jīng)足夠成熟,值得嘗試。
Python為什么受歡迎?
Guido:主要是學(xué)習(xí)方便,使用方便,而且社區(qū)開放、開發(fā)者活躍、樂(lè)于助人。
Python的開發(fā)工作目前及未來(lái)是如何進(jìn)行的?有什么樣的計(jì)劃?
Guido:目前,以及過(guò)去五年多時(shí)間里,主要是其他人在推動(dòng)Python的發(fā)展。我偶爾進(jìn)行一些指導(dǎo),判斷某個(gè)新想法是否值得接受,通常是設(shè)計(jì)是否要添加新語(yǔ)法時(shí)。在標(biāo)準(zhǔn)庫(kù)開發(fā)方面,我很少干預(yù)。有時(shí)候,我也不得不讓大家停止討論,各自妥協(xié)。
我的想法是讓社區(qū)能夠自我延續(xù),這樣我就可以最終退休或者至少可以度個(gè)長(zhǎng)假。我希望未來(lái)這門語(yǔ)言會(huì)吸收其他語(yǔ)言或者其他領(lǐng)域的新理念。
我最后想談?wù)凷ciPy和NumPy。這兩個(gè)團(tuán)隊(duì)正在推動(dòng)使用Python替代Matlab。我們的替代方案是開源的,而且更好,他們能做到的。他們正在將Python帶領(lǐng)到我以前從未想象過(guò)的領(lǐng)域。他們開發(fā)出了像JupyterNotebooks這樣的工作,可以在瀏覽器中使用交互式Python。
以上內(nèi)容為大家介紹了Python之父Guido談Python的未來(lái),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.em-kal.com/