Выбор языка сценариев - PullRequest
3 голосов
/ 30 июля 2011

Я пытаюсь выбрать между groovy и beanshell, мне нужен тот, который находится в активной разработке, умеренно быстрый, может получать доступ / интерпретировать код Java и поддерживать ограничение, к которому классы Java могут обращаться в моем внутреннем коде. Я не уверен, что бобовая оболочка все еще находится в активной разработке. Пожалуйста, посоветуйте мне.

Спасибо.

Ответы [ 3 ]

7 голосов
/ 30 июля 2011

Просматривая архивы beanshell.org, похоже, что он не находился в стадии активной разработки с 2005 года. В списке рассылки для разработчиков не было трафика с января 2009 года. Возможно, что Конечно, работа переместилась в другое место, но я не вижу никаких очевидных направлений ...

Groovy определенно находится в активной разработке.

(Отказ от ответственности: как кто-то, участвующий в книге о Groovy в действии, у меня есть определенная предвзятость ... но я на самом деле не использую Groovy на регулярной основе; у меня нет топора, чтобы размолоть :)

2 голосов
/ 30 ноября 2012

Ниже приведены различия между Groovy и Beanshell

Я бы предпочел groovy для моей разработки, так как он служит моей цели, в которой он может выполнить скрипт, написанный на beanshell.

В любом случае ниже приведены наблюдения, которые я обнаружил, когда оценил Groovy 2.0.0 против Beanshell 2.0b4

Оба этих языка сценариев имеют синтаксис, аналогичный Java.

Groovy

  1. Groovy движок может запускать скрипт, написанный для бобовой оболочки
  2. Среда выполнения - Java 1.5. разработан на JDK1.5
  3. Поддерживает дженерики и коллекции с дженериками. Также поддерживает сырые типы например> ArrayList str = new ArrayList ()

  4. Поддерживает вызов методов с переменными аргументами например. метод (int ... i)

  5. Поддерживает примитивные типы данных, такие как int, для назначения 4-байтовых шестнадцатеричных значений например. int i = 0x80018000;
  6. Синтаксис для инициализации массива немного отличается от Java например. В java массив инициализируется как int [] array = {1,2,3}; В groovy это делается как int [] array = [1,2,3];
  7. Подставки для петель и для каждой петли и т. Д.

BeanShell

  1. Beanshell не может запустить скрипт, написанный для groovy, так как он основан на JDK1.4. так что нет общих признаков
  2. Среда выполнения - 1.4 или более, но не поддерживает обобщенные значения
  3. Не поддерживает генерики. поддерживаются только необработанные типы
  4. Не поддерживает написание метода с переменными аргументами или вызов метода с переменными аргументами
  5. Не поддерживает передачу определенных шестнадцатеричных значений примитивным типам данных. например, int i = 0x80018000 выдает исключение из интерпретатора BeanShell, говорящее, что размер большой В этом случае следует использовать BigInteger, что опять же утомительно, так как мы должны сделать что-то подобное BigInteger i = новый BigInteger ("0x80018000");

        This problem occurs even if we declare long i = 0x80018000
    
  6. Синтаксис для инициализации массива аналогичен java.
  7. Подставки для петель и для каждой петли и т. Д.
0 голосов
/ 19 августа 2011

Похоже, что Beanshell в последнее время разрабатывается и в какой-то момент будет интегрирован в J2SE.Я бы проголосовал за Beanshell вместо Groovy, самая важная причина в том, что он немного более прямолинеен, чем попытка освоить весь уникальный алгоритм Groovy, что делает его почти как изучение нового языка.

...