Esta conversa de que Java é pouco produtivo e temos que mudar para Ruby já está enchendo o saco.
Afinal o que “Produtivo” significa ? Sem a definição disso dizer que X é mais produtivo que Y é uma falácia à priori.
Vamos supor que “produtivo” significa :" consigo executar mais instruções com menos linhas de codigo".
Ora java tb consgue isso. Basta que vc tenha bibliotecas/api/classes que encapsulem os comandos malucos.
No MiddleHeaven - que é Java - tb faço uma selecção aleatoria como uma linha de codigo
Integer resultado = Range.over ( 1 , 6 ) .random () ;
Isso não é diferença entre as linguagens. É diferença entre as API. Acontece apenas que API de X tem funções mais “rápidas” que a de Y.
Blz, vc consegue escrever random generator em uma linha. E dai ?
Agora vamos supor que “mais produtivo” significa “consigo fazer mais com menos esforço”
Java é fortemente tipada. Só isso garante menos esforço em debuging. É clara que script não só pela tipagem forte mas pelo pouco uso de simbolos.
Sendo que não ha invocação dinamica é possivel saber e seguir o codigo de qualquer classe sem ter que saber que o método xyz é mágico e declaro dinamicamente. As coisas são o que são e não deixam de ser o que são.
Ok, você consegue colocar uma aplicação no ar com RoR em 1 dia. Em Grails tb. Mas isso são frameworks ! Não são linguagens.
Qualquer programação pode ser tão produtiva em uma linguagem quanto outra. Quando a linguagem não oferce o que queremos a API oferece. Se aPI não oferece alguma outra API de terceiro o faz, e sempre podemos implementar a nossa.
Agora, você tem um monte de coisa pronta em Java , vc vai mudar isso para outra coisa ? Isso é “produtivo” não. Vc vai criar uma aplicação nova.
Vc já conhece o framework ZZ e tem um monte de Utils da vida que vc domina e escreve aplicações em uma semana. Vai mudar para ruby ou outra coisa onde você tem que fazer tudo de novo ? Não me parece que isso é produtivo.
Cada linguagem tem o seu propósito. Scala veio com a ideia de programação funcional. Grovy com script derrotanto o ruby. Outras virão. Pode ser mais facil escrever uma classe nessas linguagens, mas é mais facil escrever um sistema inteiro ? É real a competição entre Java e essas outras linguagens para uma aplicação de proposito genérico ? Java é uma linguagem de proposito genérico ela não foi desenhada para escrever pouco ou dar comandos mirabulantes em um linha , se ela fosse assim não precisamos de linguagens de script.
Java foi criado para ser simples e seguro em comparação com C e C++ .
Finalmente, esse negocio de migrar está ultrapasado. todas essas linguagens novas correm ou irão correr na JVM. Sendo assim, existirão pontos mais faceis de criar com scala ou FX e outros com groovy. Ai faz todo o sentido pq vc tem acesso a todas as API java e java passa a ser para essas linguagens o que o C++ é hoje ( uma comunicação mais nativa com os recursos mais baixos) para impletar plugins e coisas do tipo.
Sair do ambiente da JVM é suicidio tecnico.
Quanto para mim, sem a definição de “produtivo” esta conversa é fútil e só serve para alimentar o hype das linguagens. ( ainda outro dia alguem falava do Ioke… ora… não vou perdeu o meu tempo aprendendo toda a linguagem-want-to-be que aparece… ) Essas linguagems precisam amadurecer. Depois a gente conversa de novo sobre qual realmente fez a diferença.