Linguagens dinâmicas rodando dentro da Java Virtual Machine (JVM) estão se tornado uma tarefa cada vez mais comum. Pedro Mariano escreveu recentemente um post na InfoQ Brasil falando a razão pela qual devemos considerar o uso do Javascript server-side.
Pedro citou algumas vantagens e desvantagens em relação ao uso de Javascript no client side no fórum de arquitura o tectura:
Na minha opinião, acho que Javascript no server side tem bastante futuro, principalmente pelo quesito aprendizado.
A questão do aprendizado com certeza tem uma grande influência no uso de Javascript server-side, principalmente pelo fato do constante aprendizado, além do fato de poder utilizar as coisas boas destas linguagens e aplicar em linguagens que somos mais fluentes.
Renato Elias, citou alguns pontos que ele acha interesse em utilizar Javascript no server-side:
Tenho usado nodeJS em alguns projetos, a idéia toda por trás dele não é o fato apenas do JS, ele é apenas uma “cola” elegante, ao fato de uma linguagem orientada a eventos, ao invés de threads para programação concorrente.
E nisto JS se encaixou muito bem, pois já fazíamos isto, apenas não percebíamos, “AJAX”, é basicamente isto, faça algo quando a requisição finalizar, e aproveitando esta expertise, o node foi criado.
Quanto bibliotecas, perfomance, e paradigma funcional/ orientada a objetos, são tudo detalhes,
Alguns fatos: bibliotecas, temos sim várias, e muitas más escritas, mas em em JAVA, PHP, C++ e todos as outras linguagens ocorre o mesmo.
Perfomance, é muito boa, as vezes chegando a ser mais rápido que Java, tecnicamente Java deveria ser mais rápido, o GC dele também é muito superior ao do PHP, e a VM do PHP tende a ficar lenta depois de um grande tempo rodando sem parar, ela não foi feita para isto, JS por causa de ter páginas que ficam dias abertos, acabou sendo super-otimizada, não tem linguagem de C++ nativo compilado, já que você está colocando um programa para rodar em código de máquina e no outro em uma VM.
Linguagem: o JS tem melhorado muito e o uso do strict mode, vai trazer reparos e evolução em muitos quesitos, a questão é que JS é uma linguagem com uma maior quantidade de programadores, e é a linguagem mais desprezada do mundo.
A discussão seguiu com a seguinte questão de Rubem Azenha:
Tirando node.js, tem algum outro motivo pra usar javascript no lugar de Ruby ou Python?
Javascript é um linguagem “legal”, mas é tão mais legal assim que Ruby e Python?
Caires Vinícius acha interesse o uso de Javascript por causa da quebra de paradigma da linguagem:
Eu acho Ruby uma linguagem legal assim como Python, atualmente tenho inclusive mais preferência por Python.
Porém gosto mais de Javascript por ter um paradigma diferente. JS server-side tem dois caras muito fortes que são o Rhino e o V8.
O que realmente importa é resolver o problema com a melhor solução possível. Como disse Ola Bini no Rubyconf que foi realizador recentemente no Brasil:
...pode ser mais difícil usar uma ferramenta para resolver um problema em uma linguagem A que você já conhece, do que aprender uma linguagem B que serve para resolver esse tipo de problema
Javascript tem se tornado cada vez mais forte e consolidada no mercado. Além de ser "querida" por muitos desenvolvedores. Com o poder de utilizar linguagens dinâmicas dentro da JVM, estas discussões acerca de linguagens certas para determinados problemas se tornarão cada vez mais frequentes.
E você leitor, acredita no futuro de ferramentas como o Node.js? E no futuro de Javascript no server-side?