什么是可以理解数据类型并且可以用Java实现的脚本语言?

时间:2009-06-09 19:44:07

标签: java scripting etl

我正在寻找符合以下条件的脚本语言:

  • 记录良好
  • 以Java实现
  • 理解数据类型(可以处理长篇,字符串等)
  • 完全可扩展

有什么建议吗?目前,我正在使用Javascript,但是它设置数字的双打对于我正在进行的数据工作来说还不够大。

谢谢!

6 个答案:

答案 0 :(得分:4)

Groovy

特别是,Groovy 可以用作脚本语言,但不一定是,并且是基于Java构建的。它不是一个不同语言的Java端口,这意味着它与Java的集成比JRuby / Jython更紧密,尽管自从我上次查看它们以来可能已经发生了变化。

至于Groovy的文档,您可能想购买Groovy in Action(插头插件;)

答案 1 :(得分:2)

Python和Ruby有Java实现(寻找Jython和JRuby)。

答案 2 :(得分:0)

LuaJava可能就是这样。所有数字在内部表示为lua中的双精度。

答案 3 :(得分:0)

我不确定“了解数据类型”是什么意思。如果你的意思是它有字符串,数字等,那么JavaScript,Groovy,Python和Ruby是很多与Java集成的语言中的一部分。如果你正在寻找一种静态类型的语言,我不确定。

关于您在JavaScript中不够大的双打问题,您可以在JavaScript代码中分配Java BigDecimal对象(或BigInteger对象)。因此,数字表示不应成为您的问题。

答案 4 :(得分:0)

你是什么意思“它设置数字的双打对于我正在做的数据工作来说还不够大。”在大多数语言AFAIK中,双打的大小相同。

您需要多少精度?如果您需要超过大约16位数的精度,BigDecimal可能适合您。

答案 5 :(得分:0)

Clojure或Groovy将是我的建议。

Jon's answer已经有一些关于Groovy的详细信息,所以这里有关于Clojure的更多信息:

  • 它是一个Lisp,因此具有高度可扩展性,非常适合构建DSL
  • 它是用纯Java编写的,因此您可以轻松地嵌入Java应用程序中
  • 它非常动态,非常适合REPL的交互式脚本编写

特别是Java互操作非常简单:Clojure对象 Java对象,反之亦然,你可以直接调用方法:

;; create a string
(def s "Hello World")

;; inspect its type
(class s)
=> java.lang.String

;; call a method 
(.length s)
=> 11

;; count the characters (Clojure can treat Strings as a sequence of characters)
(frequencies s)
=> {\H 1, \e 1, \l 3, \o 2, \space 1, \W 1, \r 1, \d 1}