您在 java 世界中首选的脚本语言(JVM 上的脚本语言)和方式是什么?什么时候你更喜欢你的脚本语言而不是 java(在什么情况下,例如原型设计)?您将其用于大型项目还是仅用于个人项目?
8 回答
For me, Clojure wins hands down. Being a Lisp, it's concise and dynamically typed, it has enormous expressive power so I can write a lot of functionality in a few lines. And its integration with Java is unsurpassed – I'm only partly joking when I say Clojure is more compatible to Java than Java itself. As a result, the entire breadth of Java libraries, both from the JDK and 3rd party, is fully useable.
Finally, with a little care Clojure code can be as fast as Java code, so I'm not even losing performance.
我最喜欢的是 Jython,我通过在我的 Java 应用程序中嵌入一个 Jython 解释器来使用它。它正在商业项目中使用,它允许根据客户的需要轻松定制应用程序,而无需编译任何东西。只需将脚本发送给他们,就是这样。一些客户甚至可以自己定制他们的应用程序。
我已经在一个商业项目中成功使用了Groovy 。由于鸭子类型和闭包,我更喜欢脚本语言:
def results = []
def min = 5
db.select(sql) { row ->
if (row.value > min)
results << row;
}
翻译:对数据库运行 SQL 查询,并将列“value”大于“min”的所有行添加到“result”。请注意您可以轻松地将数据传递到内部“循环”或从中获取结果。是的,我知道我可以用 SQL 实现同样的效果:
def results = []
def min = 5
db.select(sql, min) { row ->
results << row;
}
(想象一下“sql”中的字符串在正确的位置有一个“?”)。
恕我直言,使用不提供丰富列表操作(排序、过滤、转换)和闭包的语言的数据库只是作为一个例子,你不应该这样做。
我很想更多地使用 Jython,但是 Jython 2.5 的工作最近才开始,而 Python 2.2 对我的目的来说太旧了。
我可能更喜欢 Scala,但我不能说,还在学习。目前使用 Groovy 编写小型实用程序。甚至没有在 Grails 上尝试过 Groovy。也听说过很多关于Lift Framework for Scala的好消息。
JavaScript Rhino 有一个引人注目的优势——它包含在 JDK中。话虽如此,Rhino 比 Java 6 更高的版本具有很好的特性,比如生成器、数组解析和解构赋值。
每当处理 Java 异常的仪式使代码混乱而没有真正的好处时,我都喜欢使用它。当我想编写一个利用 Java 库的简单命令行脚本时,我也会使用它。
爪哇。严重地。它是一种功能强大、易于使用(虽然有点冗长)的语言,大家都知道。与 Java 的集成很棒。
我工作的公司将 Groovy 嵌入到 Java/Spring 网站中,该网站部署在多个站点上。脚本存储在编译后的 WAR 文件的外部,允许我们操作一些站点逻辑,而无需向每个站点推出新的 WAR。到目前为止,这种方法对我们来说非常优雅。
Groovy 的一个特别好的特性是它可以非常类似于 Java 代码,这使得将现有的 Java 类移植到它变得非常容易。
SISC(方案代码的第二解释器)怎么样?