Перехід на Ruby з PHP

PHP широко використовується для вебзастосунків, але якщо ви хочете використовувати Ruby on Rails або просто мову, більш придатну для загального використання, Ruby варто розглянути.

Подібності

Як і в PHP, у Ruby…

  • Ruby має динамічну типізацію, як і PHP, тож вам не потрібно турбуватися про оголошення змінних.
  • Є класи, і ви можете керувати доступом до них, як у PHP 5 (public, protected, private).
  • Деякі змінні починаються з $, як у PHP (але не всі).
  • Є eval.
  • Можна використовувати інтерполяцію рядків. Замість "$foo is a $bar" можна написати "#{foo} is a #{bar}" — як і в PHP, це не застосовується до рядків у одинарних лапках.
  • Є heredoc-и.
  • Ruby має винятки, як PHP 5.
  • Досить велика стандартна бібліотека.
  • Масиви та hash працюють очікувано, якщо замінити array() на { і }: array('a' => 'b') стає {'a' => 'b'}.
  • true і false поводяться як у PHP, але null називається nil.

Відмінності

На відміну від PHP, у Ruby…

  • Строга типізація. Вам потрібно викликати to_s, to_i тощо, щоб перетворювати рядки, числа і т. ін., замість того щоб покладатися на автоматичні перетворення мови.
  • Рядки, числа, масиви, hash тощо — об’єкти. Замість abs(-1) — -1.abs.
  • Дужки у викликах методів необов’язкові, окрім випадків, коли потрібно уточнити, які параметри належать якому виклику.
  • Стандартна бібліотека та розширення організовані в модулях і класах.
  • Reflection — вбудована можливість об’єктів; не потрібно використовувати класи Reflection, як у PHP 5.
  • Змінні — це посилання.
  • Немає abstract класів або interface-ів.
  • Hash і масиви не взаємозамінні.
  • Лише false і nil — хибні: 0, array() і "" — істинні в умовах.
  • Майже все є викликом методу, навіть raise (throw у PHP).