6月初,Python之父Guido van Rossum在今日的PyCon US大會上作了名為「Python Language」的演講。近日,他又接受了IT媒體Infoworld的採訪,大談Python的未來。我們一起來看看Guido老爹對Python的 未來是怎麼看的吧。
Python在行動運算領域的應用
Guido:行動對Python來說仍是一個很難啃食的平台,但是並沒有瀏覽器平台的難度大,因為Python實際上是可以運行在所有品牌智慧型手機上的。你只要找到懂得如何建構行動版Python的人就行了。
標準的CPython原始碼幾乎可以編譯成能在安卓和蘋果手機上運行的二進位。有很多人朝這方面努力,不斷貢獻補丁包。不過進展的速度比我希望的還要慢。不過話又說回來,我本人並沒有開發行動應用,所以我沒有太多自己參與的動力。但我很樂於見到這方面的進展。
Python替代JavaScript?
Guido:這並不是我們的目標。由於瀏覽器平台的結構問題,我們很難和JavaScript競爭,最多就是將Python翻譯成 JavaScript。不過通常情況下,翻譯後的程式比Python原生程式運行的更慢,相比用JavaScript編寫的同類程式則更慢。現在有人在嚐嚐 試將Python翻譯成JavaScript,在瀏覽器中執行Python。
對WebAssembly的看法
這可能會讓在瀏覽器中運行Python成為可能。如果它取代了asm.js,那就基本上意味著JavaScript不再是Web平台上唯一使用的語 言了,而是變成了這個類似彙編語言的東西。這和Python有點像,你寫的Python程式碼,其底層的Python解釋器其實是用C語言寫的。在編譯 時,會把Python程式碼翻譯成機器碼,而這中間也涉及了某種組合語言。
如果我們無法在瀏覽器中消滅JavaScript,我們或許可以讓JavaScript成為任何希望在瀏覽器中運行語言的統一翻譯對象。這樣的話,或許Python和其他語言,如Ruby和PHP,就能有效率地翻譯成底層的JavaScript。
WebAssembly其實對Python開發者來說是個機會。我相信以後會有一段試驗期,那些更喜歡開發工具的人可以有機會探索怎樣才是在 WebAssembly之上運行Python的最好方法。他們試驗成功並開始推廣之後,我們就可以和Python開發者說,「你現在也可以用Python 寫瀏覽器客戶端app了」。但現在還不是時候。
Python的性能提升
Guido:Python 3的性能已經跟上來了,比2012年時要快的多。另外,還有像PyPy這樣的Python實作。有一些新版本的Python解釋器也在試圖提升速度。
其實,Python的表現並沒有人們說的那麼差,而且因為Python大部分是用C語言實現的,很多事情做起來可以和C語言一樣快。我還是認為,Python對於大部分事情來說已經夠快了。
儘管沒有在Python 3中新增特性以改善速度,但是我們已經讓語言的很多方面變快了:比如,引用計數比以前快了些。主要還是優化現有的程式碼,但是作為用戶來說,很難注意到差異。
而且如果你急需提升某個Python程式的速度,可以嘗試使用PyPy。它已經足夠成熟,值得嘗試。
Python為什麼受歡迎?
Guido:主要是學習方便,使用方便,而且社區開放、開發者活躍、樂於助人。
Python的開發工作目前及未來是如何進行的?有什麼樣的計劃?
Guido:目前,以及過去五年多時間裡,主要是其他人在推動Python的發展。我偶爾會進行一些指導,判斷某個新想法是否值得接受,通常是設計是否要加入新語法時。在標準庫開發方面,我很少干預。有時候,我也得讓大家停止討論,各自妥協。
我的想法是讓社區能夠自我延續,這樣我就可以最終退休或至少可以度個長假。我希望未來這門語言會吸收其他語言或其他領域的新概念。
我最後想談談SciPy和NumPy。這兩個團隊正在推動使用Python取代Matlab。我們的替代方案是開源的,而且更好,他們能做到的。他們正在將Python帶領到我以前從未想像過的領域。他們開發了像Jupyter Notebooks這樣的工作,可以在瀏覽器中使用互動式Python。