PHP è un linguaggio diffusissimo in ambito di sviluppo di applicazioni web, tuttavia se vuoi utilizzare Ruby on Rails o 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 dichiariare variabili.
  • Esistono delle classi, delle quali puoi controllare l’accesso come in PHP (public, protected and private)
  • 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”, devi però scrivere ”#{x} è un #{y}”—Come in PHP, questo non vale per le stringhe tra apici.
  • È 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 { and }: array('a' => 'b') diventa {'a' => 'b'}.
  • true e false si comportano come in PHP, ma null è chiamato nil

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 deve chiamare -1.abs
  • Le parentesi sono opzionali nelle chiamate ai metodi, eccetto per chiarificare quali parametri si riferiscono a quali metodi.
  • Invece di utilizzare convenzioni sui nomi, 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 e nil ritornano falso: 0, array() e "" ritornano tutti vero.
  • Quasi ogni cosa è una chiamata ad un metodo, anche raise (throw in PHP).