PHP è un linguaggio diffusissimo in ambito di sviluppo di applicazioni web, tuttavia se vuoi utilizzare Ruby on Rails o semplicemente stai cercando un linguaggio che è stato pensato per un uso più generale, Ruby può fare al caso tuo.
Somiglianze
Come in PHP, in Ruby…
- viene usata una tipizzazione dinamica, come in PHP, quindi non devi preoccuparti di dichiarare variabili.
- Esistono delle classi, delle quali puoi controllare l’accesso come in
PHP (
public
,protected
eprivate
). - Alcune delle variabili incominciano per $, come in PHP (ma non sempre)
- Esiste il metodo
eval
. - Puoi interpolare delle stringhe tra di loro. Invece di scrivere
"$x è un $y"
puoi fare"#{x} è un #{y}"
—Come in PHP, questo non vale per le stringhe tra apici singoli. - È possibile usare la sintassi heredoc.
- È possibile gestire le eccezioni, come in PHP5.
- Esiste una libreria standard molto completa.
- Array e hash si comportano come previsto, se cambi
array()
con{
e}
:array('a' => 'b')
diventa{'a' => 'b'}
. true
efalse
si comportano come in PHP, manull
è chiamatonil
.
Differenze
A differenza di PHP, in Ruby…
- C’è una forte tipizzazione. Devi chiamare
to_s
,to_i
ecc. per effettuare delle conversioni tra stringhe, numeri interi, e così via, invece di lasciare al linguaggio tale compito. - Stringhe, numeri, array, hash ecc. sono degli oggetti. Invece di chiamare abs(-1) si chiama -1.abs.
- Le parentesi sono opzionali nelle chiamate ai metodi, eccetto per chiarificare quali parametri si riferiscono a quali metodi.
- La libreria standard e le estensioni sono organizzate in moduli e classi.
- La riflessione è una capacità innata degli oggetti, non c’è bisogno di
utilizzare classi
Reflection
come in PHP5. - Le variabili sono dei riferimenti.
- Non esistono classi astratte o interfacce.
- Hash e array non sono intercambiabili.
- Solo
false
enil
ritornano falso:0
,array()
e""
ritornano tutti vero. - Quasi ogni cosa è una chiamata ad un metodo, anche
raise
(throw
in PHP).