我正在设计一个框架,我想附加到脚本语言API,使其更通用,更易于使用(对于某些事情,我自己更喜欢脚本方式;)。使用JRuby,Jython或Rhino(JavaScript)等语言,可以使用许多流行的脚本语言的解释器,据我所知,所有这些语言都实现了Java Scripting language API以将它们嵌入到Java应用程序中。
您是否有以这种方式运行的经验?我特别感兴趣的是处理关联数组(或Java Bean)。 性能如何(例如与CGI类似的方法或本机Java方式相比)?在不同的解释器之间切换是否容易(当然它是一个API规范,但我仍然不知道如何处理语言特定的问题)?
答案 0 :(得分:5)
我已经运行过Rhino,Jython,JRuby和Groovy。它们之间存在明显的语言差异,而且整体性能相当缓慢。我发现Groovy最容易为我的应用程序创建特定于域的语言(DSL)。在包可访问性和运行时变量方面,Groovy也是最容易控制的语言,但是需要使用Groovy API来代替JSR-223。
我觉得Groovy工具/ documenation / api可以更好地与JVM进行网格划分,但是ruby / python肯定有很多跟随,并且语法对某些人来说可能更舒服。最终,我会在你的框架中尝试全部并选择一个。多种脚本语言听起来不错,但可能是调试/支持/转换的头痛。之后:你可以检查BeanShell