Я сделал довольно обширную разработку в Ruby и Groovy (а также немного Jython с помощью Шлифовального станка в качестве инструмента тестирования загрузки).
Из этих 3, я предпочитаю Groovy больше всего. Мне нравится синтаксис закрытия лучшее, и я думаю, что он имеет самую трудную интеграцию в том, как он работает с другими классами Java на JVM. Это было некоторое время, так как я в последний раз использовал JRuby, но классы Java импорта и работа с classloader в JRuby не чувствовали как чистые мне.
то, что Groovy является также по существу надмножеством Java, означает, что у огромного населения программистов Java там будет более быстрое время внедрения в собирании Groovy по Ruby/JRuby. Они могут начать программировать его как, он - Java, и медленно начинайте вставлять idomatic отличный, поскольку они берут его.
Главный из того, что Вы спрашиваете, я думаю, что другое преимущество Groovy состоит в том, что язык, что Вы переходите в то, когда Вы хотите оптимизировать что-то, является почти тем же самым синтаксисом, это - Java. Если Вы работаете в Ruby или мирах Python, Вы оказываетесь перед необходимостью переходить к C, который является большим сдвигом или Java, который также очень отличается, чем те языки. Программирование в Groovy имеет тенденцию помогать сохранить Ваши навыки Java несколько резкими также.
, Если у Вас есть особый доступ к Ruby или инфраструктуре Python, или команда, которая имеет знакомство с подобными средами, тогда я видел выбор одного из тех других языков.
Действительно, все 3 из них являются очень хорошими языками и что Вы выбираете, должен зависеть больше от проблемы, которую Вы пытаетесь решить и ресурсы, которые Вы имеете в наличии для Вас. Как только Вы стали опытными на одном динамическом языке, взяв секунду, или одна треть намного легче.
Я сказал бы, необходимо ли смешать Java с Jruby/Groovy, пойдите с Groovy. Как все сказали, Groovy имеет более трудную интеграцию Java.
, Но до языка реализация идет, я предпочитаю язык Ruby по Groovy, язык вращается вокруг себя, в Groovy существуют некоторые взломы, которые свойственны к самой реализации (просто наблюдают Grails stacktrace по сравнению с направляющие stacktrace, и Вы будете видеть то, что я имею в виду).
я высоко рекомендую видеть Neal Ford сравнение Groovy и JRuby
Я думаю, что Dick Wall дал очень хорошую сводку различий между этими тремя на подкасте Отряда Java (#213, о 34:20 в)... "JRuby был разработан для создания программистов счастливыми..., что это - выбор разработчика языка программирования; Python имеет очень сильные корни в простоте и образовании; Groovy нацелен прямо на то, чтобы быть выбором для Java-разработчиков..., это - очень знакомая среда для Java... с поддержкой аннотаций".
С точки зрения перемещения языка за пределами JVM, я не думаю, что Среда выполнения Java налагает большую часть издержек - это - простая установка, и необходимо установить некоторые переменные среды - но это действительно предоставляет много преимуществ включая зрелое время выполнения, которое было высоко оптимизировано, и большой набор библиотек. Команды JRuby теперь сообщают о лучшей производительности, чем собственная МРТ. http://blog.headius.com/2008/08/twas-brillig.html
У меня только был опыт с Jython и Groovy. Самый большой недостаток с Jython, в данный момент, то, что последний выпуск, рекомендуемый для производства (2.2.1), имеет набор функций, который "примерно соответствует набору функций Python 2.2" ( Jython FAQ). Существует бета реализация, что я принимаю, Python 2.5, который является теперь версией позади. Не знайте, может ли то же быть сказано для JRuby.
Я не знаю, почему необходимо выбрать Groovy, потому что я не знаю образование. Если Вы - Java-разработчик, Groovy чувствует себя более подобным Вашему текущему языку тогда JRuby или Jython. Groovy комбинирует лучший из Java, языка, Java, платформы и Ruby язык.