Какие элементы синтаксиса Java не будут напрямую переводиться в эквивалентный синтаксис Ruby? - PullRequest
0 голосов
/ 15 марта 2010

Несколько дней назад я задал вопрос о представлении полей public static final и private static final в эквивалентном коде Ruby. Это заставило меня задуматься о том, какие другие элементы синтаксиса в Java могут не переводиться напрямую в Ruby. Дженерики и Аннотации приходят на ум. Что-нибудь еще, что не сработало бы хорошо, если бы вы попытались перенести некоторый Java-код на Ruby?

Ответы [ 3 ]

0 голосов
/ 15 марта 2010

Само программирование на Ruby сильно отличается от Java (функциональное программирование приходит на ум). Так что речь идет не только об изучении синтаксических различий, но и об изучении другого способа кодирования.

Если вы программируете на Ruby так же, как на Java, это (вероятно) приведет к очень плохому коду (даже если вы профессиональный Java-программист).

0 голосов
/ 15 марта 2010

При всем уважении к Ruby следует относиться как к языку, отличному от языка Java. Не следует пытаться найти однозначное соответствие между Java и Ruby. Однажды я работал в большой компании, занимающейся базами данных, которая в 2000-х годах перевела многих разработчиков plsql на разработку приложений на основе Java, когда Java был «классным» языком. Результат до даты, они поддерживают код, где у класса есть переменные поля как m_person_id, параметры как p_person_id и локальные переменные как l_person_id.

Проблема заключалась в этом «отображении», в то время как префиксы p_ (для параметров), l_ (для локальных переменных) или m_ (переменные поля) хорошо работали в plsql практически без поддержки IDE, они не имели смысла в IDE, такие как Eclipse, где они могут выделять вещи разными цветами.

Пример может быть плохим, но попытка перейти с Ruby с Java - это нормально, но изучение Ruby путем сравнения его соответствующей функции в Java - это не так:)

0 голосов
/ 15 марта 2010

Я не уверен в этом, но я думаю, что двойная скобка инициализации не будет.

, например

HashSet<String> codes = new HashSet<String>() {{
    add("XZ13s");
    add("AB21/X");
    add("YYLEX");
    add("AR2D");
}};
...