Artigo original: The Advantages and Disadvantages of JavaScript

Assim como acontece com todas as linguagens de programação, o JavaScript tem certas vantagens e desvantagens a serem consideradas. Muitas delas estão relacionadas à maneira como o JavaScript geralmente é executado diretamente no navegador do client. Porém, existem, agora, outras maneiras de se usar o JavaScript que permitem que ele tenha os mesmos benefícios das linguagens do lado do servidor.

Vantagens do JavaScript

  • Velocidade – o JavaScript tende a ser muito rápido porque, muitas vezes, é executado imediatamente dentro do navegador do client. Desde que não exija recursos externos, o JavaScript não é atrasado por chamadas para um servidor de back-end. Além disso, todos os principais navegadores suportam compilação JIT (do inglês, just in time) para JavaScript, o que significa que não há necessidade de compilar o código antes de executá-lo.
  • Simplicidade – a sintaxe do JavaScript foi inspirada na do Java e é relativamente fácil de aprender em comparação com outras linguagens populares, como o C++.
  • Popularidade – o JavaScript está em toda parte na web. Com o advento do Node.js, é cada vez mais usado no back-end. Existem inúmeros recursos para aprender JavaScript. Tanto o StackOverflow quanto o GitHub mostram uma quantidade crescente de projetos que usam JavaScript. A tração que ganhou nos últimos anos só deve aumentar.
  • Interoperabilidade – ao contrário do PHP ou outras linguagens de script, o JavaScript pode ser inserido em qualquer página da web. O JavaScript pode ser usado em muitos tipos diferentes de aplicações por causa do suporte em outras linguagens, como Pearl e PHP.
  • Carga do servidor – o JavaScript é executado do lado do client. Portanto, reduz a demanda nos servidores em geral. Aplicações simples podem, inclusive, não precisar de um servidor.
  • Interfaces ricas – o JavaScript pode ser usado para criar recursos como arrastar e soltar e componentes como controles deslizantes, que melhoram muito a interface do usuário e a experiência de um site.
  • Funcionalidade estendida – os desenvolvedores podem estender a funcionalidade de páginas da web escrevendo trechos de JavaScript para complementos de terceiros, como o Greasemonkey.
  • Versatilidade – existem muitas maneiras de se usar JavaScript através de servidores do Node.js. Se você inicializar o Node.js com o Express, usar um banco de dados de documentos, como o MongoDB, e usar JavaScript no front-end para o client, é possível desenvolver uma aplicação inteiramente em JavaScript do começo ao fim.
  • Atualizações – desde o ECMAScript 5 (a especificação de script na qual o JavaScript se baseia), a ECMA International tem se dedicado a atualizar o JavaScript anualmente. Já temos suporte de navegador para ES6, que veio em 2017, e muitos outros vieram desde então.

Desvantagens do JavaScript

  • Segurança do lado do client – como o código em JavaScript é executado no lado do client, bugs e descuidos às vezes podem ser explorados para fins maliciosos. Por causa disso, algumas pessoas optam por desativar totalmente o JavaScript.
  • Suporte dos navegadores – embora os scripts do lado do servidor sempre produzam a mesma saída, navegadores diferentes às vezes interpretam o código em JavaScript de maneira diferente. Hoje em dia, as diferenças são mínimas e você não deve ter que se preocupar com isso, mas ainda precisa testar seu script em todos os principais navegadores.