Pilhas incluídas
Ferramentas Java
É simplesmente incrível:
- IDEs: mesmo que alguns IDEs suportem JavaScript, o nível de suporte simplesmente não se compara. Tente refatorar o código JavaScript em grandes bases de código (digamos, 40K + LOC) e chore.
- Teste de unidade: embora isso tenha aumentado nos últimos anos, também é muito mais maduro no mundo Java.
- Integração Contínua e Inspeção Contínua
- Geração de documentação: Claro que você tem o JSDoc e alguns outros
Digitação estática
Ele pega bugs cedo. (Endereço do Google Closure que mantém um pouco o desenvolvedor no mundo JavaScript, se você preferir).
JavaScript otimizado
O GWT grava JavaScript mais rápido e mais compacto que você (para aplicativos grandes) e permite determinar o que é enviado ao cliente sem dúvida mais facilmente do que com soluções JS completas equivalentes.
Arquitetura
Ele fornece uma boa separação de preocupações para aplicativos grandes, com arquiteturas MVC ou MVP decentes já pré-definidas com as pontas dos dedos.
Biblioteca decente
O GWT fornece bibliotecas interessantes e facilita (bem, mais fácil) a criação de aplicativos habilitados para I18N com carregamento dinâmico de pacotes.
Teste de unidade
Usando JUnit no Eclipse IDE e na linha de comandos. Isso se refere ao meu primeiro ponto. Você também pode usar algumas das ferramentas de qualidade de código do Java em um projeto GWT (para verificações de origem, não verificações de código de código, pois não há nenhuma).
É tudo sobre você!!
GWT não é para todos. Isso torna algumas pessoas mais produtivas e fornece uma boa ferramenta para desenvolvedores não JS criar aplicativos da Web profissionais com front-ends dinâmicos sem tocar em JavaScript (demais). Mas se não funcionar, basta usar outra coisa.
Se você deseja a maioria das opções acima, mas não deseja Java, talvez veja o Google Closure ou o Dojo Toolkit .
Foi uma boa idéia na época: a história importa !!
O mundo do JavaScript (e as tecnologias de front-end da Web em geral) está extremamente ativo atualmente, então as coisas estão melhorando. Mas apenas alguns anos atrás, as coisas não eram tão brilhantes. LESS / SASS não eram tão populares, o jQuery ainda não era a biblioteca JS de fábrica, as bibliotecas JavaScript não eram geradas a cada duas semanas e as ferramentas não eram tão boas em geral.
Mas já havia uma demanda crescente por aplicativos Web profissionais e grandes, com front-ends dinâmicos, então havia uma lacuna a ser preenchida para tornar os desenvolvedores mais produtivos. O JavaScript tem muitas armadilhas e esquisitices que você precisa conhecer, e talvez seja melhor nem precisar se preocupar com elas. Daí o nicho de ferramentas como o GWT.
Desde então, outros surgiram (o CoffeeScript vem à mente, o Dart está a caminho, mas também grandes estruturas JavaScript, a revolução do JS do lado do servidor com o Node.JS e outros, e um forte retorno do JavaScript como "suficientemente bom". idioma ao redor para ser usado não apenas no lado do cliente, mas também em outras partes da pilha de negócios.
Notas Adicionais
Com relação à sua pergunta original (agora editada) sobre o uso do Firebug
Você pode depurar o código GWT com o Firebug, é claro, mas o ideal seria depurá-lo diretamente do depurador do Eclipse IDE, que agora oferece suporte à depuração de código ativo.
No entanto, o Firebug ainda pode ser utilizado, embora você tenha em mente que o GWT gera JavaScript otimizado e compactado, o que pode não ser fácil de depurar como está.
Com relação à sua pergunta original (agora editada) sobre CSS
Sim, você ainda precisa escrever o código CSS, é claro. Você associa seu projeto GWT a outras ferramentas (como o SASS), com mais ou menos facilidade.
É apenas uma ferramenta!
Não confunda o GWT com o que não é: você não escreve código Java para ser executado diretamente no lado do cliente como código de código Java. Você escreve código na linguagem Java, que é convertida em JavaScript para maior eficiência e para permitir o uso de uma linguagem de nível superior (ou, pelo menos, é assim que deve ser vista).
Indiscutivelmente , Java e JavaScript podem ser considerados comparáveis em termos de níveis de abstração. No entanto, o Java possui algumas vantagens (detalhadas acima), daí a vantagem de colher os benefícios das ferramentas existentes sem a necessidade de reescrevê-las. Os desenvolvedores do Google tiveram a ideia inteligente de tornar possível reutilizar as ferramentas orientadas a Java existentes, mas desenvolver aplicativos JavaScript.
Além disso, eles resolvem outro problema, que era o gerenciador de aplicativos da Web em dois idiomas, geralmente complicado, onde o código JavaScript e o Java eram tratados separadamente. O uso do GWT permite um certo nível de convergência para os dois lados do processo de desenvolvimento.
Leitura adicional: