Прилики
както в Java, така и в Ruby …
- Паметта се управлява от виртуалната машина.
- Обектите са strongly typed.
- Съществуват public, private и protected методи.
- Съществува програмка за вградена документация (в Ruby се казва RDoc). Генерираните документи с rdoc подобно на тези, генерирани с javadoc.
Разлики
За разлика от Java, в Ruby …
- Не се налага да компилирате кода си.
- Има различни GUI toolkits. Можете да прегледате WxRuby, FXRuby, Ruby-GNOME2, Qt, или вградената поддръжка на Ruby Tk.
- В Ruby се използва
end
за край на дефиницията на класове, методи и условни изрази, вместо къдрави скоби около блока код. - Вместо
import
имамеrequire
. - Всички член променливи са private. Отвън може да ги извикаме, покажем, трием и т.н с методи.
- Скобите във викането на методи може да се пропусне.
- Всяко нещо е обект, включително числа като 2 и 3.14159.
- Няма проверка на типа.
- Имената на променливите са като етикети. Не се нуждаят от асоцииран тип.
- Липсва декларация на типа.
- Няма кастване. Просто викаме методи.
- It’s
foo = Foo.new("hi")
instead ofFoo foo = new Foo("hi")
. - Конструктора е метод, наименован “initialize” вместо името на класа.
- Имаме “mixin”-и вместо интерфейси.
- YAML се предпочита пред XML.
- Използваме
nil
вместоnull
. ==
иequals()
имат различно поведение в Ruby.==
се използва за проверка на равенство (equals()
в Java),аequal?()
за проверка дали два обекта са еднакви (==
в Java).