Переход от не-Java Ruby к Groovy: языковые различия - PullRequest
4 голосов
/ 12 февраля 2010

Используя мои выдающиеся навыки работы с Google, я не смог найти достойного учебника по Groovy для программистов на Ruby. Есть много политических материалов (Ruby - это здорово! Groovy - это здорово!) И маленькие контрасты, но мне все равно, что лучше. Я достаточно хорошо знаю Ruby (и Java), и я хотел бы изучить Groovy.

Кто-нибудь захочет (или предоставит удивительную ссылку, или) отметит некоторые различия между двумя языками с точки зрения того, как что-то делать (синтаксический, объявление класса, циклы, блоки и т. Д.)? Для моих целей вы можете принять полную Java-компетенцию для объяснения.

Опять же, мне не интересно знать, что лучше. Просто нужно уметь делать вещи ....

Ответы [ 5 ]

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

Если вы знаете Java, лучше всего прочитать, как метакласс используется в Groovy. Вот достойное объяснение: http://skillsmatter.com/downloads/Groovy%20User%20Group%20December%202006.pdf

Просто помните, что все в Groovy проходит через метакласс. На первый взгляд простые утверждения:

a = foo.bar
bar = b
foo.baz(1,2,3)

Перевести примерно на эту Java:

a = foo.getMetaClass().getProperty("bar");
this.getMetaClass().setProperty("bar",b);
foo.getMetaClass().invokeMethod("baz",new Object[] {1,2,3});

Все отправляется через метакласс, то есть как работают почти все языковые функции Groovy. Наиболее важной особенностью является, вероятно, замыкания . Что нужно помнить о замыканиях, так это то, что это обман метакласса. MetaClass замыкания может быть настроен на попытку вызова методов / разрешения свойств для его делегата, что в основном означает, что вы можете делать такие вещи, как вызов метода для объекта, у которого нет этого метода.

2 голосов
/ 09 мая 2013

Нам нужно больше вопросов, как этот. Спустя три года после вопроса все еще существует сравнительная нехватка информации об этих изменениях между этими двумя похожими языками.

Я нашел эту презентацию Slide Share, которая охватывает множество основных вопросов.

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

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

Один стандартный ресурс для такого рода вопросов: Rosetta Code .

Надеюсь увидеть еще несколько советов, добавленных в этот список.

Ура, Будет

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

Вы видели это и это ? Относительно короткие посты, я знаю. Ты прав; там, кажется, не так много ...

обновление: две больше ссылки .

1 голос
/ 15 февраля 2010

Различия между Java и Groovy меньше, чем различия между Ruby и Groovy, поэтому, если вы знаете и Ruby, и Java, возможно, имеет смысл поискать книгу или учебник "Groovy для Java-программистов".

IMO, лучшая книга Groovy на рынке - Программирование Groovy . Это самая современная книга, которую я знаю (хотя до последней версии еще несколько версий), она довольно лаконична и охватывает довольно сложные детали (например, протокол мета-объектов).

0 голосов
/ 09 мая 2013

В вики Groovy есть хорошая статья под названием Рекомендации по стилю и языку Groovy для разработчиков Java .

...