Ruby X Java

Posted: December 28, 2010 in Uncategorized

Por curiosidade passei a me inteirar sobre a tão falada Linguagem Ruby e seu aumento de produtividade no desenvolvimento.
Em Ruby, diferente do java, todas as variáveis são objetos, inclusive os tipos primitivos, sendo aceito portanto a chamada de um método em um número, por exemplo:
x = 3.plus 1 x terá um valor igual a 4.

Outro diferencial é o fato de possuir tipagem dinâmica, ou seja os tipos são definidos em tempo de execução, o que para alguns é tido como excelente. Em minha opinião prefiro atribuir algumas responsabilidades à IDE, evitando alguns erros em tempo de execução, no caso do Java, principalmente na utilização de Generics este problema é quase nulo, já que somos obrigados a definir o tipo, e caso façamos alguma atribuição errônea somos avisados antes de compilar.
Isto é discutido e acho que está mais ligado à preferência do que outra coisa.
Uma situação que me assustou bastante foi ver como gerar um “javabean” no Ruby. E o que me levou a ter um maior interesse sobre a linguagem, colocando-a na minha lista de aprendizagem futuro.
Como desenvolveríamos uma classe Carro que possuisse os seguintes atributos: Cor, Modelo e Ano, em Ruby e em Java.

Em Ruby :

1 class Carro
2 attr_accessor:cor, :modelo, :ano
3 end

Em Java:

01 Public class Carro{
02 private String cor;
03 private String modelo;
04 private int ano;
05 public void setCor(String cor){
06 this.cor = cor;
07 }
08 public String getCor(){
09 return this.cor;
10 }
11 public void setModelo(String modelo){
12 this.modelo = modelo;
13 }
14 public String getModelo(){
15 return this.modelo;
16 }
17 public void setAno(int ano){
18 this.ano = ano;
19 }
20 public String getAno(){
21 return this.ano;
22 }
23 }

Precisamos de 3 linhas em Ruby e 16 no Java. Como desenvolvedor Java eu usaria como defesa o fato da IDE fazer todo o trabalho de geração dos getters e setters, porém fica complicado defender a diferença na visibilidade do código.

Lógico que este simples exemplo não serve para mostrar se uma linguagem é mais robusta, mais legível ou melhor que a outra, serve somente para levantar o interesse no conhecimento desta linguagem, até porque na minha opinião não existe linguagem pior ou melhor, e sim a mais adequada aos requisitos funcionais e não-funcionais de seu projeto.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s