发新话题
打印

Jython的发展之道:性能,性能,性能!

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的未来,ifsong旗舰店也是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原型以应用该工作的成果。
jiyizhen-buy.com颈椎保健枕太空记忆枕 igerl.com歌瑞尔内衣

TOP

发新话题