Já fui contra o Ruby, mas hoje não sou mais. Na verdade eu era contra linguagens dinâmicas, que usam dynamic typing, por exemplo.
O responsável por me fazer mudar de idéia foi o Groovy. É incrivelmente mais fácil de se fazer muitas coisas! Não há como comparar com uma linguagem como o java, é um conceito diferente. Um exemplo:
Groovy
[code]package testes
[‘Java’, ‘Ruby’, ‘Python’, ‘Haskell’,
‘Perl’, ‘C’, ‘C++’, ‘Groovy’].each {
println it
}[/code]
Java
[code]package testes;
import java.util.ArrayList;
public class TestesJ {
public static void main(String[] args) {
ArrayList linguagens = new ArrayList();
linguagens.add(“Java”);
linguagens.add(“Ruby”);
linguagens.add(“Python”);
linguagens.add(“Haskell”);
linguagens.add(“Perl”);
linguagens.add(“C”);
linguagens.add(“C++”);
linguagens.add(“Groovy”);
for(Object obj: linguagens){
System.out.println(obj);
}
}
}[/code]
A diferença é muito grande. Na minha opinião, o java deve se modernizar logo, ou perderá muito mercado nos próximos anos. Talvez a Sun saiba disso, e por isso mesmo o JCP tenha criado uma JSR para o Groovy.
Só para finalizar, o Groovy tem sido uma ferramenta utilíssima para mim. Atualmente eu o uso mais para fazer testes unitários. Para isso, eu consigo fazer mocks muito facilmente com coerção de maps e listas, o Groovy vem com um framework para mocks integrado, e uma série de outras coisas. Houve também muitos momentos em que eu precisava gerar um script q inseria algo na base, gerasse um relatório, dentre outros. Com o java seria inviável, mas o Groovy estava lá para salvar o dia, eheheh.