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.