Должен ли я использовать Jython, JRuby, Beanshell, Groovy, Rhino или что для этой маленькой задачи?

У меня есть несколько сценариев пакетной обработки данных, которые поддерживают веб-сайт малого бизнеса.

скрипты-это "крысиное гнездо" Perl, Java и хранимых процедур, которые выполняются по расписанию для обновления данных на основе различных источников и алгоритмов.

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

какой из различные Java динамический / скриптовый язык должен я использовать, который будет соответствовать следующим критериям:

  • Straightfoward для миграции кода Perl, предоставляя аналогичную выразительную мощность, ввод-вывод, регулярное выражение и т. д.
  • хорошая поддержка IDE, включая завершение кода и отладку предпочтительно в Eclipse
  • простота установки. Желательно весь скрипт должен быть в одном файле jar.
  • не технологии-сирот. Я хочу выбрать что-то, что будет еще через 5 лет.
  • конечно-чистая интеграция с остальной частью Java-кода, который у меня уже есть.

Я надеюсь, что мои критерии достаточно ясны, что это не помечается как субъективный вопрос.

для меня это, безусловно, вопрос программирования. Я вижу все эти языки как "полезные библиотеки java".

спасибо!

3 ответов


честно говоря, Jython, JRuby, Groovy были бы хорошими выборами. Все они имеют достойную поддержку IDE, а синтаксис такой же выразительный и более лаконичный, чем Perl. (Python и Ruby оба задолжали Perl в своей концепции, поэтому перенос с Perl не слишком большая головная боль)

конечно, Beanshell и Javascript (в форме Rhino) тоже будут адекватными, хотя я бы сказал, что оба их синтаксиса менее выразительны.

судя по текущим тенденциям использования, я бы скажем, Jython, а затем JRuby, вероятно, будут двумя с самой общей поддержкой / долговечностью по отношению к другим.

на самом деле выбор сводится к вашему уровню с каждым из этих языков, но из всех них я бы предложил вам использовать Jython, но если вам удобнее с Ruby, JRuby.


Я голосую за Jython, так как он может взаимодействовать с существующим Java-кодом, и у него есть сильная база поддержки. Не говоря уже о его Python, который прост в освоении и использовании. Eclipse имеет довольно хорошую поддержку подсветки синтаксиса, отладки и автозаполнения. Наконец, установка очень проста, так как это автономная папка (без реальной "установки").

Я признаю предвзятость, так как я использовал другие инструменты, которые вы упомянули гораздо меньше, чем у меня есть Jython, но мне это не нужно, так как Jython подходит должен так хорошо.


Я должен сказать, что несколько тестов показывают, что Groovy выигрывает в скорости, по сравнению с Jython и BeanShell. Тест был выполнен с использованием DMelt (http://jwork.org/dmelt) framework, где вы можете переходить с одного языка на другой, вызывая те же библиотеки Java.