2011-07-30 94 views
3

我正在尝试在groovy和beanshell之间进行选择,我需要一个处于活动状态的开发,速度适中,可以访问/解释Java代码并支持限制其在我的内部代码中可以访问的Java类。我不确定beanshell是否仍在积极开发中。请指教我。选择脚本语言

谢谢。

回答

7

回顾beanshell.org档案,它似乎自2005年以来一直没有真正活跃的发展。developer mailing list自2009年1月以来没有任何流量。当然,这项工作可能已经转移到别处,但我看不到任何明显的目的地... ...

Groovy肯定是在积极发展。 (免责声明:作为参与Groovy in Action书籍的人员,我有一定的偏见......但我并没有经常使用Groovy;这不像我有斧头可以磨砺: )

+1

其高兴看到一个C#的家伙解释关于Groovy;);) –

+0

@乔恩不要混淆积极发展与烟雾和镜子口耳相传,它的Groovy有很多。 –

+1

@Vorg:恩,我看到一个非常活跃的SVN日志。您是否暗示Groovy *没有处于积极的发展阶段,并且SVN提交在某种程度上是不相关的或假的? –

0

看来Beanshell is under development lately将在某些时候被集成到J2SE中。我会投票支持Groovy的Beanshell,最重要的原因是它比较直截了当,而不是学习Groovy所有独特语法的学习曲线,这使得它几乎就像学习一门新语言一样。

2

下面是我发现的常规之间的BeanShell

我宁愿常规为我发展为服务我的目的,其中,它可以执行用的BeanShell脚本的差异。

反正下面是我发现当我评价的Groovy 2.0.0 agains BeanShell的2.0b4

这两种脚本语言已经语法类似于Java的意见。

的Groovy

  1. Groovy的引擎可以运行BeanShell的
  2. 执行environtment写了一个脚本的Java 1.5。在JDK1.5上开发
  3. 支持泛型和泛型的集合。还支持原始类型 例如> ArrayList str = new ArrayList()

  4. 支持调用具有可变参数的方法 例如,方法(int ... i)

  5. 支持像int这样的基本数据类型来分配4个字节的十六进制数值 例如。 int i = 0x80018000;
  6. 数组初始化的语法从java 例如dfierent。在java中,数组初始化为int [] array = {1,2,3}; 在groovy中,它被完成为int [] array = [1,2,3];
  7. 支持循环和每个循环等

BeanShell的

  1. ,因为它是基于JDK1.4 BeanShell中不能运行常规写的剧本。所以没有通用功能
  2. 执行环境为1.4或更高,但不支持泛型
  3. 不支持泛型。只有原始类型的支持
  4. 犯规支持写入具有可变argumnets的方法或调用具有可变arugments
  5. 的方法
  6. 犯规支撑assinging某些十六进制十进制值的原始数据类型 例如INT I = 0x80018000抛出异常从beanshell解释器说大小很大 BigInteger用于这种情况,这又是一件繁琐的事情,因为我们必须这样做 BigInteger i = new BigInteger(“0x80018000”);

    This problem occurs even if we declare long i = 0x80018000 
    
  7. 数组初始化的语法与java类似。
  8. 支持循环和每个循环等