ruby
Em Ruby, tudo é um objecto. Cada parcela de informação e código podem receber as suas próprias propriedades e acções. A Programação orientada aos objectos denomina as propriedades como variáveis de instância e as acções como métodos. A aproximação pura, da orientação aos objectos do Ruby, é geralmente demonstrada pelo seguinte excerto de código que aplica uma acção a um número.
5.times { print "Nós *amamos* o Ruby -- é fantástica!" }
Em muitas linguagens, números e outros tipos primitivos não são objectos. O Ruby segue a influência da linguagem Smalltalk em atribuir métodos e variáveis de instância a todos os seus tipos. Esta abordagem facilita a utilização do Ruby, uma vez que as regras que se aplicam aos objectos aplicam-se a tudo em Ruby.
A Flexibilidade do Ruby
O Ruby é visto como uma linguagem flexível, uma vez que permite aos seus utilizadores alterar partes da Linguagem. Partes essenciais do Ruby podem ser removidas ou redefinidas à vontade. Partes existentes podem ser acrescentadas. O Ruby tenta não restringir o programador.
Por exemplo, a adição é realizada com o operador mais (+). Mas, se preferir utilizar a palavra escrita plus, poderia adicionar esse método à classe nativa do Ruby Numeric.
class Numeric def plus(x) self.+(x) end end y = 5.plus 6
# y is now equal to 11
Os Operadores do Ruby são açúcar sintático para os métodos, também podem ser redefinidos.
Blocos, uma Caracteristica Verdadeiramente Expressiva
Os Blocos do Ruby são vistos como uma fonte de grande flexibilidade. Um programador pode adicionar um fecho a qualquer método, descrevendo como esse método se deve comportar. O fecho é chamado bloco e tornou-se uma das características mais populares para os recém chegados ao