我正在尝试在 groovy 和 beanshell 之间进行选择,我需要一个正在积极开发中、速度适中、可以访问/解释 java 代码并支持限制它可以在我的内部代码中访问哪些 java 类。我不确定 beanshell 是否仍在积极开发中。请给我建议。
谢谢你。
查看 beanshell.org 档案,它看起来自 2005 年以来一直没有真正活跃的开发。自 2009 年 1 月以来,开发者邮件列表没有任何流量。当然,这项工作可能已经转移到其他地方,但是我看不到任何明显的目的地...
Groovy 肯定正在积极开发中。
(免责声明:作为参与 Groovy in Action 书籍的人,我有一定的偏见......但我实际上并没有定期使用 Groovy;这不像是我有斧头要磨 :)
以下是我在 groovy 和 beanshell 之间发现的差异
我更喜欢 groovy 用于我的开发,因为它服务于我的目的,它可以执行用 beanshell 编写的脚本。
无论如何,下面是我在评估 Groovy 2.0.0 和 Beanshell 2.0b4 时发现的观察结果
这两种脚本语言的语法都类似于 Java。
时髦的
支持泛型和带有泛型的集合。还支持原始类型,例如> ArrayList str = new ArrayList()
支持使用可变参数调用方法,例如。方法(int ...我)
豆壳
不支持将某些十六进制十进制值分配给原始数据类型,例如 int i = 0x80018000 会从 beanshell 解释器中抛出一个异常,说大小很大 在这种情况下要使用 BigInteger,这又很乏味,因为我们必须做这样的事情BigInteger i = new BigInteger("0x80018000");
This problem occurs even if we declare long i = 0x80018000
似乎Beanshell 最近正在开发中,并将在某个时候集成到 J2SE 中。我会投票支持 Beanshell 而不是 Groovy,最重要的原因是它更直接一些,而不是尝试学习所有 Groovy 独特语法的学习曲线,这几乎就像学习一门新语言一样。