A Ruby desde PHPPHP es muy utilizado para realizar aplicaciones web, pero si quieres usar Ruby on Rails o simplemente quieres un lenguaje más orientado al uso en general, vale la pena considerar Ruby.
SimilaridadesComo en PHP, en Ruby...
- las variables son dinámicamente tipadas, así que no tienes que preocuparte por declararlas.
- hay clases, y puedes controlar el acceso a ellas como en PHP 5 (public, protected y private).
- algunas variables comienzan con $, pero no todas.
- también está eval.
- puedes usar el interpolado de strings. En vez de hacer "$foo es un $bar", puedes hacer "#{foo} es un #{bar}"—al igual que en PHP, esto no aplica para los strings definidos con comillas simples.
- tienes "documentos internos" ("heredocs" en inglés).
- tienes excepciones, como PHP 5.
- hay una biblioteca estándar bastante grande.
- los arrays y hashes funcionan como se espera que lo hagan, si cambias array() por { y }: array('a' => 'b') en Ruby es {'a' => 'b'}.
- true y false se comportan como en PHP, pero null se llama nil.
DiferenciasA diferencia de PHP, en Ruby...
- hay tipado fuerte. Necesitarás utilizar to_s, to_i, etc. para convertir entre strings, integers y así en más, en vez de depender del lenguaje para que lo haga.
- los strings, números, arrays, hashes, etc. son objetos. En vez de utilizar abs(-1) se usa -1.abs.
- los paréntesis son opcionales en las llamadas a los métodos, excepto para clarificar qué parámetros van para qué método, cuando es necesario.
- en vez de usar condiciones de nombrado, como guiones bajos (underscores), la biblioteca estándar y las extensiones están organizadas en módulos y clases.
- la reflexión es una capacidad inherente de los objetos, no necesitas usar clases Reflection como con PHP 5.
- las variables son referencias.
- no hay clases abstract o interfaces.
- los hashes y arrays no son intercambiables.
- sólo false y nil son falsos: 0, array() y "", son todos verdaderos en las condiciones lógicas.
- casi todo es una llamada a un método, incluso raise (equivalente a throw en PHP).