Ruby exige menos código que Java? Se sim, Quais as vantagens e desvantagens disto?

Acabei de ver essa palestra de XP onde o palestrante diz que geralmente se escreve 10 linhas de código Java para cada linha de código Ruby:


A partir dos 10:30 no vídeo (lá no finalzinho).

Isso é verdade? Quais as vantages e desvantagens de uma linguagem que te permite fazer a mesma coisa com muito menos código? O desenvolvimento se torna muito mais rápido? A manutenção se torna mais difícil?

Você não especificou nada do que necessita, do cenário, dos envolvidos, etc. Mas dependendo do caso (que seja real) pode ser mais produtivo sim, depois que você se tornar experiente em Ruby.

Tudo depende também da “geniosidade” da equipe, que infelizmente a maioria que trabalha com Java gosta de usar recursos complexos sem necessidade, por isso fica essa fama.

Nem sempre menos código é sinal de facilidade em manutenção, uma linha de regex pode ser mais difícil de manter do que 5 linhas de código clássico por exemplo. Pode-se perder mais tempo por exemplo, lidando com problemas particulares do hibernate gerando SQL automático, do que escrevendo diretamente SQL, que a maioria usa independente da plataforma de desenvolvimento. É só uma analogia. Eu por exemplo não seria produtivo por escrever menos linhas no Ruby, porque acho a linguagem confusa.

Não se iluda com evangelistas, eles só querem vender o peixe deles. Você tem que partir de um objetivo, necessidade e cenário real.

2 curtidas

Além dos pontos citados pelo @javaflex, vale notar que essa palestra é de 2008, muita coisa mudou em 9 anos …

1 curtida

Isso é provavelmente um chute, nao um fato.
Ruby é mais conciso do que Java, mas é difícil medir quanto.
Repare também que esse vídeo tem quase 10 anos e as linguagens evoluíram desde entao.
Há também IDEs que geram código ou ferramentas (como Lombok) que diminuem a necessidade de código.
Com tantos fatores é dificil ter uma medida precisa do quanto você realmente escreve.

A principio quanto menos código você lê, mais fácil é para entender.
Mas isso depende muito do que foi encurtado na linguagem.
Acredito que perl seja um exemplo de linguagem bem concisa mas muito difícil de entender.
Já Ruby eu acho uma linguagem bem agradável de ler.

É muito díficil medir isso. É mais baseado em opiniao do que fatos.
Para algumas tarefas, Ruby (e Rails) facilita muito e deixa mais rápido, mas há um custo nisso.
Nao sei se a longo prazo, esses custos compensam.
De forma geral, o que costuma tomar mais tempo é entender o que cliente quer, nao escrever o código em si.

Isso depende mais da qualidade do código em si do que da linguagem.
Documentaçao, testes, boas práticas ajudam na manutençao, independente da linguagem.

Relendo minha resposta pode dar a impressao que a linguagem nao importa tanto, mas eu acredito que importa muito.
O problema, pra mim, entre Java e Ruby é que sao diferentes o bastante pra tornar essa comparaçao bemm problemática.

1 curtida