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原型以利用该工作的成果。
【编辑推荐】