Pra que usar JavaScript

bateu uma duvida, pra que usar javascript, se tudo que da pra fazer no javascript pode ser feito em um PHP, ASP, JAVA?

Bom dia,
javascript roda no client side e pode proporcionar uma experiencia melhor no front end da sua aplicação web.
Java(servlet ou JSP ), PHP ou ASP roda no server side é mais validar a entrada e responder de acodo a regra de negocio.

Ola,

Alem dos pontos que o tiozao_bp citou, por muito tempo o javascript foi uma linguagem mal compreendida e ate muitas vezes mal vista entre os desenvolvedores, porem nos ultimos anos Javascript vem se popularizando absurdamente, muitas frameworks foram desenvolvidas e hoje em dia sao praticamente standard, como por exemplo JQuery http://jquery.com/ (que hoje em dia eh distribuido junto com o Visual Studio), o Dojo http://dojotoolkit.org/, Knockout http://knockoutjs.com/, Bootstrap http://twitter.github.com/bootstrap/ (que foi desenvolvido baseado no Jquery), o Mustache http://mustache.github.com/ entre muitas outras.

Voce perguntou, qual a vantagem de usar Javascript, a resposta eh simples:

  • Melhor interatividade com o usuario. Nos ultimos anos tem se falado tanto em “cloud” que eh extremamente necessario prover melhor experiencia para o usuario possivel. Antigamente tinha um gap enorme entre aplicacoes desktop e web porem hoje em alguns sites, voce tem a mesma experiencia (se nao melhor) do que aplicacoes desktop. Um exemplo, Gmail, Google Drive.

  • Mesmo que hoje temos conexoes rapidas, ainda eh necessario otimizar ao maximo sites e uma das formas de fazer isso eh reduzir o numero de requests para o servidor. Com Javascript vc pode manipular o DOM, voce pode criar e remover elementos, mudar estilo e etc. Sem necessariamente fazer um novo request para o servidor e renderizar toda a pagina novamente.

  • Se o seu site tem input de dados voce vai ter que fazer validacao dos dados, claro que alem da validacao cliente eh necessario validar dados no servidor, porem se voce fizer uma validacao no cliente voce vai agilizar o processo de preenchimento dos dados pelo usuario e tambem vai evitar (novamente) requests nao necessarios para o servidor.

Agora, Javascript tem suas disvantagens, como por exemplo, problemas com seguranca e mesmo que se tenho um esforco para ter javascript engine mais padronizada possivel ainda temos muitas variacoes e inconsistencias que levam a deixar o desenvolvimento um pouco mais complexo e sensivel a bugs. Outro problema eh que tem muito programador ruim em Javascript (como eh todas as linguagens) mas como Javascript eh uma linguagem a grosso modo mais informal, muitos desenvolvedores nao respeitam nenhum padrao, nenhum tipo de convencao o que resulta em bugs, problemas com seguranca, problemas com performance tambem problemas na hora de dar manutencao nesses codigos.

Todas essas disvantagens pode ser minimizadas com o uso de frameworks. Eu li recentemente um post no blog do David Walsh que trabalha(va) na SitePen que sao os caras que desenvolvem o Dojo Framework. No ele descreve 6 razoes para usar javascript frameworks, ele disse:

Fonte: http://davidwalsh.name/6-reasons-to-use-javascript-libraries-frameworks

E eu concordo plenamente como ele em todos os pontos.

//Daniel

Javascript é uma linguagem normalmente mais utilizada em browsers (client side como o tiozao_bp comentou). Hoje já existem interpretadores que permitem rodar esta linguagem no server side, aí você usaria ela como usa o Java ou PHP, por exemplo.

Rodando no client side, você pode fazer requisições Ajax, manipulação do DOM, manipulação de informações do browser, etc. Coisas que você não faz no server side. Portanto dizer que tudo que se faz em javascript se faz em java ou php, não é correto.

Ainda há que se considerar as diferenças de linguagem. Javascript tem uma série de recursos que o Java ou PHP não tem. Você pode efetivamente ter um problema que é melhor resolvido em Javascript, mesmo no server side. :smiley: