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
,protected
yprivate
). - 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
yfalse
se comportan como en PHP, peronull
se 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
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
ynil
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 athrow
en PHP).