O uso do PHP está generalizado para o desenvolvimento de aplicações web, mas se desejar utilizar Ruby on Rails ou simplesmente desejar uma linguagem talhada para um uso mais generalizado, vale a pena dar uma vista de olhos ao Ruby.
Semelhanças
Tal como no PHP, em Ruby …
- O Ruby é tipado dinamicamente, tal como o PHP, não é necessário declarar variavéis.
- Existem classes e é possível controlar o acesso a elas tal como em PHP
5 (public,protectedandprivate)
- Algumas variáveis começam com $, tal como o PHP (mas não todas)
- Também existe eval
- Pode ser utilizada a interpolação de strings. Em vez de "$foo é um $bar", podemos escrever"#{foo} é um #{bar}"—tal como em PHP, isto não se aplica para strings entre ‘plicas’
- Existem heredocs
- Ruby tem excepções, tal como o PHP 5
- Existe uma biblioteca Standard bastante completa
- Os arrays e as tabelas de hash funcionam da forma esperada, se alterar
array()por{e}:array('a' => 'b')fica{'a' => 'b'}.
- truee- falsecomportam-se tal como no PHP, mas- nullé chamado- nilem ruby
Diferenças
Diferente do PHP, em Ruby …
- Existe uma tipagem forte. Deverá utilizar os métodos to_s,to_ietc. para converter entre strings, inteiros e demais tipos, em vez de confiar na linguagem para o fazer.
- Strings, números, arrays, hashes, etc. são objectos. Em vez de invocarmos abs(-1) é -1.abs
- Os parêntesis são opcionais nas invocações dos métodos, excepto para clarificar que parâmetros são passados para que método.
- Em vez de convenções de nomes, tal como o uso de underscore (_), a biblioteca standard e as extensões estão organizadas em módulos e classes.
- A Reflexão é uma capacidade inerente dos objectos, não é necessário
utilizar Classes Reflectiontal como no PHP 5
- As variáveis são referências.
- Não existe uma classe abstractouinterfaces
- Hashes e arrays são diferentes não se podem fazer passar uma pelo outro.
- Somente falseenilsão falsos:0,array()e""são todos verdade em expressões condicionais.
- Quase tudo é uma invocação de um método, até raise(throwno PHP).