Java - это энтерпрайзно. Проверено. И быстро (не смотря на то, что утверждают противники). Довольно многословно. Переходя с Java на Ruby вы серьезно сократите размер кода. Разработка прототипа займет меньше времени.
Сходства
Как и в Ruby, в Java…
- памятью управляет сборщик мусора.
- объекты строго типизированы.
- есть разграничение доступа на
public,privateиprotected. - имеются встроенные средства документации (называемые RDoc) - генерируемая документация похожа на ту, что генерирует javadoc.
Отличия
В отличие от Java в Ruby…
- не надо компилировать код - он интерпретируется.
- есть несколько популярных GUI тулкитов - можно попробовать WxRuby, FxRuby, Ruby-GNOME2, Qt, или Ruby Tk, например.
- в конце определения класса используется ключевое слово
end, вместо заключения кода в скобки. - вместо
importпишетсяrequire. - все члены класса приватны - снаружи доступ осуществляется через методы.
- скобки при вызове метода не обязательны.
- все - это объект, включая числа как 2 или 3.14159.
- отсутствует проверка типа.
- имена переменных - это просто обозначения, для них нет специального типа.
- нет объявления типа - можно просто присваивать переменные “на лету” (например,
a = [1,2,3]вместоint[] a = {1,2,3};). - нет приведения типов - надо просто вызвать метод. Юнит-тесты сразу скажут, если при преобразовании возникло исключение.
- вместо
Foo foo = new Foo("hi")-foo = Foo.new("hi"). - конструктор называется
initializeвместо имени класса. - вместо использования интерфейсов можно “подмешивать” модули.
- вместо XML предпочитается YAML
- вместо
null-nil. ==иequals()по-другому обрабатываются в Ruby.==используется для теста на равенство (equals()в Java).equal?()используется для проверки идентичности (как==в Java).