PHP is in widespread use for web applications, but if you want to use Ruby on Rails or just want a language that’s more tailored for general use, Ruby is worth a look.


As in PHP, in Ruby…
  • Ruby is dynamically typed, like in PHP, so you don’t need to worry about having to declare variables.
  • There are classes, and you can control access to them like in PHP 5 (public, protected and private)
  • Some variables start with $, like in PHP (but not all)
  • There’s eval, too.
  • You can use string interpolating. Instead of doing ”$foo is a $bar”, you can do ”#{foo} is a #{bar}”—like in PHP, this doesn’t apply for single-quoted strings.
  • There’s heredocs
  • Ruby has exceptions, like PHP 5
  • There’s a fairly large standard library
  • Arrays and hashes work like expected, if you exchange array() for { and }: array('a' => 'b') becomes {'a' => 'b'}.
  • true and false behave like in PHP, but null is called nil


Unlike in PHP, in Ruby…
  • There’s strong typing. You’ll need to call to_s, to_i etc. to convert between strings, integers and so on, instead of relying on the language to do it
  • Strings, numbers, arrays, hashes, etc. are objects. Instead of calling abs(-1) it’s -1.abs
  • Parentheses are optional in method calls, except to clarify which parameters go to which method calls
  • Instead of naming conventions, like underscores, the standard library and extensions are organized in modules and classes
  • Reflection is an inherent capability of objects, you don’t need to use Reflection classes like in PHP 5
  • Variables are references.
  • There’s no abstract classes or interfaces
  • Hashes and arrays are not interchangeable
  • Only false and nil are false: 0, array() and "" are all true in conditionals.
  • Almost everything is a method call, even raise (throw in PHP).