PHP - широко распространенный язык для веб-приложений, но если вам хочется
использовать Ruby on Rails или просто хотите познакомиться с языком более
широкого назначения - Ruby то, что надо!

### Сходства

В Ruby, как и в PHP, ...

* Ruby динамически типизирован, нет необходимости объявлять переменные.
* имеется разграничение видимости в классах, как в PHP 5.
  (`public`, `protected` и `private`).
* некоторые переменные начинаются с $ (но не все).
* тоже есть `eval`.
* можно интерполировать строки (вместо `"$foo is a $bar"` пишется
  `"#{foo} is a #{bar}"`), как и в PHP это не относится к одинарным кавычкам.
* поддерживается Heredoc-синтаксис.
* есть исключения (exceptions), как в PHP 5.
* богатая стандартная библиотека.
* Массивы и хеши работают так, как вы ожидаете, просто замените `array()` на
  `{` и `}`\: `array('a' => 'b')` станет `{'a' => 'b'}`.
* `true` и `false` ведут себя так же, `null` называется `nil`

### Отличия

В отличие от PHP, в Ruby...

* строгая типизация - надо вызывать `to_s`, `to_i`, чтобы преобразовывать от
  строки к числу и обратно, не полагаясь, что язык это сделает неявно.
* строки, числа, массивы и хеши - объекты - вместо вызова функции с ними как
  аргументами (`abs(-1)`) вызывается метод (`-1.abs`).
* скобки в вызове метода необязательны, кроме случаев, когда надо явно указать,
  какой аргумент передается в какую функцию.
* вместо соглашений об именовании (например подчеркивания) стандартная библиотека
  и расширения представляют собой организованные модули и классы.
* рефлексия - неотъемлемая способность объектов, нет необходимости использовать
  отдельный класс `Reflection` как в PHP 5.
* переменные - это ссылки
* отсутствуют абстрактные классы и интерфейсы
* массив и хеш - не одно и то же
* только `false` и `nil` являются ложью: `0`, `array()` и `""` являются истиной.
* практически все - это вызов метода, даже `raise` (`throw` в PHP).
