PHP 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.
Similaridades
Como 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,protectedyprivate). - 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'}. trueyfalsese comportan como en PHP, peronullse llamanil.
Diferencias
A 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
Reflectioncomo con PHP 5. - las variables son referencias.
- no hay clases
abstracto interfaces. - los hashes y arrays no son intercambiables.
- sólo
falseynilson falsos:0,array()y"", son todos verdaderos en las condiciones lógicas. - casi todo es una llamada a un método, incluso
raise(equivalente athrowen PHP).