Должен ли я использовать 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.