标准答案是,当您只需编写几行代码时它就很有用......
我在Eclipse中集成了两种语言.因为Eclipse处理编译,解释,运行等两者"运行"完全相同.
两者的Eclipse IDE类似 - 即时"编译",智能感知等.两者都允许使用Debug透视图.
如果我想测试几行Java,我不必创建一个全新的Java项目 - 我只使用Eclipse中的Scrapbook功能,它允许我"执行Java表达式而无需创建新的Java程序.这是一种快速测试现有类或评估代码片段的简洁方法.
Jython允许使用Java库 - 但是(根据定义)Java就是这样!
那么Jython还有哪些其他好处呢?
一个简单的例子(来自http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html):
您在Java中有后端,并且需要执行HTTP GET请求.
本地:
import java.net.*; import java.io.*; public class JGet { public static void main (String[] args) throws IOException { try { URL url = new URL("http://www.google.com"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null) { System.out.println(str); } in.close(); } catch (MalformedURLException e) {} catch (IOException e) {} } }
在Python中:
import urllib print urllib.urlopen('http://www.google.com').read()
Jython允许您使用java健壮性,并在需要时使用Python清晰度.
还有什么 ?正如乔治会说......
Python语法(由Jython使用)对于许多程序员来说更加简洁和快速.
此外,您可以在Java应用程序中使用现有的Python库.
打个比方:为什么喝咖啡的时候可以喝热自来水,咀嚼烤苦豆.:-)
对于某些任务,Python只是味道更好,效果更好,而且足够快(需要时间来酿造?).如果您的编程或部署环境专注于JVM,Jython允许您编写Python代码,但不会更改部署和运行时环境.
我刚刚发现了Jython,作为一名语言学家,我想我会说这有点像"为什么在使用法语时使用拉丁语"(忘记了拉丁语在法语之前出现的事实,当然) .
不同的人类语言实际上会让你以不同的方式思考.法语是一门很棒的语言,我在法国生活了很长时间并且完成了学位.但拉丁语的惊人力量和简洁性使你的思想进入了一个不同的区域,例如,可以交换单词顺序以产生各种微妙的效果.
我想,从我对Jython的粗略认识中,顺便提一下我的热情,它会让我以不同的方式思考.我曾经对Python/Jython持怀疑态度,并且一直是Java泛型的忠实粉丝(具有讽刺意味的是减少打字量,因此如果你愿意,可以"拉丁文化"法语).我不太了解像Jython这样的"动态类型"语言的全部含义,但我认为最好的方法是顺其自然,看看Jython在我的脑海中做了什么!
语言来来去去很有趣.另一个"拉丁语"可能被认为是具有无限递归语法的Algol68.但是,开发大规模递归代码的必要性,以及读取它并在其中思考的能力,还没有(感觉到)自己感觉到.Jython 似乎是一个非常强大和优雅的适合我们现在的地方,使用OO库,Java swing的强大功能,以及所有包装在一个非常优雅的捆绑.也许有一天Jython也会采用无限递归语法?
我使用Jython进行Java代码的交互式测试.这通常比编写Java测试应用程序甚至任何脚本语言快得多.我可以玩这些方法,看看它是如何反应的.从那里我可以学到足够的东西来编写一些真正的代码或测试用例.