Подставляя Groovy для Java понемногу - PullRequest
11 голосов
/ 12 февраля 2010

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

Вопросы:

  1. Это разумный способ конвертации?
  2. Могу ли я сохранить все свои открытые методы и поля в Java? Groovy - это просто суперсет, верно?
  3. Какие вещи вы бы не сделали бы в Groovy, но вместо этого предпочли бы Java?

Ответы [ 2 ]

13 голосов
/ 12 февраля 2010

Это разумный способ конвертации?

Да

Могу ли я сохранить все свои открытые методы и поля в Java? Groovy - это просто суперсет, верно?

Почти суперсет, но не совсем. Например, == в Groovy вызывает метод .equals, но в Java он проверяет, ссылаются ли 2 ссылки на один и тот же объект. Другой пример - Groovy не поддерживает этот синтаксис для построения массивов

Object[] objs = new Object[] { 1, 2, 4 }

Последний пример: при вызове перегруженного метода Groovy использует тип параметров времени выполнения при выборе метода для вызова, тогда как Java использует типы параметров времени компиляции. Эта страница содержит довольно полный список различий между двумя языками.

Что бы вы не делали в Groovy, но вместо этого предпочли бы Java?

Я пишу все на Groovy, потому что я работаю с Groovy гораздо более продуктивно, чем Java, и мне гораздо больше нравится программирование на Groovy. Я использовал бы только Java, если бы была проблема с производительностью какого-то кода И . Я мог продемонстрировать, что написание его на Java решило проблему. На практике такого никогда не случалось со мной.

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

4 голосов
/ 12 февраля 2010

Из Википедия :

Большинство Код Java также синтаксически действительный Groovy.

А

Некоторый Groovy-код выглядит так, как если бы на языке Java, но Groovy есть не расширенный набор Java . Однако, за исключением немного несовместимости, обычно можно переименуйте файл .java в файл .groovy и это будет работать. Groovy позволяет кодер, чтобы пропустить некоторые элементы, которые требуются в Java, поэтому Groovy код может быть более компактным. Это делает Отличная кривая обучения для Java разработчики постепенно, так как они могут начать с синтаксиса Java и постепенно научитесь добавлять функции Groovy.

Что касается остальной части вашего вопроса, я думаю, что это разумный путь к прогрессу. Однако я бы попытался сосредоточиться на изменении связанных классов для совместного использования Groovy, чтобы было легко узнать, какие классы используют какой язык при назначении задач разработчикам, которые могут не знать оба языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...