Разве там неопровержимые доводы не состоят в том, чтобы использовать Groovy?

Как насчет чего-то вроде этого:

String st = "10+3";
int result;
for(int i=0;i<st.length();i++)
{
  if(st.charAt(i)=='+')
  {
    result=Integer.parseInt(st.substring(0, i))+Integer.parseInt(st.substring(i+1, st.length()));
    System.out.print(result);
  }         
}

и выполните аналогичные действия для каждого другого математического оператора соответственно.

35
задан Leonard H. Martin 18 January 2009 в 23:44
поделиться

5 ответов

Существует две причины, о которых я могу думать для не использования Groovy (или Jython или JRuby):

  • , Если Вы действительно, действительно нуждайтесь в производительности
  • при пропавших без вести статического типа, проверяющего

, Те - оба крупная IFS. Производительность является, вероятно, меньшим количеством фактора в большинстве приложений, чем люди думают, и статическая проверка типа является религиозной проблемой. Однако одна сила всех этих языков является их способностью к смешиванию и подгонке с собственным кодом Java. Лучший из обоих миров и всего это.

, Так как я не ответственен за Ваш бизнес, я говорю, "Идут для него".

26
ответ дан billjamesdev 10 October 2019 в 12:46
поделиться

Две причины, почему Scala мог бы быть востребованной альтернативой Groovy:

  • Производительность наравне со статическим контролем типов Java
  • без помехи
9
ответ дан Fabian Steeg 10 October 2019 в 12:46
поделиться

Одной из самых больших вещей, которые Вы теряете при использовании динамических языков особенно в большой кодовой базе является способность использовать IDE для осуществления рефакторинг. Языки, которые позволяют динамично добавлять код к объектам просто, не могут быть проанализированы сегодняшними IDE для разрешения вида легких методов рефакторинга, которые можно получить от Eclipse, и т.д. для Java, C++, и т.д.

Это не действительно случай "Динамических языков, лучше, чем Статичный". Используйте то, что является лучшим для Вас. Действительно прохладная вещь о Groovy в особенности - Вы, может Java смешивания и подгонки и Groovy в том же проекте, и все это работает на VM. Да, Scala является другим примером.

7
ответ дан billjamesdev 10 October 2019 в 12:46
поделиться

Я думаю, что самой большой проблемой является отсутствие поддержки IDE по сравнению с Java, однако плагины для Eclipse и Netbeans являются улучшением все время. Кроме того, если я помню правильно, что Groovy не поддерживает анонимные внутренние классы при реальной необходимости в них по некоторым причинам. Я лично выбрал бы Groovy в любое время все же.

2
ответ дан Abdullah Jibaly 10 October 2019 в 12:46
поделиться

Если вы используете Groovy, вы, по сути, теряете полезную информацию о типах. Это оставляет ваш код "отличным": красивым и лаконичным.

Bird b 

становится

def b

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

Однако - и да Я много пробовал IntelliJ, Netbeans и Eclipse - серьезный автоматический рефакторинг в Groovy невозможен. Это не вина IntelliJ: информации о типе просто нет. Разработчики скажут: «Но если у вас есть модульные тесты для каждого отдельного пути кода (хммм), тогда вам будет проще провести рефакторинг». Но не верьте этой шумихе: добавление большего количества кода (модульных тестов) повысит безопасность массового рефакторинга, но не облегчит работу. Теперь вам нужно вручную исправить исходный код и модульных тестов.

Это означает, что вы не так часто реорганизуете Groovy, особенно, когда проект является зрелым. Хотя ваш код будет кратким и легким для чтения, он не будет таким блестящим, как код, который подвергался автоматическому рефакторингу ежедневно, ежечасно и еженедельно.

Когда вы понимаете, что концепция , представленная классом в Java, больше не нужна, вы можете просто удалить ее. В Eclipse, Netbeans или чем-то еще иерархия вашего проекта загорается, как рождественская елка, сообщая вам, что именно вы напортачили с этим изменением. def thing ничего не сообщает компилятору (и, следовательно, вашей IDE) о том, как будет использоваться переменная, существует ли метод и т. Д. И IDE могут только предполагать.

В конце концов, Java-код наполнен «шаблоном», но после многих рефакторингов он был доведен до окончательной формы. И для меня это единственный способ получить высококачественный, читаемый код для будущих программистов, в том числе когда эти будущие программисты - это вы в будущем.

13
ответ дан 27 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: