- TeaVM é uma ferramenta que ajuda desenvolvedores Java a criar aplicações web sem a complexidade da stack de desenvolvimento JavaScript
- Como compilador ahead-of-time, converte bytecode Java em JavaScript e WebAssembly para execução no navegador
- É semelhante ao GWT, mas usa bytecode em vez de código-fonte (arquivos class), por isso também oferece suporte a Kotlin e Scala
- É possível configurar novos projetos facilmente por meio de arquétipos Maven ou plugins Gradle
- Não exige configurações complexas como npm, Webpack ou Babel, e o TeaVM cuida de tudo automaticamente
- Oferece compilação rápida, e o JavaScript gerado é leve e executa rapidamente
- Também apresenta inicialização rápida e bom desempenho em dispositivos móveis
Objetivo do TeaVM
- Tem como principal objetivo o desenvolvimento de front-end web
- Não foi feito para converter toda uma base de código Java ou Kotlin existente para JavaScript
- Java não foi projetado para executar de forma eficiente no navegador, e algumas APIs Java (reflection, resources, class loaders, JNI etc.) são difíceis de implementar com eficiência, por isso seu uso é limitado
- Casos em que o TeaVM é necessário
- Quando você, como desenvolvedor Java, quer criar um front-end web do zero
- Quando usa um backend baseado em Java e quer integrar fortemente com o código de front-end
- Quando quer reutilizar parte do código de backend no front-end
- Quando está disposto a reescrever o código para se adequar às restrições do TeaVM
Pontos fortes do TeaVM
- Reestrutura o código original para gerar JavaScript semelhante ao que seria escrito manualmente
- Ferramentas avançadas de otimização realizam tarefas como:
- Eliminação de código morto para gerar JavaScript extremamente pequeno
- Conversão de chamadas virtuais em chamadas estáticas de função para otimizar desempenho
- Reutilização de várias variáveis locais em uma única variável para maximizar a eficiência de memória
- Otimização dos nomes de métodos para que fiquem o mais curtos possível (o UglifyJS normalmente não faz esse tipo de otimização)
- Suporte a threads: embora JavaScript não ofereça API de threads, o TeaVM implementa green threads
- Alta velocidade de compilação
- Depuração diretamente na IDE por meio de source maps e plugin para IDEA
- Fornece API de interoperabilidade (interop) com JavaScript
Por que usar TeaVM
- Se desenvolvedores JavaScript já têm um ambiente satisfatório, não há necessidade de TeaVM
- Porém, para desenvolvedores de Java, Kotlin e Scala, há grandes vantagens:
- Redução do tempo e do custo necessários para aprender JavaScript
- Uso de um único ecossistema de desenvolvimento: é possível reutilizar ferramentas de build (Maven, Jenkins), ferramentas de qualidade de código (SonarQube) etc.
- Minimização da troca de contexto entre backend e front-end
- O TeaVM oferece no front-end a mesma experiência do ambiente de desenvolvimento de backend
Lançamento do TeaVM 0.11.0: suporte a WebAssembly GC
- A nova versão 0.11.0 do TeaVM oferece suporte a WebAssembly GC
- Com isso, o desempenho foi melhorado e as aplicações TeaVM podem funcionar de forma ainda mais independente do ECMAScript
Ainda não há comentários.