Jython的發展之道:性能,性能,性能!
Java做為一門編程語言正在老去,但Java平臺卻生命力越來越旺盛。事實上由于企業級開發對JVM的依賴與信任,很多語言都視JVM為走向企業級開發的重要步驟之一。在過去的幾年間有大量編程語言被“移植”到了Java虛擬機上,更有甚者單獨為JVM創建了為數眾多的語言。這包括Ruby(JRuby)、JavaScript(Rhino)、Groovy以及Python(Jython)。特別是Python在JVM上得到了蓬勃的發展,這都得益于最近Jython的前進勢頭。
Jython是Python編程語言的一種實現,運行在JVM上。它擁有超過10年的歷史,然而大多數時間還是處于停滯不前的狀態。最近,Jython領域變得活躍起來,這也帶動了Python在JVM上的發展。近日InfoQ的Craig Wickesser采訪了Jython的項目領導Frank Wierzbicki以了解Jython的當前狀況以及JVM上的Python現狀。
過去一年多的時間里,Jython開始變得繁榮起來,你是怎么看待這一點的?
我認為Jython 2.5(該版本的Jython對CPython的兼容性是最好的)實在是功不可沒。我們現在擁有的Python應用和框架的數量都是前所未有的。比如說Django、Pylons以及Py2Web等等,SQLAlchemy 0.6很快也會與Jython協同工作了;除此以外,Twisted、TurboGears以及Grok上的工作也都在有條不紊地進行當中。所有這些都能訪問Java程序庫,就好像訪問本地Python一樣。
Sun Microsystems在Jython開發中扮演著什么角色?
Sun允許我全職負責Jython開發。我也對NetBeans團隊做出了不少貢獻,使得Python和Jython成為NetBeans IDE上的一等公民,而且還使得Jython、Django以及Pylons能與GlassFish協同工作。當然了,這些團隊也為Jython的開發做出了卓越的貢獻。
Jython 2.5最重要的變化是什么?
Jython 2.5的關注點在于讓Jython成為現代化、兼容于CPython、卓越的Python實現。我們使勁渾身解數讓盡可能多的純Python框架和應用能夠正常運行,但卻沒有把太多精力放在性能調優上,這是接下來要做的事情,換句話說,我們要使Jython的性能與CPython有一拼。
Jython 2.6的路線圖如何?
我們現在將大部分精力都放在了性能上,同時還在不斷增加新的特性。比如,我們計劃改進與Java程序庫的集成,尤其是需要替換掉Jython 2.2.x中一個名為“jythonc”的工具,該工具使得我們可以方便地實現某些Java集成并將結果打包為jar(一種Java分發格式)。由于內部設計的原因,jythonc還無法支持某些新的Python特性。我們確信還會有越來越多的應用和框架將運行在Jython上。我們期待這一天的到來:一旦應用無法運行在Jython上,那將是應用本身的bug而絕非Jython的問題。
還會有Jython3k么?
當然了!3.0是Python的未來,也是Jython的未來。坦白地說,我們還沒有開始Jython3k的開發工作,但我希望一旦2.6發布后我們將會認真考慮這個問題。之所以等待2.6的發布是因為用于將Python 2移植到Python 3上的工具需要2.6作為起始點。
你認為會有人用Jython開發企業應用么?
我聽說有人已經將包含Pylons或Django的WAR文件放到了產品中,還聽說某些網上商店發現Jython與JDBC的集成在某些情況下要比CPython的數據訪問更棒。Jython 2.5是個現代化的Python,在很多情況下都是非常不錯的選擇。
我不知道一般人是否了解Jython的歷史——其首個版本發布于1998年7月。那時除了Java,Jython就是JVM上功能特性最全面的編程語言了。因此企業實際上已經使用Jython很長時間了。比如IBM WebSphere和Oracle WebLogic就使用Jython作為管理腳本語言。
你如何看待JVM上的Python現狀?
對于JVM上的Python來說現在的一切都是非常美好的。由John Rose領導的Da Vinci Machine項目正致力于讓JVM成為動態語言的最佳歸宿。這項工作現在也已經融合到JDK 7中了,一旦我們可以利用這項工作的成果那Jython的執行效率就將得到極大的改進。目前我正在編寫一個Jython原型以利用該工作的成果。
【編輯推薦】