Pesquisar

sexta-feira, 11 de janeiro de 2008

Um (mal) programador Java aprendendo Ruby - Parte 1

Algumas características interessantes do Ruby fazem algumas tarefas mais rápidas. Em um programa oo para saber se um objeto é uma instância de uma determinada classe.

Em Java:
objeto instanceof Classe

Em Ruby:
objeto.is_a? Classe

Quando desejo usar herança:

Em Java:
public class Filho extends Pai

Em Ruby:
class Filho < Pai

Quando desejo criar um método que retorne a soma entre dois números:

Em Java:
public int soma(int v1, int v2){
return v1 + v2
}

Em Ruby:
def soma(v1,v2)
v1+v2
end

"Lançando exceções".

Em Java:
if (saldo < saque) throw new Exception("Sem fundos!")

Em Ruby:
raise Exception.new("Sem fundos!") unless saldo > saque

Algo que percebo é que as vezes para implementar características em Ruby, gasto menos linhas de código para o mesmo propósito quando usava Java (bem como o código se transforma em algo mais expressivo também). A principio esta característica de escrever menos assusta e logo vêm milhares de perguntas a cabeça como: quando e como retorno o valor... essa tipagem dinâmica, sei não viu... . Bem sobre algumas características (como o retorno do método) o Ruby utiliza algumas convenções:

Ao invés de digitar ; (em Java, C, C++, C#) para quebra de linha apenas usa o Enter para tal.

Ao invés de usar a palavra-chave return [mesmo que você possa utilizar-la] o Ruby entende que seu último comando será o retorno do método, todavia se quiser usar o return poderá também.

Quanto a tipagem dinâmica não sei muito sobre... quando souber posto aqui.

ps: Este post não é de forma alguma um "flamewar" para provar que uma linguagem é melhor do que outra...

Nenhum comentário: