Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要使用哪种JVM脚本语言来定制java web应用程序?_Java_Scala_Groovy_Beanshell - Fatal编程技术网

要使用哪种JVM脚本语言来定制java web应用程序?

要使用哪种JVM脚本语言来定制java web应用程序?,java,scala,groovy,beanshell,Java,Scala,Groovy,Beanshell,我正在设计一个系统,并考虑使用一些脚本语言,以便让第三方开发人员扩展系统的功能 为了让您了解我的目标…当触发事件时,脚本语言将需要调用VM空间中的一些对象,这些对象将提供通用功能(例如,在BD上存储对象、发送电子邮件) 在一个类似的情况下,几年前,我使用了它,它工作得很好。查看网站,该项目似乎有点过时 现在有几种VM语言,仅举几个例子。我应该有什么考虑?你有过类似环境的工作经验吗 Groovy在语法上类似于C/Java语言家族,在语义上基于Ruby/Python/Smalltalk。它应该有一个

我正在设计一个系统,并考虑使用一些脚本语言,以便让第三方开发人员扩展系统的功能

为了让您了解我的目标…当触发事件时,脚本语言将需要调用VM空间中的一些对象,这些对象将提供通用功能(例如,在BD上存储对象、发送电子邮件)

在一个类似的情况下,几年前,我使用了它,它工作得很好。查看网站,该项目似乎有点过时


现在有几种VM语言,仅举几个例子。我应该有什么考虑?你有过类似环境的工作经验吗

Groovy在语法上类似于C/Java语言家族,在语义上基于Ruby/Python/Smalltalk。它应该有一个平滑的学习曲线,并且不应该很难立即学习和提高效率(如果这对你的客户来说是个问题的话)

它具有和,用于轻松评估存储在数据库中的某些脚本,例如:

result = Eval.me """
    a = 1 + 2
    b = 3 + 4
    a + b
"""

assert result == 10

请注意,这太原始了,您可能需要某种沙箱,否则您的客户机可能会做一些讨厌的事情,如
System.exit
。对于这些场景,有和。另外,您也可以。

Groovy在语法上类似于C/Java语言家族,并且在语义上基于Ruby/Python/Smalltalk。它应该有一个平滑的学习曲线,并且不应该很难立即学习和提高效率(如果这对你的客户来说是个问题的话)

它具有和,用于轻松评估存储在数据库中的某些脚本,例如:

result = Eval.me """
    a = 1 + 2
    b = 3 + 4
    a + b
"""

assert result == 10

请注意,这太原始了,您可能需要某种沙箱,否则您的客户机可能会做一些讨厌的事情,如
System.exit
。对于这些场景,有和。此外,您还可以。

优先选择对计时器库、调度程序库、http支持库和系统调用库的一流支持。但是JVM上的大多数语言都会得到支持,因为它们可以在java库上进行回复,java 9也会附带一个回复。Scala的目标可能太高了。JavaScript很难看(imho),但最容易访问,而且可以使用Java脚本API。我强烈推荐scala,它值得学习。Scala已经有了REPL,Ammonite REPL也可以使用,这比Scala replI要好得多。我不会把Scala称为脚本语言,就像我说Java一样。检查一下Scala脚本对计时器库、调度程序库、http支持库和系统调用库的一流支持,应该是首选。但是JVM上的大多数语言都会得到支持,因为它们可以在java库上进行回复,java 9也会附带一个回复。Scala的目标可能太高了。JavaScript很难看(imho),但最容易访问,而且可以使用Java脚本API。我强烈推荐scala,它值得学习。Scala已经有了REPL,而且Ammonite REPL也可用,这比Scala REPL好得多。我不会把Scala称为脚本语言,就像我说Java一样。请检查一下Scala脚本,谢谢您的推荐。我想你至少提到了两个关键特性:沙箱、学习曲线。谢谢你的推荐。我认为您至少提到了两个关键特性:沙箱、学习曲线。