Python是面向对象且开放源代码的动态编程语言,解释器由C编写。Jython是Python语言的Java实现,解释器使用100%的纯Java实现,在Jython的支持下,可以将Python代码迁移到Java虚拟机上运行。
已有不少动态语言给出了在Java VM之上的实现,如JRuby、Groovy、Jacl,但相比之下,Jython仍有其独到的优势:
- Jython可实现Python动态编译为Java字节码,在不牺牲交互性的前提下,提升动态语言程序的执行效率
- 在Jython中可以继承已有的Java类,并有效的使用抽象类
- 可选的静态编译,允许创建applets, servlets, beans
- Bean属性使得Java包在Jython中使用更为方便
在Jython中可以直接对Java类进行调用,与Java程序相比,Jython的实现代码量大大减少,同时在Jython中不必像Java那样声明类型,动态类型支持类型在运行时决定。Jython不仅赋予开发者所有可以调用的Python库,同时也为开发者引入庞大的Java类库,可以使开发者享用Java丰盛的资源。
即将发布1.0版本的Python Web开发框架Django目前也可以运行在Jython之上。Jim Baker在其Blog上撰文展示了Django向Jython平台的迁移情况,迁移时针对各文件的 测试结果也可随时查看。
Django被认为是”具有整齐务实设计的快速Web开发框架”,与Rails相似但同时也拥有超越Rails的亮点。如果感兴趣Django的开发,请移步IBM DeveloperWorks查看我之前撰写的一篇简短的入门教程。可以预计,伴随Django 1.0的推出和越来越多开发者的加盟,Django向Jython的迁移可能将成为吸引开发者使用Jython的杀手级应用。