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).