Oт PHP към Ruby

PHP е широко разпространен език за писане на интернет приложения/страници, но ако искате ползвате по-елегантен начин за програмиране в интернет или да използвате Ruby on Rails, Ruby заслужава внимание.

Прилики

Както в PHP, така и в Ruby…

  • Не се налага декларирането на променливите
  • Съществуват класове и може да контролирате достъпа до методите (public, protected и private)
  • Някои променливи започват с $ (но не всички)
  • Наличен е метода eval
  • Можете да ползвате интерполиране на низове. Вместо "$foo is a $bar", в Ruby това става така: "#{foo} is a #{bar}". Единичните скоби имат същото действие и не прилагат интерполация.
  • Съществуват heredocs
  • Ruby разполага с изключения
  • Съществува достатъчно голяма стандартна библиотека
  • Масивите и хешовете работят еднакво като заменим array() с { and }: array('a' => 'b') става {'a' => 'b'}.
  • true и false имат същото поведение, но null е наречен nil в Ruby

Разлики

За разлика от PHP, в Ruby…

  • Ruby e strongly typed език. За това се налага използването на to_s, to_i и т.н. за превръщане на низове, числа, вместо да разчитате интерпретатора да свърши това
  • Низовете, числата, масивите и хешовете са обекти. За това вместо abs(-1) ползваме -1.abs
  • Не е задължителна употребата на скоби в извикването на методи
  • Стандартната библиотека и разширенията са организирани в модули и класове
  • Рефлексията е присъщо свойство на обектите, като не е нужна употребата на Reflection класове
  • Променливите са референции
  • Липсват абстрактни класове или интерфейси
  • Масивите и хешовете не са взаимозаменяеми
  • Само false и nil са лъжа: 0, array() и "" са истина във всички условни изрази.
  • Почти всичко е извикване на метод, дори raise (throw в PHP).