В Ruby из PHP

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