Jython是什么,它有用吗?
我知道Python,但Jython是什么呢?
- 我什么时候需要用到Jython?
- 它有什么缺点吗?
- 我猜它会很慢吧?
请详细说明一下!谢谢。
10 个回答
我什么时候需要用到Jython?
当你想用Python编程,但又需要(或者想要)让结果在Java虚拟机上运行,或者想使用现有的Java组件时,就需要Jython。
有什么缺点吗?
Jython可能和Python不是100%兼容,虽然任何不兼容的地方都可以算作一个bug。如果你之后想在CPython上运行,任何使用Java组件的代码都需要重新编写。
我想它会很慢吧?
这要看具体情况。实际上在某些情况下,它可能比CPython还快;当然,这也取决于你使用的具体Java虚拟机(JVM),这些虚拟机一直在不断改进。
如果你了解Python,并且喜欢用“Pythonic”的方式来做事情,那么Jython可以让你把这种理念带到JVM(Java虚拟机)上。这样做的意义远不止于增加脚本功能。
在我们最近的项目中,所有的自定义和业务逻辑都是用Jython编写的,同时我们还可以使用一些经过验证的优秀Java库,比如Solr、Jasperreports、Quartz、Jetty和Velocity等。
虽然Jython会被编译成字节码,但这其实是增加了一层额外的东西,不过这和用ORM(对象关系映射)代替直接使用JDBC(Java数据库连接)是一样的道理。
在工作效率上,你得到的提升远远超过了性能上的微小损失。
在服务器端,Jython很少会成为瓶颈。对于小型桌面应用,可能会有一些问题,但这主要取决于你想要实现的功能。
最新的JDK(Java开发工具包)以及像Jetty或Tomcat这样的容器都非常成熟和稳定,往上再加上Python,很多情况下可以兼得两者的优点。
引用自维基百科:
Jython是JPython的继任者,它是用Java编写的Python编程语言的实现。
至于它有什么用:
Jython程序可以无缝地导入和使用任何Java类。除了某些标准模块外,Jython程序使用Java类而不是Python模块。
对Jython、IronPython和CPython的性能测试表明,在处理一些大数据集的情况下,Jython和IronPython的表现优于CPython。