Enjoy 20% off all plans by following us on social media. Check out other promotions!
Perguntas do Quiz

Quais são algumas das vantagens/desvantagens de escrever código JavaScript em uma linguagem que compila para JavaScript?

Topics
JAVASCRIPT
Edit on GitHub

Alguns exemplos de linguagens que compilam para JavaScript incluem CoffeeScript, Elm, ClojureScript, PureScript e TypeScript.

Vantagens

  • Corrige alguns dos problemas de longa data em JavaScript e desencoraja anti-padrões do JavaScript.
  • Permite que você escreva um código mais curto, fornecendo açúcar sintático em cima do JavaScript, o que o ES5 não possui, mas o ES2015 é excelente.
  • Tipos estáticos são incríveis (no caso do TypeScript) para projetos grandes que precisam ser mantidos ao longo do tempo.

Desvantagens

  • É preciso ter um processo de construção/compilação, já que os navegadores apenas executam JavaScript e seu código precisará ser compilado em JavaScript antes de ser enviado aos navegadores.
  • Depuração pode ser difícil se seus mapas de origem não mapearem corretamente para sua origem pré-compilada.
  • A maioria dos desenvolvedores não está familiarizada com essas linguagens e precisará aprendê-las. Há um custo de aprendizado envolvido para sua equipe se você usá-lo em seus projetos.
  • Comunidade menor (dependendo da linguagem), o que significa que recursos, tutoriais, bibliotecas e ferramentas serão mais difíceis de encontrar.
  • O suporte de IDE/editor pode ser limitado.
  • Essas linguagens sempre estarão atrasadas em relação ao padrão mais recente do JavaScript.
  • Os desenvolvedores devem estar cientes do que seu código está sendo compilado, pois é isso que realmente será executado e é isso que importa no final.

Na prática, o ES2015 melhorou significativamente o JavaScript e tornou muito mais agradável escrevê-lo. Não há mais uma grande necessidade de usar o CoffeeScript nos dias de hoje. Em vez disso, o TypeScript é a escolha preferida devido à segurança de tipo adicionada e à experiência de desenvolvedor melhorada que ele proporciona.

Edit on GitHub